commit 20/10/2025

This commit is contained in:
2025-10-21 17:20:01 +07:00
parent 19e587fc36
commit c6aa70773f
13 changed files with 289 additions and 67 deletions

View File

@@ -61,6 +61,42 @@ function fill_schedulebanktablebody(vv) {
$('#tablesize').text("Table Size: " + vv.length);
}
/**
* Convert input date string yyyy-mm-dd to dd/mm/yyyy
* @param {String} value from input date, which is in format yyyy-mm-dd
* @returns {String} converted date in format dd/mm/yyyy
*/
function Convert_input_date_to_string(value){
if (value && value.length>0 && value.includes('-')){
let parts = value.split('-');
if (parts.length === 3) {
let year = parts[0];
let month = parts[1];
let day = parts[2];
return `${day}/${month}/${year}`;
}
}
return "";
}
/**
* Convert string date dd/mm/yyyy to input date yyyy-mm-dd
* @param {String} value string date in format dd/mm/yyyy
* @returns {String} converted date in format yyyy-mm-dd
*/
function Convert_string_to_input_date(value){
if (value && value.length>0 && value.includes('/')){
let parts = value.split('/');
if (parts.length === 3) {
let day = parts[0];
let month = parts[1];
let year = parts[2];
return `${year}-${month}-${day}`;
}
}
return "";
}
/**
* Reload timer bank from server
* @param {string} APIURL API URL endpoint, default "ScheduleBank/"
@@ -249,7 +285,7 @@ $(document).ready(function () {
if ($scheduleeveryday.is(':checked')) {
_Day = "Everyday";
} else if ($schedulespecialdate.is(':checked')) {
_Day = $scheduledate.val();
_Day = Convert_input_date_to_string($scheduledate.val());
} else if ($scheduleweekly.is(':checked')) {
_Day = $weeklyselect.val();
}
@@ -322,59 +358,46 @@ $(document).ready(function () {
/** @type {ScheduleBank} */
let sr = {
index: Number(cells.eq(0).text()),
description: cells.eq(1).text(),
day: cells.eq(2).text(),
time: cells.eq(3).text(),
soundpath: cells.eq(4).text(),
repeat: cells.eq(5).text(),
enable: cells.eq(6).text(),
broadcastZones: cells.eq(7).text(),
language: cells.eq(8).text()
Description: cells.eq(1).text(),
Day: cells.eq(2).text(),
Time: cells.eq(3).text(),
Soundpath: cells.eq(4).text(),
Repeat: cells.eq(5).text(),
Enable: cells.eq(6).text(),
BroadcastZones: cells.eq(7).text(),
Language: cells.eq(8).text()
}
if (confirm(`Are you sure to edit schedule [${sr.index}] Description=${sr.description}?`)) {
console.log('Editing schedule:', sr);
if (confirm(`Are you sure to edit schedule [${sr.index}] Description=${sr.Description}?`)) {
$schedulemodal.modal('show');
clearScheduleModal();
// fill the form with existing data
$scheduleid.val(sr.index);
$scheduledescription.val(sr.description);
let [hour, minute] = sr.time.split(':').map(num => parseInt(num, 10));
$scheduledescription.val(sr.Description);
let [hour, minute] = sr.Time.split(':').map(num => parseInt(num, 10));
$schedulehour.val(hour.toString());
$scheduleminute.val(minute.toString());
$schedulemessage.val(sr.soundpath);
$schedulerepeat.val(sr.repeat.toString());
$scheduleenable.prop('checked', sr.enable.toLowerCase() === 'true');
switch (sr.day) {
$schedulemessage.val(sr.Soundpath).trigger('change');
$schedulerepeat.val(sr.Repeat);
$scheduleenable.prop('checked', sr.Enable.toLowerCase() === 'true');
$languageselect.val(sr.Language.split(';')).trigger('change');
$schedulezones.val(sr.BroadcastZones.split(';')).trigger('change');
switch (sr.Day) {
case 'Everyday':
$scheduleeveryday.click();
break;
case 'Sunday':
$schedulesunday.click();
break;
case 'Monday':
$schedulemonday.click();
break;
case 'Tuesday':
$scheduletuesday.click();
break;
case 'Wednesday':
$schedulewednesday.click();
break;
case 'Thursday':
$schedulethursday.click();
break;
case 'Friday':
$schedulefriday.click();
break;
case 'Saturday':
$schedulesaturday.click();
case 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday':
console.log(`Setting weekly schedule for day: ${sr.Day}`);
$scheduleweekly.click();
$weeklyselect.val(sr.Day).trigger('change');
break;
default:
// 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)) {
if (/^\d{2}\/\d{2}\/\d{4}$/.test(sr.Day)) {
$schedulespecialdate.click();
$scheduledate.val(sr.day);
$scheduledate.val(Convert_string_to_input_date(sr.Day));
}
}