Add support for select to BrickChanger
This commit is contained in:
parent
b87ff162c1
commit
187afdc2cf
@ -7,7 +7,7 @@ class BrickChanger {
|
|||||||
this.html_clear = document.getElementById(`clear-${prefix}-${id}`);
|
this.html_clear = document.getElementById(`clear-${prefix}-${id}`);
|
||||||
this.html_status = document.getElementById(`status-${prefix}-${id}`);
|
this.html_status = document.getElementById(`status-${prefix}-${id}`);
|
||||||
this.html_status_tooltip = undefined;
|
this.html_status_tooltip = undefined;
|
||||||
this.html_type = this.html_element.getAttribute("type");
|
this.html_type = undefined;
|
||||||
this.url = url;
|
this.url = url;
|
||||||
|
|
||||||
if (parent) {
|
if (parent) {
|
||||||
@ -16,12 +16,29 @@ class BrickChanger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Register an event depending on the type
|
// Register an event depending on the type
|
||||||
if (this.html_type == "checkbox") {
|
let listener = undefined;
|
||||||
var listener = "change";
|
switch (this.html_element.tagName) {
|
||||||
} else if(this.html_type == "text") {
|
case "INPUT":
|
||||||
var listener = "change";
|
this.html_type = this.html_element.getAttribute("type");
|
||||||
} else {
|
|
||||||
throw Error("Unsupported input type for BrickChanger");
|
switch (this.html_type) {
|
||||||
|
case "checkbox":
|
||||||
|
case "text":
|
||||||
|
listener = "change";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw Error(`Unsupported input type for BrickChanger: ${this.html_type}`);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "SELECT":
|
||||||
|
this.html_type = "select";
|
||||||
|
listener = "change";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw Error(`Unsupported HTML tag type for BrickChanger: ${this.html_element.tagName}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.html_element.addEventListener(listener, ((changer) => (e) => {
|
this.html_element.addEventListener(listener, ((changer) => (e) => {
|
||||||
@ -90,11 +107,19 @@ class BrickChanger {
|
|||||||
this.status_unknown();
|
this.status_unknown();
|
||||||
|
|
||||||
// Grab the value depending on the type
|
// Grab the value depending on the type
|
||||||
if (this.html_type == "checkbox") {
|
let value = undefined;
|
||||||
var value = this.html_element.checked;
|
|
||||||
} else if(this.html_type == "text") {
|
switch(this.html_type) {
|
||||||
var value = this.html_element.value;
|
case "checkbox":
|
||||||
} else {
|
value = this.html_element.checked;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "text":
|
||||||
|
case "select":
|
||||||
|
value = this.html_element.value;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
throw Error("Unsupported input type for BrickChanger");
|
throw Error("Unsupported input type for BrickChanger");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user