commit 09/02/2026
This commit is contained in:
@@ -34,7 +34,6 @@ function fill_schedulebanktablebody(vv) {
|
||||
dtScheduleBank.rows.add(vv);
|
||||
dtScheduleBank.draw();
|
||||
|
||||
|
||||
$('#schedulebanktable tbody').off('click').on('click', 'tr', function () {
|
||||
// if no data
|
||||
if (!dtScheduleBank) return;
|
||||
@@ -118,6 +117,8 @@ function reloadTimerBank(APIURL = "ScheduleBank/") {
|
||||
});
|
||||
}
|
||||
|
||||
dayViewMode = 'all'; // all, everyday, monday, tuesday, wednesday, thursday, friday, saturday, sunday
|
||||
|
||||
$(document).ready(function () {
|
||||
console.log("schedulebank.js loaded successfully");
|
||||
$('#schedulebanktablebody').empty();
|
||||
@@ -134,6 +135,7 @@ $(document).ready(function () {
|
||||
|
||||
if (dtScheduleBank === null) {
|
||||
dtScheduleBank = new DataTable('#schedulebanktable', {
|
||||
dom: 'Bfrtip',
|
||||
data: [],
|
||||
pageLength: 25,
|
||||
columns: [
|
||||
@@ -141,15 +143,60 @@ $(document).ready(function () {
|
||||
{ title: "Description", data: "description" },
|
||||
{ title: "Day", data: "day" },
|
||||
{ title: "Time", data: "time" },
|
||||
{ title: "Sound Path", data: "soundpath" },
|
||||
{ title: "Message", data: "soundpath" },
|
||||
{ title: "Repeat", data: "repeat" },
|
||||
{ title: "Enable", data: "enable" },
|
||||
{ title: "Broadcast Zones", data: "broadcastZones" },
|
||||
{ title: "Language", data: "language" }
|
||||
]
|
||||
],
|
||||
buttons: ['print', 'pdf', {
|
||||
extend: 'collection',
|
||||
text: 'View',
|
||||
className: 'btn btn-outline-secondary',
|
||||
buttons: [
|
||||
{text: 'All', className: 'btn btn-outline-primary', action() { dayViewMode = 'all'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Everyday', className: 'btn btn-outline-primary', action() { dayViewMode = 'everyday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Monday', className: 'btn btn-outline-primary', action() { dayViewMode = 'monday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Tuesday', className: 'btn btn-outline-primary', action() { dayViewMode = 'tuesday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Wednesday', className: 'btn btn-outline-primary', action() { dayViewMode = 'wednesday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Thursday', className: 'btn btn-outline-primary', action() { dayViewMode = 'thursday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Friday', className: 'btn btn-outline-primary', action() { dayViewMode = 'friday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Saturday', className: 'btn btn-outline-primary', action() { dayViewMode = 'saturday'; dtScheduleBank.draw(); } },
|
||||
{ text: 'Sunday', className: 'btn btn-outline-primary', action() { dayViewMode = 'sunday'; dtScheduleBank.draw(); } },
|
||||
{text: 'Special Date', className: 'btn btn-outline-primary', action() { dayViewMode = 'specialdate'; dtScheduleBank.draw(); } }
|
||||
]
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
$.fn.dataTable.ext.search.push(function (settings, data, dataIndex, rowData) {
|
||||
if (settings.nTable.id !== 'schedulebanktable') return true;
|
||||
switch (dayViewMode) {
|
||||
case 'everyday':
|
||||
return rowData.day.toLowerCase() === 'everyday';
|
||||
case 'monday':
|
||||
return rowData.day.toLowerCase() === 'monday';
|
||||
case 'tuesday':
|
||||
return rowData.day.toLowerCase() === 'tuesday';
|
||||
case 'wednesday':
|
||||
return rowData.day.toLowerCase() === 'wednesday';
|
||||
case 'thursday':
|
||||
return rowData.day.toLowerCase() === 'thursday';
|
||||
case 'friday':
|
||||
return rowData.day.toLowerCase() === 'friday';
|
||||
case 'saturday':
|
||||
return rowData.day.toLowerCase() === 'saturday';
|
||||
case 'sunday':
|
||||
return rowData.day.toLowerCase() === 'sunday';
|
||||
case 'specialdate':
|
||||
// match dd/mm/yyyy format
|
||||
return /^\d{2}\/\d{2}\/\d{4}$/.test(rowData.day);
|
||||
default:
|
||||
// 'all' include in here
|
||||
return true;
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
let $schedulemodal = $('#schedulemodal');
|
||||
// text input
|
||||
@@ -244,38 +291,16 @@ $(document).ready(function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$weeklyselect.prop('disabled', false);
|
||||
$scheduledate.prop('disabled', true);
|
||||
} else {
|
||||
$weeklyselect.prop('disabled', true);
|
||||
}
|
||||
}
|
||||
});
|
||||
$schedulespecialdate.off('change').on('change', function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$weeklyselect.prop('disabled', true);
|
||||
$scheduledate.prop('disabled', false);
|
||||
} else {
|
||||
$scheduledate.prop('disabled', true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
let $findschedule = $('#findschedule');
|
||||
// $findschedule.off('input').on('input', function () {
|
||||
// let searchTerm = $findschedule.val().toLowerCase();
|
||||
// if (searchTerm.length > 0) {
|
||||
// window.selectedschedulerow = null;
|
||||
// let filtered = window.schedulebankdata.filter(item =>
|
||||
// item.description.toLowerCase().includes(searchTerm)
|
||||
// || item.soundpath.toLowerCase().includes(searchTerm)
|
||||
// || item.broadcastZones.toLowerCase().includes(searchTerm));
|
||||
// fill_schedulebanktablebody(filtered);
|
||||
// } else {
|
||||
// window.selectedschedulerow = null;
|
||||
// fill_schedulebanktablebody(window.schedulebankdata);
|
||||
// }
|
||||
// });
|
||||
|
||||
|
||||
reloadTimerBank(APIURL);
|
||||
reloadBroadcastZones();
|
||||
getLanguages();
|
||||
@@ -334,10 +359,11 @@ $(document).ready(function () {
|
||||
BroadcastZones: broadcastZones,
|
||||
Language: Language
|
||||
};
|
||||
console.log("Adding schedule: ", scheduleObj);
|
||||
|
||||
fetchAPI(APIURL + "Add", "POST", {}, scheduleObj, (okdata) => {
|
||||
alert("Success add schedule: " + okdata.message);
|
||||
reloadTimerBank(APIURL);
|
||||
alert("Success add schedule: " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error add schedule: " + errdata.message);
|
||||
});
|
||||
@@ -363,6 +389,7 @@ $(document).ready(function () {
|
||||
broadcastZones: window.selectedschedulerow.broadcastZones,
|
||||
language: window.selectedschedulerow.language
|
||||
}
|
||||
|
||||
if (confirm(`Are you sure to delete schedule [${sr.index}] Description=${sr.description}?`)) {
|
||||
fetchAPI(APIURL + "DeleteByIndex/" + sr.index, "DELETE", {}, null, (okdata) => {
|
||||
reloadTimerBank(APIURL);
|
||||
@@ -387,6 +414,7 @@ $(document).ready(function () {
|
||||
BroadcastZones: window.selectedschedulerow.broadcastZones,
|
||||
Language: window.selectedschedulerow.language
|
||||
}
|
||||
console.log("Editing schedule: ", sr);
|
||||
if (confirm(`Are you sure to edit schedule [${sr.index}] Description=${sr.Description}?`)) {
|
||||
$schedulemodal.modal('show');
|
||||
clearScheduleModal();
|
||||
@@ -399,12 +427,18 @@ $(document).ready(function () {
|
||||
$scheduleminute.val(minute.toString());
|
||||
$schedulemessage.val(sr.Soundpath).trigger('change');
|
||||
$schedulerepeat.val(sr.Repeat);
|
||||
$scheduleenable.prop('checked', sr.Enable.toLowerCase() === 'true');
|
||||
$scheduleenable.prop('checked', sr.Enable);
|
||||
$languageselect.val(sr.Language.split(';')).trigger('change');
|
||||
$schedulezones.val(sr.BroadcastZones.split(';')).trigger('change');
|
||||
switch (sr.Day) {
|
||||
case 'Everyday':
|
||||
$scheduleeveryday.click();
|
||||
// make the everyday radio button checked
|
||||
$scheduleeveryday.prop('checked', true);
|
||||
|
||||
$weeklyselect.val(null).trigger('change');
|
||||
$weeklyselect.prop('disabled', true);
|
||||
|
||||
$scheduledate.prop('disabled', true);
|
||||
break;
|
||||
case 'Sunday':
|
||||
case 'Monday':
|
||||
@@ -413,15 +447,25 @@ $(document).ready(function () {
|
||||
case 'Thursday':
|
||||
case 'Friday':
|
||||
case 'Saturday':
|
||||
$scheduleweekly.click();
|
||||
$scheduleweekly.prop('checked', true);
|
||||
|
||||
$weeklyselect.val(sr.Day).trigger('change');
|
||||
$weeklyselect.prop('disabled', false);
|
||||
|
||||
$scheduledate.prop('disabled', true);
|
||||
break;
|
||||
default:
|
||||
console.log("Assuming special date for Day: ", sr.Day);
|
||||
// check if the day is in format dd/mm/yyyy
|
||||
// and set the special date radio button and date input
|
||||
if (/^\d{2}\/\d{2}\/\d{4}$/.test(sr.Day)) {
|
||||
$schedulespecialdate.click();
|
||||
$schedulespecialdate.prop('checked', true);
|
||||
|
||||
$scheduledate.val(Convert_string_to_input_date(sr.Day));
|
||||
$scheduledate.prop('disabled', false);
|
||||
|
||||
$weeklyselect.val(null).trigger('change');
|
||||
$weeklyselect.prop('disabled', true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user