mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2025-12-22 07:10:51 -08:00
feat(web_interface): js refactor
This commit is contained in:
@@ -1,51 +1,61 @@
|
||||
var settingsJson = {};
|
||||
let settingsJson = {};
|
||||
|
||||
function load(){
|
||||
getFile("settings.json",function(res){
|
||||
const load = () => {
|
||||
getFile("settings.json", res => {
|
||||
settingsJson = JSON.parse(res);
|
||||
draw();
|
||||
});
|
||||
}
|
||||
|
||||
function draw(){
|
||||
var html = "";
|
||||
const draw = () => {
|
||||
let html = "";
|
||||
|
||||
for (var key in settingsJson) {
|
||||
key = esc(key);
|
||||
|
||||
if (settingsJson.hasOwnProperty(key)) {
|
||||
html += "<div class='row'>"
|
||||
+ "<div class='col-6'>"
|
||||
+ "<label class='settingName "+(typeof settingsJson[key] == "boolean" ? "labelFix":"")+"' for='"+key+"'>"+key+":</label>"
|
||||
+ "</div>"
|
||||
+ "<div class='col-6'>";
|
||||
|
||||
if(typeof settingsJson[key] == "boolean"){
|
||||
html += "<label class='checkBoxContainer'><input type='checkbox' name='"+key+"' "+(settingsJson[key] ? "checked" : "")+" onchange='save(\""+key+"\",!settingsJson[\""+key+"\"])'><span class='checkmark'></span></label>";
|
||||
}else if(typeof settingsJson[key] == "number"){
|
||||
html += "<input type='number' name='"+key+"' value="+settingsJson[key]+" onchange='save(\""+key+"\",parseInt(this.value))'>";
|
||||
}else if(typeof settingsJson[key] == "string"){
|
||||
html += "<input type='text' name='"+key+"' value="+settingsJson[key]+" "+(key=="version"?"readonly":"")+" onchange='save(\""+key+"\",this.value)'>";
|
||||
}
|
||||
|
||||
html += "</div>"
|
||||
+ "</div>"
|
||||
+ "<div class='row'>"
|
||||
+ "<div class='col-12'>"
|
||||
+ "<p>"+lang("setting_"+key)+"</p>"
|
||||
+ "<hr>"
|
||||
+ "</div>"
|
||||
+ "</div>";
|
||||
html += `
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<label class="settingName ${(typeof settingsJson[key] == "boolean" ? "labelFix" : "")}" for="${key}">
|
||||
${key}:
|
||||
</label>
|
||||
</div>
|
||||
<div class='col-6'>
|
||||
${() => {
|
||||
switch(typeof settingsJson[key]) {
|
||||
case "boolean":
|
||||
return `
|
||||
<label class="checkBoxContainer">
|
||||
<input type="checkbox" name="${key}" ${(settingsJson[key] ? "checked" : "")} onchange="save(${key}, ${!settingsJson[key]})" />;
|
||||
<span class="checkmark"></span>
|
||||
</label>
|
||||
`;
|
||||
case "number":
|
||||
return `<input type="number" name="${key}" value="${settingsJson[key]}" onchange="save(${key}, ${parseInt(this.value)})">`;
|
||||
case "string":
|
||||
return `<input type="text" name="${key}" value="${settingsJson[key]}" ${key === "version" ? "readonly" : ""} onchange="save(${key}, ${this.value})">`
|
||||
}
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class='col-12'>
|
||||
<p>${lang("setting_"+key)}</p>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
getE("settingsList").innerHTML = html;
|
||||
}
|
||||
|
||||
function save(key, value){
|
||||
if(key){
|
||||
const save = (key, value) => {
|
||||
if (key) {
|
||||
settingsJson[key] = value;
|
||||
getFile("run?cmd=set "+key+" \""+value+"\"");
|
||||
}else{
|
||||
getFile("run?cmd=save settings",function(res){
|
||||
load();
|
||||
});
|
||||
getFile(`run?cmd=set ${key} "${value}"`);
|
||||
} else {
|
||||
getFile("run?cmd=save settings", load);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user