commit 10/10/2025

User Management
This commit is contained in:
2025-10-10 09:52:11 +07:00
parent d549aee42c
commit 7f647fe9c3
3 changed files with 89 additions and 78 deletions

View File

@@ -52,10 +52,10 @@ window.broadcastzones = [];
* Get Messagebank ANN_IDs from server
*/
function get_messagebankids() {
messagebankids = [];
window.messagebankids = [];
fetchAPI("MessageBank/" + "MessageIDs", "GET", {}, null, (okdata) => {
if (Array.isArray(okdata)) {
messagebankids.push(...okdata);
window.messagebankids.push(...okdata);
}
}, (errdata) => {
alert("Error loading message bank IDs : " + errdata.message);
@@ -66,10 +66,10 @@ function get_messagebankids() {
* Get Airline Tags from server
*/
function get_airlinetags() {
airlinetags = [];
window.airlinetags = [];
fetchAPI("SoundBank/" + "AirlineTags", "GET", {}, null, (okdata) => {
if (Array.isArray(okdata)) {
airlinetags.push(...okdata);
window.airlinetags.push(...okdata);
}
}, (errdata) => {
alert("Error loading airline tags : " + errdata.message);
@@ -80,10 +80,10 @@ function get_airlinetags() {
* Get City Tags from server
*/
function get_citytags() {
citytags = [];
window.citytags = [];
fetchAPI("SoundBank/" + "CityTags", "GET", {}, null, (okdata) => {
if (Array.isArray(okdata)) {
citytags.push(...okdata);
window.citytags.push(...okdata);
}
}, (errdata) => {
alert("Error loading city tags : " + errdata.message);
@@ -94,10 +94,10 @@ function get_citytags() {
* Get Broadcast Zones descriptions from server
*/
function get_broadcastzones_descriptions() {
broadcastzones = [];
window.broadcastzones = [];
fetchAPI("BroadcastZones/" + "BroadcastZoneDescriptions", "GET", {}, null, (okdata) => {
if (Array.isArray(okdata)) {
broadcastzones.push(...okdata);
window.broadcastzones.push(...okdata);
}
}, (errdata) => {
alert("Error loading broadcast zones : " + errdata.message);
@@ -127,7 +127,7 @@ function fill_usertablebody(vv) {
</tr>`;
$('#usertablebody').append(row);
let $addedrow = $('#usertablebody tr:last');
$addedrow.on('click', function () {
$addedrow.off('click').on('click', function () {
if (window.selecteduserrow) {
window.selecteduserrow.find('td').css('background-color', '');
if (window.selecteduserrow.is($(this))) {
@@ -170,15 +170,6 @@ $(document).ready(function () {
get_messagebankids();
get_broadcastzones_descriptions();
let $usertablebody = $('#usertablebody');
let $finduser = $('#finduser');
let $btnClear = $('#btnClear');
let $btnAdd = $('#btnAdd');
let $btnRemove = $('#btnRemove');
let $btnEdit = $('#btnEdit');
let $btnExport = $('#btnExport');
let $btnImport = $('#btnImport');
let APIURL = "UserManagement/";
// add / edit modal elements
@@ -279,9 +270,9 @@ $(document).ready(function () {
}
$usertablebody.empty();
$('#usertablebody').empty();
reloaduserDB();
$finduser.on('input', function () {
$('#finduser').off('input').on('input', function () {
let searchTerm = $(this).val().toLowerCase();
if (searchTerm.length > 0) {
let filteredUsers = window.userdb.filter(user =>
@@ -305,7 +296,7 @@ $(document).ready(function () {
*/
function modalshow(editmode = false, index=0) {
// event on click btnShowSoundbankModal
$btnShowSoundbankModal.on('click', function () {
$btnShowSoundbankModal.off('click').on('click', function () {
$soundbankmodal.modal('show');
fill_citylist();
fill_airlinelist();
@@ -331,7 +322,7 @@ $(document).ready(function () {
});
}
$soundbankmodal.on('click.soundbankselectionsave', '#soundbankselectionsave', function () {
$soundbankmodal.off('click.soundbankselectionsave').on('click.soundbankselectionsave', '#soundbankselectionsave', function () {
let selected_airlinetags = [];
$('#airlinelist input[type=checkbox]:checked').each(function () {
selected_airlinetags.push($(this).val());
@@ -357,12 +348,12 @@ $(document).ready(function () {
$soundbankmodal.modal('hide');
});
$soundbankmodal.on('click.soundbankselectionclose', '#soundbankselectionclose', function () {
$soundbankmodal.off('click.soundbankselectionclose').on('click.soundbankselectionclose', '#soundbankselectionclose', function () {
$soundbankmodal.modal('hide');
});
});
// event on click btnShowMessagebankModal
$btnShowMessagebankModal.on('click', function () {
$btnShowMessagebankModal.off('click').on('click', function () {
$messagebankmodal.modal('show');
fill_messagebanklist();
let messagebank = $modalmessagebank.val().trim();
@@ -376,7 +367,7 @@ $(document).ready(function () {
});
}
$messagebankmodal.on('click.messagebankselectionsave', '#messagebankselectionsave', function () {
$messagebankmodal.off('click.messagebankselectionsave').on('click.messagebankselectionsave', '#messagebankselectionsave', function () {
let selected_messagebankids = [];
$('#messagebanklist input[type=checkbox]:checked').each(function () {
selected_messagebankids.push($(this).val());
@@ -391,12 +382,12 @@ $(document).ready(function () {
$messagebankmodal.modal('hide');
});
$messagebankmodal.on('click.messagebankselectionclose', '#messagebankselectionclose', function () {
$messagebankmodal.off('click.messagebankselectionclose').on('click.messagebankselectionclose', '#messagebankselectionclose', function () {
$messagebankmodal.modal('hide');
});
});
// event on click btnShowBroaadcastZoneModal
$btnShowBroaadcastZoneModal.on('click', function () {
$btnShowBroaadcastZoneModal.off('click').on('click', function () {
$broadcastzonemodal.modal('show');
fill_broadcastzonelist();
let broadcastzones = $modalbroadcastzones.val().trim();
@@ -409,7 +400,7 @@ $(document).ready(function () {
}
});
}
$broadcastzonemodal.on('click.broadcastzoneselectionsave', '#broadcastzoneselectionsave', function () {
$broadcastzonemodal.off('click.broadcastzoneselectionsave').on('click.broadcastzoneselectionsave', '#broadcastzoneselectionsave', function () {
let selected_broadcastzones = [];
$('#broadcastzonelist input[type=checkbox]:checked').each(function () {
selected_broadcastzones.push($(this).val());
@@ -423,13 +414,13 @@ $(document).ready(function () {
$modalbroadcastzones.val(broadcastzonesvalue);
$broadcastzonemodal.modal('hide');
});
$broadcastzonemodal.on('click.broadcastzoneselectionclose', '#broadcastzoneselectionclose', function () {
$broadcastzonemodal.off('click.broadcastzoneselectionclose').on('click.broadcastzoneselectionclose', '#broadcastzoneselectionclose', function () {
$broadcastzonemodal.modal('hide');
});
});
// event on Click save button
$addmodal.on('click.usermanagementsave', '#usermanagementsave', function () {
$addmodal.off('click.usermanagementsave').on('click.usermanagementsave', '#usermanagementsave', function () {
let username = $modalusername.val().trim();
let password = $modalpassword.val();
let verifypassword = $modalverifypassword.val();
@@ -503,12 +494,12 @@ $(document).ready(function () {
$addmodal.modal('hide');
});
// event on Click close button
$addmodal.on('click.usermanagementclose', '#usermanagementclose', function () {
$addmodal.off('click.usermanagementclose').on('click.usermanagementclose', '#usermanagementclose', function () {
$addmodal.modal('hide');
});
}
$btnClear.on('click', function () {
$('#btnClear').off('click').on('click', function () {
DoClear(APIURL, "UserManagement", (okdata) => {
reloaduserDB();
alert("Success clear user management : " + okdata.message);
@@ -516,12 +507,12 @@ $(document).ready(function () {
alert("Error clear user management : " + errdata.message);
});
});
$btnAdd.click(() => {
$('#btnAdd').off('click').on('click', () => {
$addmodal.modal('show');
clearAddModal();
modalshow(false,0);
});
$btnRemove.click(() => {
$('#btnRemove').off('click').on('click', () => {
if (window.selecteduserrow) {
let cells = window.selecteduserrow.find('td');
/** @type {UserDB} */
@@ -546,7 +537,7 @@ $(document).ready(function () {
alert("No user selected");
}
});
$btnEdit.click(() => {
$('#btnEdit').off('click').on('click', () => {
if (window.selecteduserrow) {
let cells = window.selecteduserrow.find('td');
let index = parseInt(cells.eq(0).text());
@@ -579,10 +570,10 @@ $(document).ready(function () {
alert("No user selected");
}
});
$btnExport.click(() => {
$('#btnExport').off('click').on('click', () => {
DoExport(APIURL, "user.xlsx", {});
});
$btnImport.click(() => {
$('#btnImport').off('click').on('click', () => {
DoImport(APIURL, (okdata) => {
reloaduserDB();
alert("Success import user : " + okdata.message);