diff --git a/rust/src_webpack/src/main.html b/rust/src_webpack/src/main.html index d78b38a..c02a887 100644 --- a/rust/src_webpack/src/main.html +++ b/rust/src_webpack/src/main.html @@ -75,15 +75,15 @@ .subcontainer { min-width: 300px; max-width: 900px; - flex-grow: 1; - border-style: solid; - border-width: 1px; + flex-grow: 1; + border-style: solid; + border-width: 1px; padding: 8px; } .subcontainercontainer{ flex-grow: 1; } - + .plantcontainer { flex-grow: 1; min-width: 100%; @@ -120,15 +120,15 @@ } - + .plantlist { - display: flex; + display: flex; flex-wrap: wrap; } .subtitle { - flex-grow: 1; - text-align: center; + flex-grow: 1; + text-align: center; font-weight: bold; } diff --git a/rust/src_webpack/src/plant.html b/rust/src_webpack/src/plant.html index 14e7f61..ca79fe1 100644 --- a/rust/src_webpack/src/plant.html +++ b/rust/src_webpack/src/plant.html @@ -8,7 +8,7 @@ } .plantkey { - min-width: 175px; + min-width: 195px; } .plantvalue { @@ -19,6 +19,19 @@ min-width: 20px; margin: 0; } + + .plantTargetEnabledOnly_${plantId}{ + } + + .plantPumpEnabledOnly_${plantId}{ + } + + .plantSensorEnabledOnly_${plantId}{ + } + + .plantHidden_${plantId} { + display: none; + } @@ -27,7 +40,14 @@ id="plant_${plantId}_header"> Plant ${plantId} - +
+
Sensor A installed:
+ +
+
+
Sensor B installed:
+ +
Mode: @@ -39,83 +59,76 @@
-
+
Target Moisture:
-
+
Pump Time (s):
-
+
Pump Cooldown (m):
-
+
"Pump Hour Start":
-
+
"Pump Hour End":
-
+
Warn Pump Count:
-
+
Min Frequency Override
-
+
Max Frequency Override
-
-
Sensor A installed:
- -
-
-
Sensor B installed:
- -
-
+ +

Current config:

-
+
Min current
-
+
Max current
-
+
Ignore current sensor error
-
+
-
+
Live:
-
+
Sensor A: not measured
-
+
Sensor B:
not measured
-
+
Test Current
not_tested
diff --git a/rust/src_webpack/src/plant.ts b/rust/src_webpack/src/plant.ts index 4705cd8..3407da3 100644 --- a/rust/src_webpack/src/plant.ts +++ b/rust/src_webpack/src/plant.ts @@ -49,6 +49,8 @@ export class PlantViews { } } + + export class PlantView { private readonly moistureSensorMinFrequency: HTMLInputElement; private readonly moistureSensorMaxFrequency: HTMLInputElement; @@ -186,6 +188,43 @@ export class PlantView { }; } + updateVisibility(plantConfig: PlantConfig) { + let sensorOnly = document.getElementsByClassName("plantSensorEnabledOnly_"+ this.plantId) + let pumpOnly = document.getElementsByClassName("plantPumpEnabledOnly_"+ this.plantId) + let targetOnly = document.getElementsByClassName("plantTargetEnabledOnly_"+ this.plantId) + + console.log("updateVisibility plantConfig: " + plantConfig.mode) + let showSensor = plantConfig.sensor_a || plantConfig.sensor_b + let showPump = plantConfig.mode !== "OFF" + let showTarget = plantConfig.mode === "TargetMoisture" + + console.log("updateVisibility showsensor: " + showSensor + " pump " + showPump + " target " +showTarget) + + for (const element of Array.from(sensorOnly)) { + if (showSensor) { + element.classList.remove("plantHidden_" + this.plantId) + } else { + element.classList.add("plantHidden_" + this.plantId) + } + } + + for (const element of Array.from(pumpOnly)) { + if (showPump) { + element.classList.remove("plantHidden_" + this.plantId) + } else { + element.classList.add("plantHidden_" + this.plantId) + } + } + + for (const element of Array.from(targetOnly)) { + if (showTarget) { + element.classList.remove("plantHidden_" + this.plantId) + } else { + element.classList.add("plantHidden_" + this.plantId) + } + } + } + setTestResult(result: PumpTestResult) { this.pump_current_result.innerText = "Did abort " + result.error + " median current " + result.median_current_ma + " max current " + result.max_current_ma + " min current " + result.min_current_ma } @@ -214,10 +253,13 @@ export class PlantView { plantConfig.moisture_sensor_min_frequency?.toString() || ""; this.moistureSensorMaxFrequency.value = plantConfig.moisture_sensor_max_frequency?.toString() || ""; + + this.updateVisibility(plantConfig); } getConfig(): PlantConfig { - return { + + let conv: PlantConfig = { mode: this.mode.value, target_moisture: this.targetMoisture.valueAsNumber, pump_time_s: this.pumpTimeS.valueAsNumber, @@ -233,5 +275,7 @@ export class PlantView { max_pump_current_ma: this.maxPumpCurrentMa.valueAsNumber, ignore_current_error: this.ignoreCurrentError.checked, }; + this.updateVisibility(conv); + return conv; } } \ No newline at end of file