Files
BirdDeterrentSystem/Html/html/setting.js
2024-11-13 08:35:32 +07:00

205 lines
6.4 KiB
JavaScript

// script for setting.html start here
async function onload(){
const resp = await fetch("/setting");
if (resp.status === 200) {
/**
* @type {Object}
* @property {String[]} AudioFiles
* @property {String} AudioFile1
* @property {String} AudioFile2
* @property {String} AudioFile3
* @property {String} AudioFile4
* @property {String} AudioFile5
* @property {String} CameraIP
* @property {String} CameraPort
* @property {String} CameraUsername
* @property {String} CameraPassword
* @property {String} LoginUsername
* @property {String} LoginPassword
*/
const data = await resp.json();
fill_select(1, data["AudioFiles"]);
fill_select(2, data["AudioFiles"]);
fill_select(3, data["AudioFiles"]);
fill_select(4, data["AudioFiles"]);
fill_select(5, data["AudioFiles"]);
$("#preset1").val(data["AudioFile1"]);
$("#preset2").val(data["AudioFile2"]);
$("#preset3").val(data["AudioFile3"]);
$("#preset4").val(data["AudioFile4"]);
$("#preset5").val(data["AudioFile5"]);
$("#setting_ip").val(data["CameraIP"]);
$("#setting_port").val(data["CameraPort"]);
$("#setting_username").val(data["CameraUsername"]);
$("#setting_password").val(data["CameraPassword"]);
$("#login_username").val(data["LoginUsername"]);
$("#edit_password").val(data["LoginPassword"]);
$("#confirm_password").val(data["LoginPassword"]);
}
}
/**
* Fill select with values
* @param {number} index start from 1
* @param {String[]} values array of values
*/
function fill_select(index, values){
/**
*
* @type {HTMLSelectElement}
*/
let preset = document.getElementById("preset"+index);
preset.innerHTML = "";
if (values!=null && values.length>0){
// add empty option
let option = document.createElement("option");
option.value = "";
option.innerText = "";
preset.appendChild(option);
for (let i = 0; i < values.length; i++) {
const element = values[i];
let option = document.createElement("option");
option.value = element;
option.innerText = element;
preset.appendChild(option);
}
}
}
function cameraPassword() {
const passwordField = document.getElementById('setting_password');
const icon = document.getElementById('icon_camera');
if (passwordField.type === 'password') {
passwordField.type = 'text';
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
} else {
passwordField.type = 'password';
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
}
}
function showPassword() {
const passwordField = document.getElementById('edit_password');
const icon = document.getElementById('icon_password');
if (passwordField.type === 'password') {
passwordField.type = 'text';
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
} else {
passwordField.type = 'password';
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
}
}
function showConfirm() {
const passwordField = document.getElementById('confirm_password');
const icon = document.getElementById('icon_confirm');
if (passwordField.type === 'password') {
passwordField.type = 'text';
icon.classList.remove('fa-eye');
icon.classList.add('fa-eye-slash');
} else {
passwordField.type = 'password';
icon.classList.remove('fa-eye-slash');
icon.classList.add('fa-eye');
}
}
function save_audio(){
let preset1 = $('#preset1').val();
let preset2 = $('#preset2').val();
let preset3 = $('#preset3').val();
let preset4 = $('#preset4').val();
let preset5 = $('#preset5').val();
if (confirm("Are you sure want to change Audio Preset ?")){
fetch("/setting/audiofile", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams({preset1: preset1, preset2: preset2, preset3: preset3, preset4: preset4, preset5: preset5})
}).then(resp => {
if (resp.status === 200) {
alert("Success");
} else {
resp.text().then(text=>alert("Failed to change Audio Preset : "+text));
}
});
}
}
function save_camera(){
let ip = $('#setting_ip').val();
let port = $('#setting_port').val();
let username = $('#setting_username').val();
let password = $('#setting_password').val();
if (confirm("Are you sure want to change Camera Information ?")){
fetch("/setting/camera", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams({ip: ip, port: port, username: username, password: password})
}).then(resp => {
if (resp.status === 200) {
alert("Success");
} else {
resp.text().then(text => {
alert("Failed to change Camera Information : "+text);
});
}
});
}
}
function save_login(){
let username = $('#login_username').val();
let password = $('#edit_password').val();
let confirmpassword = $('#confirm_password').val();
if (username.length === 0){
alert("Username cannot be empty");
return;
}
if (password.length === 0){
alert("Password cannot be empty");
return;
}
if (password !== confirmpassword){
alert("Password not match");
return;
}
if (confirm("Are you sure want to change Web Login Information ?")){
fetch("/setting/weblogin", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: new URLSearchParams({username: username, password: password})
}).then(resp => {
if (resp.status === 200) {
alert("Success");
} else {
resp.text().then(text => {
alert("Failed to change Web Login Information : "+text);
});
}
})
}
}