diff --git a/TGBeta.ps1 b/TGBeta.ps1 index 07f24fc..632894b 100644 --- a/TGBeta.ps1 +++ b/TGBeta.ps1 @@ -700,8 +700,8 @@ function GetHtmlContent { function triggerInstall() { const dropdown = document.getElementById('dattoRmmDropdown'); - const UID = dropdown.options[dropdown.selectedIndex].value; - const Name = dropdown.options[dropdown.selectedIndex].text; + const UID = dropdown.options[dropdown.selectedIndex]?.value || null; // Handle case where no site is selected + const Name = dropdown.options[dropdown.selectedIndex]?.text || "Unknown Site"; const setSVSPowerplan = document.querySelector('input[name="setSVSPowerplan"]'); const installSVSMSPModule = document.querySelector('input[name="installSVSMSPModule"]'); @@ -713,68 +713,84 @@ function GetHtmlContent { const installThreatLocker = document.querySelector('input[name="installThreatLocker"]'); const installRocketCyber = document.querySelector('input[name="installRocketCyber"]'); + // Priority 1: Install SVSMSP Module + if (installSVSMSPModule.checked) { + appendLog("Installing SVSMSP Module (Priority 1)...", "cyan"); + fetch('/installSVSMSPModule', { method: 'GET' }) + .then(() => appendLog("SVSMSP Module installed successfully.", "green")) + .catch(error => appendLog(`Error installing SVSMSP Module: ${error.message}`, "red")); + return; // Stop further execution as this is the highest priority + } + + // Priority 2: Install DattoRMM if (installDattoRMM.checked) { const DattoRMMCheckbox = document.querySelectorAll('input[name="dattoRMMOption"]:checked'); - appendLog("Installing selected site RMM...", "cyan"); + appendLog("Installing selected site RMM (Priority 2)...", "cyan"); const checkedValues = Array.from(DattoRMMCheckbox).map(c => c.value); - + const payload = { checkedValues, // Array of selected checkbox values - UID, // Selected site UID - Name, // Selected site name + UID, // Selected site UID + Name // Selected site name }; - fetch('/installrmm', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(payload), - }); - fetch('/installrmm', { method: 'POST', headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ installRMMCommand, UID, Name }) - }); + body: JSON.stringify(payload) + }) + .then(() => appendLog("Datto RMM installation triggered successfully.", "green")) + .catch(error => appendLog(`Error installing Datto RMM: ${error.message}`, "red")); + return; // Stop further execution as this is the second highest priority } + // Lower-priority tasks if (setSVSPowerplan.checked) { - fetch('/SetSVSPowerplan', { method: 'GET' }); - appendLog("Setting SVS Powerplan", "cyan"); - } - - if (installSVSMSPModule.checked) { - fetch('/installSVSMSPModule', { method: 'GET' }); - appendLog("Installing CyberQP", "cyan"); - + fetch('/SetSVSPowerplan', { method: 'GET' }) + .then(() => appendLog("SVS Powerplan set successfully.", "green")) + .catch(error => appendLog(`Error setting SVS Powerplan: ${error.message}`, "red")); } if (installCyberQP.checked) { - fetch('/installCyberQP', { method: 'GET' }); - appendLog("Installing CyberQP", "cyan"); + fetch('/installCyberQP', { method: 'GET' }) + .then(() => appendLog("CyberQP installed successfully.", "green")) + .catch(error => appendLog(`Error installing CyberQP: ${error.message}`, "red")); } + if (installSplashtop.checked) { - fetch('/installSplashtop', { method: 'GET' }); - appendLog("Installing Splashtop", "cyan"); + fetch('/installSplashtop', { method: 'GET' }) + .then(() => appendLog("Splashtop installed successfully.", "green")) + .catch(error => appendLog(`Error installing Splashtop: ${error.message}`, "red")); } + if (installSVSHelpDesk.checked) { - fetch('/installSVSHelpDesk', { method: 'GET' }); - appendLog("Installing SVSHelpdesk", "cyan"); + fetch('/installSVSHelpDesk', { method: 'GET' }) + .then(() => appendLog("SVS HelpDesk installed successfully.", "green")) + .catch(error => appendLog(`Error installing SVS HelpDesk: ${error.message}`, "red")); } + if (installSVSWatchtower.checked) { - fetch('/installSVSWatchtower', { method: 'GET' }); - appendLog("Installing SVSWatchtower", "cyan"); + fetch('/installSVSWatchtower', { method: 'GET' }) + .then(() => appendLog("SVS Watchtower installed successfully.", "green")) + .catch(error => appendLog(`Error installing SVS Watchtower: ${error.message}`, "red")); } + if (installThreatLocker.checked) { - fetch('/installThreatLocker', { method: 'GET' }); - appendLog("Installing ThreatLocker", "cyan"); + fetch('/installThreatLocker', { method: 'GET' }) + .then(() => appendLog("ThreatLocker installed successfully.", "green")) + .catch(error => appendLog(`Error installing ThreatLocker: ${error.message}`, "red")); } + if (installRocketCyber.checked) { - fetch('/installRocketCyber', { method: 'GET' }); - appendLog("Installing RocketCyber", "cyan"); + fetch('/installRocketCyber', { method: 'GET' }) + .then(() => appendLog("RocketCyber installed successfully.", "green")) + .catch(error => appendLog(`Error installing RocketCyber: ${error.message}`, "red")); } } + + function endSession() { appendLog("Session ended. Closing application...", "yellow"); fetch('/quit', { method: 'GET' })