diff --git a/Software/MainBoard/rust/src_webpack/src/hardware.html b/Software/MainBoard/rust/src_webpack/src/hardware.html index 25e0e50..9df84d5 100644 --- a/Software/MainBoard/rust/src_webpack/src/hardware.html +++ b/Software/MainBoard/rust/src_webpack/src/hardware.html @@ -10,10 +10,10 @@
Hardware:
BoardRevision
-
-
+
BatteryMonitor
diff --git a/Software/MainBoard/rust/src_webpack/src/main.html b/Software/MainBoard/rust/src_webpack/src/main.html index f8c2730..db17a21 100644 --- a/Software/MainBoard/rust/src_webpack/src/main.html +++ b/Software/MainBoard/rust/src_webpack/src/main.html @@ -137,11 +137,157 @@ font-weight: bold; } + .mode-slider-container { + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + padding: 8px 0; + flex-wrap: wrap; + } + + .mode-label { + font-weight: bold; + font-size: 0.85em; + min-width: 55px; + text-align: center; + } + + .mode-slider { + -webkit-appearance: none; + appearance: none; + width: 200px; + height: 8px; + border-radius: 4px; + outline: none; + cursor: pointer; + } + + .mode-slider::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 20px; + height: 20px; + border-radius: 50%; + cursor: pointer; + border: 2px solid white; + } + + .mode-slider::-moz-range-thumb { + width: 20px; + height: 20px; + border-radius: 50%; + cursor: pointer; + border: 2px solid white; + } + + .mode-simple .mode-slider { + background: linear-gradient(to right, #28a745, #28a745); + } + .mode-simple .mode-slider::-webkit-slider-thumb { + background: #28a745; + } + .mode-simple .mode-slider::-moz-range-thumb { + background: #28a745; + } + + .mode-advanced .mode-slider { + background: linear-gradient(to right, #28a745, #ffc107); + } + .mode-advanced .mode-slider::-webkit-slider-thumb { + background: #ffc107; + } + .mode-advanced .mode-slider::-moz-range-thumb { + background: #ffc107; + } + + .mode-expert .mode-slider { + background: linear-gradient(to right, #28a745, #ffc107, #dc3545); + } + .mode-expert .mode-slider::-webkit-slider-thumb { + background: #dc3545; + } + .mode-expert .mode-slider::-moz-range-thumb { + background: #dc3545; + } + + .mode-simple .mode-label { + color: #28a745; + } + .mode-advanced .mode-label { + color: #ffc107; + } + .mode-expert .mode-label { + color: #dc3545; + } + + .mode-label-mode { + font-size: 0.9em; + font-weight: bold; + min-width: 60px; + } + + .mode-simple .mode-label-mode { + color: #28a745; + } + .mode-advanced .mode-label-mode { + color: #ffc107; + } + .mode-expert .mode-label-mode { + color: #dc3545; + } + + .mode-dot { + width: 8px; + height: 8px; + border-radius: 50%; + display: inline-block; + margin-right: 4px; + vertical-align: middle; + } + + .mode-simple .mode-dot { + background: #28a745; + } + .mode-advanced .mode-dot { + background: #ffc107; + } + .mode-expert .mode-dot { + background: #dc3545; + } + + .hidden-mode { + display: none !important; + } + + .mode-simple .hidden-mode-simple, + .mode-advanced .hidden-mode-simple, + .mode-expert .hidden-mode-simple { + display: none !important; + } + + .mode-advanced .hidden-mode-advanced, + .mode-expert .hidden-mode-advanced { + display: none !important; + } + + .mode-expert .hidden-mode-expert { + display: none !important; + } +
+
+ + Simple + + Expert + Simple +
+
diff --git a/Software/MainBoard/rust/src_webpack/src/main.ts b/Software/MainBoard/rust/src_webpack/src/main.ts index 7103d24..1ffee74 100644 --- a/Software/MainBoard/rust/src_webpack/src/main.ts +++ b/Software/MainBoard/rust/src_webpack/src/main.ts @@ -560,6 +560,24 @@ export class Controller { readonly can_power: HTMLInputElement; readonly auto_refresh_moisture_sensors: HTMLInputElement; private auto_refresh_timer: NodeJS.Timeout | undefined; + readonly configModeSlider: HTMLInputElement; + readonly modeSliderContainer: HTMLDivElement; + readonly modeLabel: HTMLElement; + + setMode(mode: number) { + const container = this.modeSliderContainer; + container.classList.remove('mode-simple', 'mode-advanced', 'mode-expert'); + if (mode === 0) { + container.classList.add('mode-simple'); + this.modeLabel.textContent = 'Simple'; + } else if (mode === 1) { + container.classList.add('mode-advanced'); + this.modeLabel.textContent = 'Advanced'; + } else { + container.classList.add('mode-expert'); + this.modeLabel.textContent = 'Expert'; + } + } constructor() { this.timeView = new TimeView(this) @@ -606,6 +624,14 @@ export class Controller { this.autoRefreshLoop() } } + + this.configModeSlider = document.getElementById("configModeSlider") as HTMLInputElement; + this.modeSliderContainer = document.getElementById("modeSliderContainer") as HTMLDivElement; + this.modeLabel = document.getElementById("modeLabel") as HTMLElement; + this.configModeSlider.oninput = () => { + this.setMode(parseInt(this.configModeSlider.value)); + }; + this.setMode(0); } private async autoRefreshLoop() { diff --git a/Software/MainBoard/rust/src_webpack/src/network.html b/Software/MainBoard/rust/src_webpack/src/network.html index 7d0a56b..07d2058 100644 --- a/Software/MainBoard/rust/src_webpack/src/network.html +++ b/Software/MainBoard/rust/src_webpack/src/network.html @@ -53,7 +53,7 @@
-
+
Mqtt Reporting diff --git a/Software/MainBoard/rust/src_webpack/src/nightlightview.html b/Software/MainBoard/rust/src_webpack/src/nightlightview.html index 562f3d7..86cd019 100644 --- a/Software/MainBoard/rust/src_webpack/src/nightlightview.html +++ b/Software/MainBoard/rust/src_webpack/src/nightlightview.html @@ -28,21 +28,21 @@
Light only when dark
-
+
Start
-
+
Stop
-
+
Disable if Battery below %
-
+
Reenable if Battery higher %
-
\ No newline at end of file +
diff --git a/Software/MainBoard/rust/src_webpack/src/ota.html b/Software/MainBoard/rust/src_webpack/src/ota.html index 286317a..675cf53 100644 --- a/Software/MainBoard/rust/src_webpack/src/ota.html +++ b/Software/MainBoard/rust/src_webpack/src/ota.html @@ -43,7 +43,7 @@ State1:
-
+

@@ -73,5 +73,5 @@
- -
\ No newline at end of file + +
diff --git a/Software/MainBoard/rust/src_webpack/src/plant.html b/Software/MainBoard/rust/src_webpack/src/plant.html index 1ab0213..425a17c 100644 --- a/Software/MainBoard/rust/src_webpack/src/plant.html +++ b/Software/MainBoard/rust/src_webpack/src/plant.html @@ -37,7 +37,7 @@
+ id="plant_${plantId}_header"> Plant ${plantId}
@@ -91,11 +91,11 @@
-
+
Min Frequency Override
-
+
Max Frequency Override
@@ -104,71 +104,71 @@

Current config:

-
+
Min current
-
+
Max current
-
+
Ignore current sensor error
-
+
-
+
Live:
-
+
-
+
Sensor A: not measured
-
+
Sensor A FW: unknown
-
+
Sensor B:
not measured
-
+
Sensor B FW: unknown
-
+
Max Current
not_tested
-
+
Min Current
not_tested
-
+
Average
not_tested
-
+
Pump Time
not_tested
-
+
Flow ml
not_tested
-
+
Flow raw
not_tested
-
\ No newline at end of file +
diff --git a/Software/MainBoard/rust/src_webpack/src/submitview.html b/Software/MainBoard/rust/src_webpack/src/submitview.html index 6af8e96..a412da2 100644 --- a/Software/MainBoard/rust/src_webpack/src/submitview.html +++ b/Software/MainBoard/rust/src_webpack/src/submitview.html @@ -27,14 +27,14 @@
- -
Enable Tank Sensor @@ -32,23 +32,23 @@
-
+
Useable ml full% to empty%
-
+
Warn below %
-
+
Empty at %
-
+
Full at %
-
+
Flow Sensor ml per pulse
@@ -86,4 +86,4 @@
Warn Level
-
\ No newline at end of file +