Selaa lähdekoodia

config: keep track of "disabled" versus "default"

The default for a checkbox may be either enabled or disabled; make
sure we explicitly store the disabled value and not just an enabled
value, or it becomes impossible to save a disabled value of an
enabled-by-default option variable.
H. Peter Anvin 2 vuotta sitten
vanhempi
commit
4ce4a43064
4 muutettua tiedostoa jossa 12 lisäystä ja 16 poistoa
  1. BIN
      esp32/output/max80.ino.bin
  2. 12 16
      esp32/www/max80.js
  3. BIN
      fpga/output/v1.fw
  4. BIN
      fpga/output/v2.fw

BIN
esp32/output/max80.ino.bin


+ 12 - 16
esp32/www/max80.js

@@ -41,16 +41,12 @@ function initform(form,map) {
 	    if (field.type == 'checkbox') {
 		const checked = !val.match(/^(0*|[fn].*|of.*)$/i);
 		field.checked = checked;
-		if (checked) {
-		    const clearer_name = '-' + field.name;
-		    if (!clearers.has(clearer_name)) {
-			clearers.set(clearer_name, 1);
-		    }
-		}
+		field.value = '1';
 	    } else if (field.type == 'radio') {
 		field.checked = (val == field.name);
-	    } else if (field.type == 'hidden') {
-		clearers.set(field.name, 0);
+	    } else if (field.type == 'hidden' &&
+		       field.classList.contains('_clr')) {
+		field.remove();
 	    } else {
 		field.value = val;
 	    }
@@ -60,13 +56,13 @@ function initform(form,map) {
 	}
     }
 
-    for (const [what, need] of clearers) {
-	if (need) {
-	    var clearer = document.createElement('INPUT');
-	    clearer.type = 'hidden';
-	    clearer.name = what;
-	    form.prepend(clearer);
-	}
+    for (const what of clearers.keys()) {
+	var clearer = document.createElement('INPUT');
+	clearer.type = 'hidden';
+	clearer.name = what;
+	clearer.value = '0';
+	clearer.classList.add('_clr');
+	form.prepend(clearer);
     }
 
     if (button) {
@@ -118,7 +114,7 @@ function uploadfile(event) {
 	progress.value = 0;
 	xhr.upload.addEventListener("progress", (event) => {
 	    if (event.lengthComputable) {
-		progress.max   = event.total;
+		progress.max   = event.total * 1.05;
 		progress.value = event.loaded;
 	    }
 	});

BIN
fpga/output/v1.fw


BIN
fpga/output/v2.fw