diff --git a/TGBeta.ps1 b/TGBeta.ps1 index 01742f8..4188c2f 100644 --- a/TGBeta.ps1 +++ b/TGBeta.ps1 @@ -620,7 +620,7 @@ function GetHtmlContent { - Enable Dark Mode + Set Edge Default Search Engine @@ -912,6 +912,42 @@ function GetHtmlContent { }); + async function runSelectedTweaks() { + const tweaks = []; + const tweakCheckboxes = document.querySelectorAll('#tweaksTab input[type="checkbox"]:not(#selectAllTweaksCheckbox)'); + + tweakCheckboxes.forEach((checkbox) => { + if (checkbox.checked) { + tweaks.push(checkbox.id); // Use the checkbox IDs as tweak identifiers + } + }); + + if (tweaks.length === 0) { + appendLog("No tweaks selected. Please select at least one tweak to run.", "red"); + return; + } + + appendLog("Running selected tweaks...", "yellow"); + + try { + const response = await fetch('/runTweaks', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ tweaks }), + }); + + if (!response.ok) { + throw new Error('Failed to run selected tweaks. Please try again.'); + } + + const result = await response.text(); + appendLog(result, "green"); + } catch (error) { + appendLog(`Error: ${error.message}`, "red"); + } + } + + function appendLog(message, color = "white") { const log = document.createElement('p'); log.style.color = color; @@ -1248,6 +1284,74 @@ try { $response.OutputStream.Close() } + "/runTweaks" { + if ($request.HttpMethod -eq "POST") { + try { + # Step 1: Read the Request Body + $bodyStream = New-Object IO.StreamReader $request.InputStream + $body = $bodyStream.ReadToEnd() + $requestData = ConvertFrom-Json $body + + # Step 2: Validate Input + $tweaks = $requestData.tweaks + if (-not $tweaks -or $tweaks.Count -eq 0) { + $response.StatusCode = 400 + $responseString = "Error: No tweaks selected." + $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) + $response.OutputStream.Write($buffer, 0, $buffer.Length) + $response.OutputStream.Close() + return + } + + # Step 3: Run Selected Tweaks + foreach ($tweak in $tweaks) { + switch ($tweak) { + "enableDarkModeCheckbox" { + Write-LogHybrid -Message "Running tweak: Set Edge Default Search Engine" -Level "Info" + Set-EdgeDefaultSearchEngine + } + "disableAnimationsCheckbox" { + Write-LogHybrid -Message "Running tweak: Disable Animations" -Level "Info" + #Disable-Animations + } + "optimizePerformanceCheckbox" { + Write-LogHybrid -Message "Running tweak: Optimize Performance" -Level "Info" + #Optimize-Performance + } + "increaseFontSizeCheckbox" { + Write-LogHybrid -Message "Running tweak: Increase Font Size" -Level "Info" + #Increase-FontSize + } + default { + Write-LogHybrid -Message "Unknown tweak: $tweak" -Level "Warning" + } + } + } + + # Step 4: Return Success Response + $responseString = "Selected tweaks executed successfully." + $response.StatusCode = 200 + } catch { + $responseString = "Error processing tweaks: $($_.Exception.Message)" + $response.StatusCode = 500 + } + + # Send the Response + $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) + $response.ContentType = "text/plain" + $response.ContentLength64 = $buffer.Length + $response.OutputStream.Write($buffer, 0, $buffer.Length) + $response.OutputStream.Close() + } else { + $responseString = "Method not allowed. Use POST." + $response.StatusCode = 405 + $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) + $response.OutputStream.Write($buffer, 0, $buffer.Length) + $response.OutputStream.Close() + } + } + + # ---------------------------------------------------------------- # 4) NEW ROUTE: /getLogs # Returns $Global:LogCache as JSON for the polling function