From cb486e014eb181ab05193ae1ede354d9480984fe Mon Sep 17 00:00:00 2001 From: Stephan Yelle Date: Sun, 5 Jan 2025 19:30:22 -0500 Subject: [PATCH] Update TGBeta.ps1 --- TGBeta.ps1 | 159 ++++++++++++++++++++++++++++------------------------- 1 file changed, 83 insertions(+), 76 deletions(-) diff --git a/TGBeta.ps1 b/TGBeta.ps1 index 29adc39..906db49 100644 --- a/TGBeta.ps1 +++ b/TGBeta.ps1 @@ -697,95 +697,102 @@ function GetHtmlContent { } function triggerInstall() { - const dropdown = document.getElementById('dattoRmmDropdown'); - const UID = dropdown.options[dropdown.selectedIndex].value - const Name = dropdown.options[dropdown.selectedIndex].text + const dropdown = document.getElementById('dattoRmmDropdown'); + const UID = dropdown && dropdown.options[dropdown.selectedIndex] + ? dropdown.options[dropdown.selectedIndex].value + : null; + const Name = dropdown && dropdown.options[dropdown.selectedIndex] + ? dropdown.options[dropdown.selectedIndex].text + : "Unknown Site"; - const setSVSPowerplan = document.querySelector('input[name="setSVSPowerplan"]'); - const installSVSMSPModule = document.querySelector('input[name="installSVSMSPModule"]'); - const installDattoRMM = document.querySelector('input[name="installDattoRMM"]'); - const installCyberQP = document.querySelector('input[name="installCyberQP"]'); - const installSplashtop = document.querySelector('input[name="installSplashtop"]'); - const installSVSHelpDesk = document.querySelector('input[name="installSVSHelpDesk"]'); - const installSVSWatchtower = document.querySelector('input[name="installSVSWatchtower"]'); - const installThreatLocker = document.querySelector('input[name="installThreatLocker"]'); - const installRocketCyber = document.querySelector('input[name="installRocketCyber"]'); + const setSVSPowerplan = document.querySelector('input[name="setSVSPowerplan"]'); + const installSVSMSPModule = document.querySelector('input[name="installSVSMSPModule"]'); + const installDattoRMM = document.querySelector('input[name="installDattoRMM"]'); + const installCyberQP = document.querySelector('input[name="installCyberQP"]'); + const installSplashtop = document.querySelector('input[name="installSplashtop"]'); + const installSVSHelpDesk = document.querySelector('input[name="installSVSHelpDesk"]'); + const installSVSWatchtower = document.querySelector('input[name="installSVSWatchtower"]'); + 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 - } + // Ensure UID is selected before proceeding + if (!UID) { + appendLog("Please select a site from the dropdown.", "red"); + return; + } - // Priority 2: Install DattoRMM - if (installDattoRMM.checked) { - const DattoRMMCheckbox = document.querySelectorAll('input[name="dattoRMMOption"]:checked'); - appendLog("Installing selected site RMM (Priority 2)...", "cyan"); + // Install DattoRMM if checked + if (installDattoRMM.checked) { + const DattoRMMCheckbox = document.querySelectorAll('input[name="dattoRMMOption"]:checked'); + appendLog("Installing selected site RMM...", "cyan"); - const checkedValues = Array.from(DattoRMMCheckbox).map(c => c.value); + 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 - }; + const payload = { + checkedValues, // Array of selected checkbox values + UID, // Selected site UID + Name // Selected site name + }; - fetch('/installrmm', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - 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 - } + fetch('/installrmm', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload) + }) + .then(() => appendLog("Datto RMM installation triggered successfully.", "green")) + .catch(error => appendLog(`Error installing Datto RMM: ${error.message}`, "red")); + } - // Lower-priority tasks - if (setSVSPowerplan.checked) { - fetch('/SetSVSPowerplan', { method: 'GET' }) - .then(() => appendLog("SVS Powerplan set successfully.", "green")) - .catch(error => appendLog(`Error setting SVS Powerplan: ${error.message}`, "red")); - } + // Execute lower-priority tasks sequentially + if (setSVSPowerplan.checked) { + 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' }) - .then(() => appendLog("CyberQP installed successfully.", "green")) - .catch(error => appendLog(`Error installing CyberQP: ${error.message}`, "red")); - } + if (installSVSMSPModule.checked) { + fetch('/installSVSMSPModule', { method: 'GET' }) + .then(() => appendLog("SVSMSP Module installed successfully.", "green")) + .catch(error => appendLog(`Error installing SVSMSP Module: ${error.message}`, "red")); + } - if (installSplashtop.checked) { - fetch('/installSplashtop', { method: 'GET' }) - .then(() => appendLog("Splashtop installed successfully.", "green")) - .catch(error => appendLog(`Error installing Splashtop: ${error.message}`, "red")); - } + if (installCyberQP.checked) { + fetch('/installCyberQP', { method: 'GET' }) + .then(() => appendLog("CyberQP installed successfully.", "green")) + .catch(error => appendLog(`Error installing CyberQP: ${error.message}`, "red")); + } - if (installSVSHelpDesk.checked) { - fetch('/installSVSHelpDesk', { method: 'GET' }) - .then(() => appendLog("SVS HelpDesk installed successfully.", "green")) - .catch(error => appendLog(`Error installing SVS HelpDesk: ${error.message}`, "red")); - } + if (installSplashtop.checked) { + fetch('/installSplashtop', { method: 'GET' }) + .then(() => appendLog("Splashtop installed successfully.", "green")) + .catch(error => appendLog(`Error installing Splashtop: ${error.message}`, "red")); + } - if (installSVSWatchtower.checked) { - fetch('/installSVSWatchtower', { method: 'GET' }) - .then(() => appendLog("SVS Watchtower installed successfully.", "green")) - .catch(error => appendLog(`Error installing SVS Watchtower: ${error.message}`, "red")); - } + if (installSVSHelpDesk.checked) { + fetch('/installSVSHelpDesk', { method: 'GET' }) + .then(() => appendLog("SVS HelpDesk installed successfully.", "green")) + .catch(error => appendLog(`Error installing SVS HelpDesk: ${error.message}`, "red")); + } - if (installThreatLocker.checked) { - fetch('/installThreatLocker', { method: 'GET' }) - .then(() => appendLog("ThreatLocker installed successfully.", "green")) - .catch(error => appendLog(`Error installing ThreatLocker: ${error.message}`, "red")); - } + if (installSVSWatchtower.checked) { + 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' }) + .then(() => appendLog("ThreatLocker installed successfully.", "green")) + .catch(error => appendLog(`Error installing ThreatLocker: ${error.message}`, "red")); + } + + if (installRocketCyber.checked) { + fetch('/installRocketCyber', { method: 'GET' }) + .then(() => appendLog("RocketCyber installed successfully.", "green")) + .catch(error => appendLog(`Error installing RocketCyber: ${error.message}`, "red")); + } +} - if (installRocketCyber.checked) { - fetch('/installRocketCyber', { method: 'GET' }) - .then(() => appendLog("RocketCyber installed successfully.", "green")) - .catch(error => appendLog(`Error installing RocketCyber: ${error.message}`, "red")); - } - }