2019-02-07 22:17:23 +01:00
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="en">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<title>FKX Tools</title>
|
|
|
|
|
<link rel="stylesheet" href="mini-nord.min.css" />
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<h2>IN 1</h2>
|
|
|
|
|
<div class="col-2">
|
|
|
|
|
<br /><br />
|
|
|
|
|
<h3>HF enable</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="2" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
<div class="col-2">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>50/70M</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="0" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>spare</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="1" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>HF1</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="3" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>HF2</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="4" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>HF3</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="5" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>HF4</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="6" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>HF5</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="7" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>HF6</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="8" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<h2>IN 2</h2>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF1</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="9" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF2</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="10" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF3</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="11" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF4</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="12" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF5</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="13" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF6</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="14" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<h3>VUHF Spare</h3>
|
2019-03-27 20:47:23 +01:00
|
|
|
<button id="15" class="rf-button secondary">Off</button>
|
2019-02-07 22:17:23 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<footer>
|
|
|
|
|
<label for="board-url">Board URL</label>
|
|
|
|
|
<input id="board-url" placeholder="Board URL" />
|
|
|
|
|
<button id="board-url-save">Save</button>
|
|
|
|
|
<br />
|
|
|
|
|
<label for="secret">Secret</label>
|
|
|
|
|
<input id="secret" placeholder="secret" />
|
|
|
|
|
<button id="secret-save">Save</button>
|
|
|
|
|
</footer>
|
|
|
|
|
<script>
|
2019-03-27 20:47:23 +01:00
|
|
|
rf_buttons = document.getElementsByClassName("rf-button");
|
|
|
|
|
|
|
|
|
|
for(b of rf_buttons) {
|
|
|
|
|
b.addEventListener("click", button_toggle);
|
|
|
|
|
}
|
2019-02-07 22:17:23 +01:00
|
|
|
|
|
|
|
|
function button_toggle(button) {
|
|
|
|
|
// toggle colour and text
|
2019-03-27 20:47:23 +01:00
|
|
|
target = button.currentTarget;
|
|
|
|
|
if(target.classList.contains("secondary")) {
|
|
|
|
|
target.textContent = "On";
|
|
|
|
|
target.classList.remove("secondary");
|
|
|
|
|
target.classList.add("tertiary");
|
2019-02-07 22:17:23 +01:00
|
|
|
|
|
|
|
|
payload = 1 << parseInt(button.id);
|
|
|
|
|
|
|
|
|
|
fetch_url = localStorage.getItem("board-url") + "/Set/0/" + payload.toString() + "/" + localStorage.getItem("secret");
|
|
|
|
|
fetch(fetch_url)
|
|
|
|
|
.then((resp) => {
|
|
|
|
|
return resp.text();
|
|
|
|
|
})
|
|
|
|
|
.then((text) => {
|
|
|
|
|
console.log(text);
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
console.log("Set failed:", error);
|
|
|
|
|
});
|
|
|
|
|
} else {
|
2019-03-27 20:47:23 +01:00
|
|
|
target.textContent = "Off";
|
|
|
|
|
target.classList.add("secondary");
|
|
|
|
|
target.classList.remove("tertiary");
|
2019-02-07 22:17:23 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getRemoteState() {
|
|
|
|
|
fetch_url = localStorage.getItem("board-url") + "/GetAll/" + localStorage.getItem("secret");
|
|
|
|
|
fetch(fetch_url)
|
|
|
|
|
.then((resp) => {
|
|
|
|
|
return resp.text();
|
|
|
|
|
})
|
|
|
|
|
.then((text) => {
|
|
|
|
|
res_array = text.match(/\d(\d*)/g);
|
|
|
|
|
// console.log(res_array);
|
|
|
|
|
activated = Math.log2(parseInt(res_array[0]));
|
|
|
|
|
respective_button = document.getElementById(activated.toString());
|
|
|
|
|
button_toggle(respective_button);
|
|
|
|
|
})
|
|
|
|
|
.catch((error) => {
|
|
|
|
|
console.log("GetAll failed:", error);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// add listener to save secret token to local storage
|
|
|
|
|
password_input = document.getElementById("secret");
|
|
|
|
|
password_input.value = localStorage.getItem("secret");
|
|
|
|
|
password_save_button = document.getElementById("secret-save");
|
|
|
|
|
password_save_button.addEventListener("click", (e) => {
|
|
|
|
|
localStorage.setItem("secret", password_input.value);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// add listener for board url saving feature
|
|
|
|
|
board_url_input = document.getElementById("board-url");
|
|
|
|
|
board_url_input.value = localStorage.getItem("board-url");
|
|
|
|
|
board_url_save_button = document.getElementById("board-url-save");
|
|
|
|
|
board_url_save_button.addEventListener("click", (e) => {
|
|
|
|
|
localStorage.setItem("board-url", board_url_input.value);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// keep updating state from remote
|
|
|
|
|
// var interval_updater = setInterval(getRemoteState, 1000);
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|