* Load settings from settings.json on the server and apply them
()
| 111 | * Load settings from settings.json on the server and apply them |
| 112 | */ |
| 113 | async function applySettingsJSON() { |
| 114 | try { |
| 115 | const response = await fetch("settings.json"); |
| 116 | const settings = await response.json(); |
| 117 | if (!settings || typeof settings !== "object") { |
| 118 | return console.error("Settings are empty or malformed"); |
| 119 | } |
| 120 | for (let setting in settings) { |
| 121 | testState.speedtest.setParameter(setting, settings[setting]); |
| 122 | if ( |
| 123 | setting == "telemetry_level" && |
| 124 | settings[setting] && |
| 125 | settings[setting] != "off" && |
| 126 | settings[setting] != "disabled" && |
| 127 | settings[setting] != "false" |
| 128 | ) { |
| 129 | testState.telemetryEnabled = true; |
| 130 | document.querySelector("#privacy-warning").classList.remove("hidden"); |
| 131 | } |
| 132 | } |
| 133 | } catch (error) { |
| 134 | console.error("Failed to fetch settings:", error); |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | /** |
| 139 | * Load server list from the configured source and populate the dropdown |