commit 09/10/2025
User Management belum kelar
This commit is contained in:
@@ -1,4 +1,20 @@
|
||||
/**
|
||||
* @typedef {Object} ScheduleBank
|
||||
* @property {number} index
|
||||
* @property {string} description
|
||||
* @property {string} day
|
||||
* @property {string} time
|
||||
* @property {string} soundpath
|
||||
* @property {number} repeat
|
||||
* @property {boolean} enable
|
||||
* @property {string} broadcastZones
|
||||
* @property {string} language
|
||||
*/
|
||||
|
||||
/** List of Schedulebank data loaded from server
|
||||
* @type {ScheduleBank[]}
|
||||
*/
|
||||
window.schedulebankdata = [];
|
||||
/**
|
||||
* Currently selected schedulebank row in the table
|
||||
* @type {JQuery<HTMLElement>|null}
|
||||
@@ -45,7 +61,22 @@ function fill_schedulebanktablebody(vv) {
|
||||
$('#tablesize').text("Table Size: " + vv.length);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reload timer bank from server
|
||||
* @param {string} APIURL API URL endpoint, default "ScheduleBank/"
|
||||
*/
|
||||
function reloadTimerBank(APIURL = "ScheduleBank/") {
|
||||
window.schedulebankdata = [];
|
||||
fetchAPI(APIURL + "List", "GET", {}, null, (okdata) => {
|
||||
if (Array.isArray(okdata)) {
|
||||
window.schedulebankdata.push(...okdata);
|
||||
selectedschedulerow = null;
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
}
|
||||
}, (errdata) => {
|
||||
alert("Error loading schedulebank : " + errdata.message);
|
||||
});
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
console.log("schedulebank.js loaded successfully");
|
||||
@@ -70,7 +101,7 @@ $(document).ready(function () {
|
||||
let $schedulehour = $schedulemodal.find('#schedulehour');
|
||||
// number input 0-59
|
||||
let $scheduleminute = $schedulemodal.find('#scheduleminute');
|
||||
// select for messagebank
|
||||
// text input
|
||||
let $schedulesoundpath = $schedulemodal.find('#schedulesoundpath');
|
||||
// number input 0-5
|
||||
let $schedulerepeat = $schedulemodal.find('#schedulerepeat');
|
||||
@@ -106,17 +137,8 @@ $(document).ready(function () {
|
||||
$scheduledescription.val('');
|
||||
$schedulehour.val('0');
|
||||
$scheduleminute.val('0');
|
||||
|
||||
$schedulesoundpath.empty();
|
||||
if (Array.isArray(window.messagebankdata) && window.messagebankdata.length > 0) {
|
||||
window.messagebankdata.forEach(item => {
|
||||
let str = item.description+" ["+item.aNN_ID+"]";
|
||||
let option = `<option value="${str}">${str}</option>`;
|
||||
if ($schedulesoundpath.find(`option[value="${str}"]`).length === 0) $schedulesoundpath.append(option); // check if $schedulesoundpath already has this option
|
||||
})
|
||||
}
|
||||
|
||||
$schedulerepeat.val('1');
|
||||
$schedulesoundpath.val('');
|
||||
$schedulerepeat.val('0');
|
||||
$scheduleenable.prop('checked', true);
|
||||
$scheduleeveryday.prop('checked', false);
|
||||
$schedulesunday.prop('checked', false);
|
||||
@@ -149,15 +171,11 @@ $(document).ready(function () {
|
||||
});
|
||||
|
||||
|
||||
reloadTimerBank(APIURL, () => {
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
});
|
||||
reloadTimerBank(APIURL);
|
||||
$btnClear.click(() => {
|
||||
DoClear(APIURL, "Timerbank", (okdata) => {
|
||||
reloadTimerBank(APIURL,() => {
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
alert("Success clear schedulebank : " + okdata.message);
|
||||
});
|
||||
reloadTimerBank(APIURL);
|
||||
alert("Success clear schedulebank : " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error clear schedulebank : " + errdata.message);
|
||||
});
|
||||
@@ -218,10 +236,8 @@ $(document).ready(function () {
|
||||
};
|
||||
|
||||
fetchAPI(APIURL + "Add", "POST", {}, scheduleObj, (okdata) => {
|
||||
reloadTimerBank(APIURL, () => {
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
alert("Success add schedule: " + okdata.message);
|
||||
});
|
||||
alert("Success add schedule: " + okdata.message);
|
||||
reloadTimerBank(APIURL);
|
||||
}, (errdata) => {
|
||||
alert("Error add schedule: " + errdata.message);
|
||||
});
|
||||
@@ -246,10 +262,8 @@ $(document).ready(function () {
|
||||
}
|
||||
if (confirm(`Are you sure to delete schedule [${sr.index}] Description=${sr.description}?`)) {
|
||||
fetchAPI(APIURL + "DeleteByIndex/" + sr.index, "DELETE", {}, null, (okdata) => {
|
||||
reloadTimerBank(APIURL, () => {
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
alert("Success delete schedule : " + okdata.message);
|
||||
});
|
||||
reloadTimerBank(APIURL);
|
||||
alert("Success delete schedule : " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error delete schedule : " + errdata.message);
|
||||
});
|
||||
@@ -366,10 +380,8 @@ $(document).ready(function () {
|
||||
};
|
||||
|
||||
fetchAPI(APIURL + "UpdateByIndex/" + sr.index, "PATCH", {}, scheduleObj, (okdata) => {
|
||||
reloadTimerBank(APIURL, () => {
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
alert("Success edit schedule: " + okdata.message);
|
||||
});
|
||||
alert("Success edit schedule: " + okdata.message);
|
||||
reloadTimerBank(APIURL);
|
||||
}, (errdata) => {
|
||||
alert("Error edit schedule: " + errdata.message);
|
||||
});
|
||||
@@ -384,10 +396,8 @@ $(document).ready(function () {
|
||||
});
|
||||
$btnImport.click(() => {
|
||||
DoImport(APIURL, (okdata) => {
|
||||
reloadTimerBank(APIURL, () => {
|
||||
fill_schedulebanktablebody(window.schedulebankdata);
|
||||
alert("Success import schedulebank from XLSX : " + okdata.message);
|
||||
});
|
||||
reloadTimerBank(APIURL);
|
||||
alert("Success import schedulebank from XLSX : " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error importing schedulebank from XLSX : " + errdata.message);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user