commit 09/02/2026
This commit is contained in:
431
html/webpage/assets/css/litepicker.css
Normal file
431
html/webpage/assets/css/litepicker.css
Normal file
@@ -0,0 +1,431 @@
|
||||
/* !
|
||||
*
|
||||
* ../css/litepicker.css
|
||||
* Litepicker v2.0.12 (https://github.com/wakirin/Litepicker)
|
||||
* Package: litepicker (https://www.npmjs.com/package/litepicker)
|
||||
* License: MIT (https://github.com/wakirin/Litepicker/blob/master/LICENCE.md)
|
||||
* Copyright 2019-2021 Rinat G.
|
||||
*
|
||||
* Hash: 2f11f1f0300ea13b17b5
|
||||
* */
|
||||
|
||||
:root {
|
||||
--litepicker-container-months-color-bg: #fff;
|
||||
--litepicker-container-months-box-shadow-color: #ddd;
|
||||
--litepicker-footer-color-bg: #fafafa;
|
||||
--litepicker-footer-box-shadow-color: #ddd;
|
||||
--litepicker-tooltip-color-bg: #fff;
|
||||
--litepicker-month-header-color: #333;
|
||||
--litepicker-button-prev-month-color: #9e9e9e;
|
||||
--litepicker-button-next-month-color: #9e9e9e;
|
||||
--litepicker-button-prev-month-color-hover: #2196f3;
|
||||
--litepicker-button-next-month-color-hover: #2196f3;
|
||||
--litepicker-month-width: calc(var(--litepicker-day-width) * 7);
|
||||
--litepicker-month-weekday-color: #9e9e9e;
|
||||
--litepicker-month-week-number-color: #9e9e9e;
|
||||
--litepicker-day-width: 38px;
|
||||
--litepicker-day-color: #333;
|
||||
--litepicker-day-color-hover: #2196f3;
|
||||
--litepicker-is-today-color: #f44336;
|
||||
--litepicker-is-in-range-color: #bbdefb;
|
||||
--litepicker-is-locked-color: #9e9e9e;
|
||||
--litepicker-is-start-color: #fff;
|
||||
--litepicker-is-start-color-bg: #2196f3;
|
||||
--litepicker-is-end-color: #fff;
|
||||
--litepicker-is-end-color-bg: #2196f3;
|
||||
--litepicker-button-cancel-color: #fff;
|
||||
--litepicker-button-cancel-color-bg: #9e9e9e;
|
||||
--litepicker-button-apply-color: #fff;
|
||||
--litepicker-button-apply-color-bg: #2196f3;
|
||||
--litepicker-button-reset-color: #909090;
|
||||
--litepicker-button-reset-color-hover: #2196f3;
|
||||
--litepicker-highlighted-day-color: #333;
|
||||
--litepicker-highlighted-day-color-bg: #ffeb3b;
|
||||
}
|
||||
|
||||
.show-week-numbers {
|
||||
--litepicker-month-width: calc(var(--litepicker-day-width) * 8);
|
||||
}
|
||||
|
||||
.litepicker {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
font-size: 0.8em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.litepicker button {
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
|
||||
.litepicker .container__main {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.litepicker .container__months {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
background-color: var(--litepicker-container-months-color-bg);
|
||||
border-radius: 5px;
|
||||
-webkit-box-shadow: 0 0 5px var(--litepicker-container-months-box-shadow-color);
|
||||
box-shadow: 0 0 5px var(--litepicker-container-months-box-shadow-color);
|
||||
width: calc(var(--litepicker-month-width) + 10px);
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.litepicker .container__months.columns-2 {
|
||||
width: calc((var(--litepicker-month-width) * 2) + 20px);
|
||||
}
|
||||
|
||||
.litepicker .container__months.columns-3 {
|
||||
width: calc((var(--litepicker-month-width) * 3) + 30px);
|
||||
}
|
||||
|
||||
.litepicker .container__months.columns-4 {
|
||||
width: calc((var(--litepicker-month-width) * 4) + 40px);
|
||||
}
|
||||
|
||||
.litepicker .container__months.split-view .month-item-header .button-previous-month, .litepicker .container__months.split-view .month-item-header .button-next-month {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item {
|
||||
padding: 5px;
|
||||
width: var(--litepicker-month-width);
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-pack: justify;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
font-weight: 500;
|
||||
padding: 10px 5px;
|
||||
text-align: center;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
color: var(--litepicker-month-header-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header div {
|
||||
-webkit-box-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header div > .month-item-name {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header div > .month-item-year {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .reset-button {
|
||||
color: var(--litepicker-button-reset-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .reset-button > svg {
|
||||
fill: var(--litepicker-button-reset-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .reset-button * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .reset-button:hover {
|
||||
color: var(--litepicker-button-reset-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .reset-button:hover > svg {
|
||||
fill: var(--litepicker-button-reset-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-previous-month, .litepicker .container__months .month-item-header .button-next-month {
|
||||
visibility: hidden;
|
||||
text-decoration: none;
|
||||
padding: 3px 5px;
|
||||
border-radius: 3px;
|
||||
-webkit-transition: color 0.3s, border 0.3s;
|
||||
transition: color 0.3s, border 0.3s;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-previous-month *, .litepicker .container__months .month-item-header .button-next-month * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-previous-month {
|
||||
color: var(--litepicker-button-prev-month-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-previous-month > svg, .litepicker .container__months .month-item-header .button-previous-month > img {
|
||||
fill: var(--litepicker-button-prev-month-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-previous-month:hover {
|
||||
color: var(--litepicker-button-prev-month-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-previous-month:hover > svg {
|
||||
fill: var(--litepicker-button-prev-month-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-next-month {
|
||||
color: var(--litepicker-button-next-month-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-next-month > svg, .litepicker .container__months .month-item-header .button-next-month > img {
|
||||
fill: var(--litepicker-button-next-month-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-next-month:hover {
|
||||
color: var(--litepicker-button-next-month-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-header .button-next-month:hover > svg {
|
||||
fill: var(--litepicker-button-next-month-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-weekdays-row {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
justify-self: center;
|
||||
-webkit-box-pack: start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
color: var(--litepicker-month-weekday-color);
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item-weekdays-row > div {
|
||||
padding: 5px 0;
|
||||
font-size: 85%;
|
||||
-webkit-box-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
width: var(--litepicker-day-width);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item:first-child .button-previous-month {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item:last-child .button-next-month {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item.no-previous-month .button-previous-month {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.litepicker .container__months .month-item.no-next-month .button-next-month {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.litepicker .container__days {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
justify-self: center;
|
||||
-webkit-box-pack: start;
|
||||
-ms-flex-pack: start;
|
||||
justify-content: flex-start;
|
||||
text-align: center;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.litepicker .container__days > div, .litepicker .container__days > a {
|
||||
padding: 5px 0;
|
||||
width: var(--litepicker-day-width);
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item {
|
||||
color: var(--litepicker-day-color);
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
border-radius: 3px;
|
||||
-webkit-transition: color 0.3s, border 0.3s;
|
||||
transition: color 0.3s, border 0.3s;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item:hover {
|
||||
color: var(--litepicker-day-color-hover);
|
||||
-webkit-box-shadow: inset 0 0 0 1px var(--litepicker-day-color-hover);
|
||||
box-shadow: inset 0 0 0 1px var(--litepicker-day-color-hover);
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-today {
|
||||
color: var(--litepicker-is-today-color);
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-locked {
|
||||
color: var(--litepicker-is-locked-color);
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-locked:hover {
|
||||
color: var(--litepicker-is-locked-color);
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-in-range {
|
||||
background-color: var(--litepicker-is-in-range-color);
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-start-date {
|
||||
color: var(--litepicker-is-start-color);
|
||||
background-color: var(--litepicker-is-start-color-bg);
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-start-date.is-flipped {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-end-date {
|
||||
color: var(--litepicker-is-end-color);
|
||||
background-color: var(--litepicker-is-end-color-bg);
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-end-date.is-flipped {
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-start-date.is-end-date {
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
.litepicker .container__days .day-item.is-highlighted {
|
||||
color: var(--litepicker-highlighted-day-color);
|
||||
background-color: var(--litepicker-highlighted-day-color-bg);
|
||||
}
|
||||
|
||||
.litepicker .container__days .week-number {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
color: var(--litepicker-month-week-number-color);
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
.litepicker .container__footer {
|
||||
text-align: right;
|
||||
padding: 10px 5px;
|
||||
margin: 0 5px;
|
||||
background-color: var(--litepicker-footer-color-bg);
|
||||
-webkit-box-shadow: inset 0px 3px 3px 0px var(--litepicker-footer-box-shadow-color);
|
||||
box-shadow: inset 0px 3px 3px 0px var(--litepicker-footer-box-shadow-color);
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
.litepicker .container__footer .preview-date-range {
|
||||
margin-right: 10px;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.litepicker .container__footer .button-cancel {
|
||||
background-color: var(--litepicker-button-cancel-color-bg);
|
||||
color: var(--litepicker-button-cancel-color);
|
||||
border: 0;
|
||||
padding: 3px 7px 4px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.litepicker .container__footer .button-cancel * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.litepicker .container__footer .button-apply {
|
||||
background-color: var(--litepicker-button-apply-color-bg);
|
||||
color: var(--litepicker-button-apply-color);
|
||||
border: 0;
|
||||
padding: 3px 7px 4px;
|
||||
border-radius: 3px;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.litepicker .container__footer .button-apply:disabled {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.litepicker .container__footer .button-apply * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.litepicker .container__tooltip {
|
||||
position: absolute;
|
||||
margin-top: -4px;
|
||||
padding: 4px 8px;
|
||||
border-radius: 4px;
|
||||
background-color: var(--litepicker-tooltip-color-bg);
|
||||
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.25);
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.25);
|
||||
white-space: nowrap;
|
||||
font-size: 11px;
|
||||
pointer-events: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.litepicker .container__tooltip:before {
|
||||
position: absolute;
|
||||
bottom: -5px;
|
||||
left: calc(50% - 5px);
|
||||
border-top: 5px solid rgba(0,0,0,0.12);
|
||||
border-right: 5px solid transparent;
|
||||
border-left: 5px solid transparent;
|
||||
content: "";
|
||||
}
|
||||
|
||||
.litepicker .container__tooltip:after {
|
||||
position: absolute;
|
||||
bottom: -4px;
|
||||
left: calc(50% - 4px);
|
||||
border-top: 4px solid var(--litepicker-tooltip-color-bg);
|
||||
border-right: 4px solid transparent;
|
||||
border-left: 4px solid transparent;
|
||||
content: "";
|
||||
}
|
||||
|
||||
12
html/webpage/assets/js/litepicker.js
Normal file
12
html/webpage/assets/js/litepicker.js
Normal file
File diff suppressed because one or more lines are too long
@@ -21,7 +21,7 @@ dtLog = null;
|
||||
function fill_logtablebody(vv) {
|
||||
dtLog.clear();
|
||||
if (!Array.isArray(vv) || vv.length === 0) {
|
||||
$('#btnExport').prop('disabled', true);
|
||||
//$('#btnExport').prop('disabled', true);
|
||||
return;
|
||||
}
|
||||
dtLog.rows.add(vv);
|
||||
@@ -29,7 +29,7 @@ function fill_logtablebody(vv) {
|
||||
|
||||
|
||||
$('#tablesize').text("Table Size: " + vv.length);
|
||||
$('#btnExport').prop('disabled', false);
|
||||
//$('#btnExport').prop('disabled', false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,8 +43,10 @@ function reloadLogs(APIURL = "Log/", date, filter) {
|
||||
date: date,
|
||||
filter: filter
|
||||
})
|
||||
console.log("Loading logs with params: " + params.toString());
|
||||
window.logdata = [];
|
||||
fetchAPI(APIURL + "List?" + params.toString(), "GET", {}, null, (okdata) => {
|
||||
console.log("Logs loaded: " + okdata.length);
|
||||
if (Array.isArray(okdata)) {
|
||||
window.logdata.push(...okdata);
|
||||
fill_logtablebody(window.logdata);
|
||||
@@ -54,16 +56,33 @@ function reloadLogs(APIURL = "Log/", date, filter) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
datepicker = null;
|
||||
$btnGet = null;
|
||||
|
||||
$(document).ready(function () {
|
||||
console.log("log.js ready");
|
||||
let selectedlogdate = "";
|
||||
let logfilter = "";
|
||||
let APIURL = "Log/";
|
||||
$btnGet = $('#btnGet');
|
||||
|
||||
datepicker = new Litepicker({
|
||||
element: document.getElementById('logdate'),
|
||||
format: 'DD/MM/YYYY',
|
||||
lang: 'en-US',
|
||||
autoApply: true,
|
||||
singleMode: true,
|
||||
startDate: new Date(),
|
||||
onSelect: (date) => {
|
||||
selectedlogdate = date.format('DD/MM/YYYY');
|
||||
console.log("Selected date: " + selectedlogdate);
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
if (dtLog === null) {
|
||||
dtLog = new DataTable('#logtable', {
|
||||
dom: 'Bfrtip',
|
||||
data: [],
|
||||
pageLength: 25,
|
||||
columns: [
|
||||
@@ -72,36 +91,42 @@ $(document).ready(function () {
|
||||
{ title: "Time", data: "timenya" },
|
||||
{ title: "Machine", data: "machine" },
|
||||
{ title: "Description", data: "description" }
|
||||
]
|
||||
],
|
||||
buttons: ['print', 'pdf', 'excel']
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
if (!$('#logdate').val()) {
|
||||
const today = new Date();
|
||||
const dd = String(today.getDate()).padStart(2, '0');
|
||||
const mm = String(today.getMonth() + 1).padStart(2, '0');
|
||||
const yyyy = today.getFullYear();
|
||||
$('#logdate').val(`${yyyy}-${mm}-${dd}`);
|
||||
selectedlogdate = `${dd}-${mm}-${yyyy}`;
|
||||
reloadLogs(APIURL, selectedlogdate, logfilter);
|
||||
}
|
||||
$('#logdate').off('change').on('change', function () {
|
||||
const selected = $(this).val();
|
||||
if (selected) {
|
||||
const [year, month, day] = selected.split('-');
|
||||
selectedlogdate = `${day}-${month}-${year}`;
|
||||
reloadLogs(APIURL, selectedlogdate, logfilter);
|
||||
// findalldate is checkbox, if checked will disable datepicker
|
||||
$('#findalldate').off('change').on('change', function () {
|
||||
if ($(this).is(':checked')) {
|
||||
datepicker.disabled = true;
|
||||
selectedlogdate = "alldate";
|
||||
console.log("Find all date checked, omitting date filter");
|
||||
} else {
|
||||
datepicker.disabled = false;
|
||||
const date = datepicker.getDate();
|
||||
selectedlogdate = date.format('DD/MM/YYYY');
|
||||
console.log("Find all date unchecked, selected date: " + selectedlogdate);
|
||||
}
|
||||
});
|
||||
|
||||
$('#searchfilter').off('input').on('input', function () {
|
||||
logfilter = $(this).val();
|
||||
//reloadLogs(APIURL, selectedlogdate, logfilter);
|
||||
});
|
||||
$btnGet.click(function () {
|
||||
let checked = $('#findalldate').is(':checked');
|
||||
if (checked && logfilter.trim() === "") {
|
||||
alert("Please enter a filter when 'Find All Date' is checked to avoid large data load.");
|
||||
return;
|
||||
}
|
||||
//$(this).data('selectedlogdate', selectedlogdate);
|
||||
//$(this).data('logfilter', logfilter);
|
||||
reloadLogs(APIURL, selectedlogdate, logfilter);
|
||||
});
|
||||
$('#btnExport').off('click').on('click', function () {
|
||||
DoExport(APIURL, "log.xlsx", { date: selectedlogdate, filter: logfilter });
|
||||
});
|
||||
|
||||
|
||||
selectedlogdate = datepicker.getDate().format('DD/MM/YYYY');
|
||||
console.log("Initial selected date: " + selectedlogdate);
|
||||
$btnGet.trigger('click'); // load logs on page load
|
||||
|
||||
});
|
||||
@@ -22,6 +22,15 @@ window.schedulebankdata = [];
|
||||
window.selectedschedulerow = null;
|
||||
|
||||
dtScheduleBank = null;
|
||||
dtTodaySchedule = null;
|
||||
|
||||
function fill_todayscheduletablebody(vv) {
|
||||
dtTodaySchedule.clear();
|
||||
if (!Array.isArray(vv) || vv.length === 0) return;
|
||||
|
||||
dtTodaySchedule.rows.add(vv);
|
||||
dtTodaySchedule.draw();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill schedulebank table body with values
|
||||
@@ -117,7 +126,19 @@ function reloadTimerBank(APIURL = "ScheduleBank/") {
|
||||
});
|
||||
}
|
||||
|
||||
function reloadTodaySchedule(APIURL = "ScheduleBank/") {
|
||||
fetchAPI(APIURL + "TodaySchedule", "GET", {}, null, (okdata) => {
|
||||
if (Array.isArray(okdata)) {
|
||||
console.log("Today's Schedule: ", okdata);
|
||||
fill_todayscheduletablebody(okdata);
|
||||
}
|
||||
}, (errdata) => {
|
||||
alert("Error loading today's schedule : " + errdata.message);
|
||||
});
|
||||
}
|
||||
|
||||
dayViewMode = 'all'; // all, everyday, monday, tuesday, wednesday, thursday, friday, saturday, sunday
|
||||
scheduledate = null; // Litepicker instance for schedule date selection
|
||||
|
||||
$(document).ready(function () {
|
||||
console.log("schedulebank.js loaded successfully");
|
||||
@@ -169,6 +190,26 @@ $(document).ready(function () {
|
||||
});
|
||||
}
|
||||
|
||||
if (dtTodaySchedule === null) {
|
||||
dtTodaySchedule = new DataTable('#todaytable', {
|
||||
dom: 'Bfrtip',
|
||||
data: [],
|
||||
pageLength: 25,
|
||||
columns: [
|
||||
{ title: "No", data: "index" },
|
||||
{ title: "Description", data: "description" },
|
||||
{ title: "Day", data: "day" },
|
||||
{ title: "Time", data: "time" },
|
||||
{ title: "Message", data: "soundpath" },
|
||||
{ title: "Repeat", data: "repeat" },
|
||||
{ title: "Enable", data: "enable" },
|
||||
{ title: "Broadcast Zones", data: "broadcastZones" },
|
||||
{ title: "Language", data: "language" }
|
||||
],
|
||||
buttons: ['print', 'pdf']
|
||||
});
|
||||
}
|
||||
|
||||
$.fn.dataTable.ext.search.push(function (settings, data, dataIndex, rowData) {
|
||||
if (settings.nTable.id !== 'schedulebanktable') return true;
|
||||
switch (dayViewMode) {
|
||||
@@ -223,16 +264,30 @@ $(document).ready(function () {
|
||||
let $weeklyselect = $schedulemodal.find('#weeklyselect');
|
||||
// radio button for specific date
|
||||
let $schedulespecialdate = $schedulemodal.find('#schedulespecialdate');
|
||||
|
||||
scheduledate = new Litepicker({
|
||||
element: document.getElementById('scheduledate'),
|
||||
format: 'DD/MM/YYYY',
|
||||
lang: 'en-US',
|
||||
autoApply: true,
|
||||
singleMode: true,
|
||||
startDate: new Date(),
|
||||
onSelect: (date) => {
|
||||
console.log("Selected special date: " + date.format('DD/MM/YYYY'));
|
||||
}
|
||||
})
|
||||
// date input
|
||||
let $scheduledate = $schedulemodal.find('#scheduledate');
|
||||
//let $scheduledate = $schedulemodal.find('#scheduledate');
|
||||
// select2 for language
|
||||
let $languageselect = $schedulemodal.find('#languageselect');
|
||||
|
||||
$schedulespecialdate.off('change').on('change', function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$scheduledate.prop('disabled', false);
|
||||
//$scheduledate.prop('disabled', false);
|
||||
scheduledate.disabled = false
|
||||
} else {
|
||||
$scheduledate.prop('disabled', true);
|
||||
//$scheduledate.prop('disabled', true);
|
||||
scheduledate.disabled = true
|
||||
}
|
||||
});
|
||||
|
||||
@@ -261,7 +316,8 @@ $(document).ready(function () {
|
||||
dropdownParent: $('#schedulemodal')
|
||||
});
|
||||
|
||||
$scheduledate.prop('disabled', true).val('');
|
||||
//$scheduledate.prop('disabled', true).val('');
|
||||
scheduledate.disabled = true;
|
||||
$schedulezones.empty().select2({
|
||||
data: window.BroadcastZoneList.map(zone => ({ id: zone.description, text: zone.description })),
|
||||
placeholder: 'Select broadcast zones',
|
||||
@@ -284,24 +340,28 @@ $(document).ready(function () {
|
||||
$scheduleeveryday.off('change').on('change', function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$weeklyselect.prop('disabled', true);
|
||||
$scheduledate.prop('disabled', true);
|
||||
//$scheduledate.prop('disabled', true);
|
||||
scheduledate.disabled = true;
|
||||
}
|
||||
});
|
||||
$scheduleweekly.off('change').on('change', function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$weeklyselect.prop('disabled', false);
|
||||
$scheduledate.prop('disabled', true);
|
||||
//$scheduledate.prop('disabled', true);
|
||||
scheduledate.disabled = true;
|
||||
}
|
||||
});
|
||||
$schedulespecialdate.off('change').on('change', function () {
|
||||
if ($(this).is(':checked')) {
|
||||
$weeklyselect.prop('disabled', true);
|
||||
$scheduledate.prop('disabled', false);
|
||||
//$scheduledate.prop('disabled', false);
|
||||
scheduledate.disabled = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
reloadTimerBank(APIURL);
|
||||
reloadTodaySchedule(APIURL);
|
||||
reloadBroadcastZones();
|
||||
getLanguages();
|
||||
getScheduledDays();
|
||||
@@ -309,6 +369,7 @@ $(document).ready(function () {
|
||||
$btnClear.click(() => {
|
||||
DoClear(APIURL, "Timerbank", (okdata) => {
|
||||
reloadTimerBank(APIURL);
|
||||
reloadTodaySchedule(APIURL);
|
||||
alert("Success clear schedulebank : " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error clear schedulebank : " + errdata.message);
|
||||
@@ -317,7 +378,9 @@ $(document).ready(function () {
|
||||
});
|
||||
$btnAdd.click(() => {
|
||||
$schedulemodal.modal('show');
|
||||
|
||||
clearScheduleModal();
|
||||
$scheduleeveryday.prop('checked', true).trigger('click');
|
||||
|
||||
$schedulemodal.off('click.scheduleclose').on('click.scheduleclose', '#scheduleclose', function () {
|
||||
$schedulemodal.modal('hide');
|
||||
@@ -333,7 +396,7 @@ $(document).ready(function () {
|
||||
if ($scheduleeveryday.is(':checked')) {
|
||||
_Day = "Everyday";
|
||||
} else if ($schedulespecialdate.is(':checked')) {
|
||||
_Day = Convert_input_date_to_string($scheduledate.val());
|
||||
_Day = Convert_input_date_to_string(scheduledate.getDate().format('DD/MM/YYYY'));
|
||||
} else if ($scheduleweekly.is(':checked')) {
|
||||
_Day = $weeklyselect.val();
|
||||
}
|
||||
@@ -363,6 +426,7 @@ $(document).ready(function () {
|
||||
|
||||
fetchAPI(APIURL + "Add", "POST", {}, scheduleObj, (okdata) => {
|
||||
reloadTimerBank(APIURL);
|
||||
reloadTodaySchedule(APIURL);
|
||||
alert("Success add schedule: " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error add schedule: " + errdata.message);
|
||||
@@ -393,6 +457,7 @@ $(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);
|
||||
reloadTodaySchedule(APIURL);
|
||||
alert("Success delete schedule : " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error delete schedule : " + errdata.message);
|
||||
@@ -438,7 +503,8 @@ $(document).ready(function () {
|
||||
$weeklyselect.val(null).trigger('change');
|
||||
$weeklyselect.prop('disabled', true);
|
||||
|
||||
$scheduledate.prop('disabled', true);
|
||||
//$scheduledate.prop('disabled', true);
|
||||
scheduledate.disabled = true;
|
||||
break;
|
||||
case 'Sunday':
|
||||
case 'Monday':
|
||||
@@ -452,7 +518,8 @@ $(document).ready(function () {
|
||||
$weeklyselect.val(sr.Day).trigger('change');
|
||||
$weeklyselect.prop('disabled', false);
|
||||
|
||||
$scheduledate.prop('disabled', true);
|
||||
//$scheduledate.prop('disabled', true);
|
||||
scheduledate.disabled = true;
|
||||
break;
|
||||
default:
|
||||
console.log("Assuming special date for Day: ", sr.Day);
|
||||
@@ -461,8 +528,10 @@ $(document).ready(function () {
|
||||
if (/^\d{2}\/\d{2}\/\d{4}$/.test(sr.Day)) {
|
||||
$schedulespecialdate.prop('checked', true);
|
||||
|
||||
$scheduledate.val(Convert_string_to_input_date(sr.Day));
|
||||
$scheduledate.prop('disabled', false);
|
||||
//$scheduledate.val(Convert_string_to_input_date(sr.Day));
|
||||
// $scheduledate.prop('disabled', false);
|
||||
scheduledate.setDate(dayjs(sr.Day,'DD/MM/YYYY'));
|
||||
scheduledate.disabled = false;
|
||||
|
||||
$weeklyselect.val(null).trigger('change');
|
||||
$weeklyselect.prop('disabled', true);
|
||||
@@ -484,7 +553,8 @@ $(document).ready(function () {
|
||||
Day = "Everyday";
|
||||
} else if ($schedulespecialdate.is(':checked')) {
|
||||
// convert date from yyyy-mm-dd to dd/mm/yyyy
|
||||
Day = Convert_input_date_to_string($scheduledate.val());
|
||||
//Day = Convert_input_date_to_string($scheduledate.val());
|
||||
Day = scheduledate.getDate().format('DD/MM/YYYY');
|
||||
} else if ($scheduleweekly.is(':checked')) {
|
||||
Day = $weeklyselect.val();
|
||||
}
|
||||
@@ -516,6 +586,7 @@ $(document).ready(function () {
|
||||
fetchAPI(APIURL + "UpdateByIndex/" + sr.index, "PATCH", {}, scheduleObj, (okdata) => {
|
||||
alert("Success edit schedule: " + okdata.message);
|
||||
reloadTimerBank(APIURL);
|
||||
reloadTodaySchedule(APIURL);
|
||||
}, (errdata) => {
|
||||
alert("Error edit schedule: " + errdata.message);
|
||||
});
|
||||
@@ -537,6 +608,7 @@ $(document).ready(function () {
|
||||
$btnImport.click(() => {
|
||||
DoImport(APIURL, (okdata) => {
|
||||
reloadTimerBank(APIURL);
|
||||
reloadTodaySchedule(APIURL);
|
||||
alert("Success import schedulebank from XLSX : " + okdata.message);
|
||||
}, (errdata) => {
|
||||
alert("Error importing schedulebank from XLSX : " + errdata.message);
|
||||
|
||||
@@ -292,9 +292,9 @@
|
||||
</div>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/soundchannel.js"></script>
|
||||
<script src="assets/js/broadcastzones.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -159,10 +159,10 @@
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/jquery-3.7.1.min.js"></script>
|
||||
<script src="assets/js/script.js"></script>
|
||||
<script src="assets/js/all.min.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/select2.min.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/all.min.js"></script>
|
||||
<script src="assets/js/script.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -119,10 +119,10 @@
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/jquery-3.7.1.min.js"></script>
|
||||
<script src="assets/js/script.js"></script>
|
||||
<script src="assets/js/all.min.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/select2.min.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/all.min.js"></script>
|
||||
<script src="assets/js/script.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -99,8 +99,8 @@
|
||||
</div>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/languagelink.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/languagelink.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -15,6 +15,7 @@
|
||||
<link rel="stylesheet" href="assets/css/FontAwesome.css">
|
||||
<link rel="stylesheet" href="assets/css/bss-overrides.css">
|
||||
<link rel="stylesheet" href="assets/css/datatables.css">
|
||||
<link rel="stylesheet" href="assets/css/litepicker.css">
|
||||
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">
|
||||
<link rel="stylesheet" href="assets/css/styles.css">
|
||||
</head>
|
||||
@@ -26,16 +27,26 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2">
|
||||
<p class="text-add">Select Log Date</p>
|
||||
<div class="col-5 ms-1 me-1">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<p class="text-add">Select Log Date</p>
|
||||
</div>
|
||||
<div class="col-auto"><input type="text" id="logdate" class="form-control"></div>
|
||||
<div class="col">
|
||||
<div class="form-check w-100 h-100 align-content-center"><input class="form-check-input" type="checkbox" id="findalldate"><label class="form-check-label" for="formCheck-1">All Date</label></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2"><input id="logdate" class="form-control" type="date"></div>
|
||||
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="btnExport" type="button">Export</button></div>
|
||||
<div class="col-md-2 col-lg-2 col-xl-2"></div>
|
||||
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2 d-none">
|
||||
<p class="text-add">Search</p>
|
||||
<div class="col-5 ms-1 me-1">
|
||||
<div class="row">
|
||||
<div class="col-auto">
|
||||
<p class="text-add">Search</p>
|
||||
</div>
|
||||
<div class="col"><input type="text" id="searchfilter" class="form-control" placeholder="Search Filter"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4 col-sm-4 col-md-2 col-lg-2 col-xl-2 d-none"><input type="text" id="searchfilter" class="form-control" placeholder="Search Filter"></div>
|
||||
<div class="col ms-1 me-1"><button class="btn w-100 pad-button btn-round-basic color-import" id="btnGet" type="button">Get</button></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
@@ -60,8 +71,9 @@
|
||||
</div>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/log.js"></script>
|
||||
<script src="assets/js/litepicker.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/log.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -136,8 +136,8 @@
|
||||
</div>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/messagebank.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/messagebank.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -120,8 +120,8 @@
|
||||
</div>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/soundbank.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/soundbank.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -15,6 +15,7 @@
|
||||
<link rel="stylesheet" href="assets/css/FontAwesome.css">
|
||||
<link rel="stylesheet" href="assets/css/bss-overrides.css">
|
||||
<link rel="stylesheet" href="assets/css/datatables.css">
|
||||
<link rel="stylesheet" href="assets/css/litepicker.css">
|
||||
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">
|
||||
<link rel="stylesheet" href="assets/css/styles.css">
|
||||
</head>
|
||||
@@ -25,46 +26,6 @@
|
||||
<h2 style="text-align: center;">Schedule Bank</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row d-none pad-row-search">
|
||||
<div class="col-md-7 col-lg-7 col-xl-7"></div>
|
||||
<div class="col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2 search">
|
||||
<p class="text-add">Search</p>
|
||||
</div>
|
||||
<div class="col-10 col-sm-10 col-md-3 col-lg-3 col-xl-3"><input class="w-100 form-control" type="text" id="findschedule" placeholder="Search keyword" name="findsoundbank"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-add" id="btnClear" type="button">Clear</button></div>
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-add" id="btnAdd" type="button">Add</button></div>
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-remove" id="btnRemove" type="button">Remove</button></div>
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-edit" id="btnEdit" type="button">Edit</button></div>
|
||||
<div class="col-6 col-sm-6 col-md-6 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="btnExport" type="button">Export</button></div>
|
||||
<div class="col-6 col-sm-6 col-md-6 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="btnImport" type="button">Import</button></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p id="tablesize" class="text-add" style="text-align: center;">Table Length : N/A</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="table-responsive">
|
||||
<table class="table" id="schedulebanktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="class05">No</th>
|
||||
<th class="class15">Description</th>
|
||||
<th class="class15">Day</th>
|
||||
<th class="class10">Time</th>
|
||||
<th class="class15">Sound Path</th>
|
||||
<th class="class10">Repeat</th>
|
||||
<th class="class05">Enable</th>
|
||||
<th class="class15">Broadcast Zones</th>
|
||||
<th class="class10">Language</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="schedulebanktablebody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" role="dialog" tabindex="-1" id="schedulemodal">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
@@ -106,10 +67,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row py-2">
|
||||
<div class="col-7 col-sm-7 col-md-7 col-lg-6 col-xl-6 pad-day">
|
||||
<div class="col-auto pad-day">
|
||||
<div class="form-check"><input class="form-check-input" type="radio" id="schedulespecialdate" name="dayselect"><label class="form-check-label" for="schedulespecialdate">Special Date</label></div>
|
||||
</div>
|
||||
<div class="col-sm-5 col-md-5 col-lg-6 col-xl-6"><input id="scheduledate" class="form-control" type="date"></div>
|
||||
<div class="col"><input type="text" id="scheduledate" class="form-control"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -181,10 +142,80 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion" role="tablist" id="accordion-1">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" role="tab"><button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-1 .item-1" aria-expanded="false" aria-controls="accordion-1 .item-1">Schedule Table</button></h2>
|
||||
<div class="accordion-collapse collapse item-1" role="tabpanel" data-bs-parent="#accordion-1">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-add" id="btnClear" type="button">Clear</button></div>
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-add" id="btnAdd" type="button">Add</button></div>
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-remove" id="btnRemove" type="button">Remove</button></div>
|
||||
<div class="col-3 col-sm-3 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-edit" id="btnEdit" type="button">Edit</button></div>
|
||||
<div class="col-6 col-sm-6 col-md-6 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="btnExport" type="button">Export</button></div>
|
||||
<div class="col-6 col-sm-6 col-md-6 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="btnImport" type="button">Import</button></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<p id="tablesize" class="text-add" style="text-align: center;">Table Length : N/A</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="table-responsive">
|
||||
<table class="table" id="schedulebanktable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="class05">No</th>
|
||||
<th class="class15">Description</th>
|
||||
<th class="class15">Day</th>
|
||||
<th class="class10">Time</th>
|
||||
<th class="class15">Sound Path</th>
|
||||
<th class="class10">Repeat</th>
|
||||
<th class="class05">Enable</th>
|
||||
<th class="class15">Broadcast Zones</th>
|
||||
<th class="class10">Language</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="schedulebanktablebody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header" role="tab"><button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-1 .item-2" aria-expanded="true" aria-controls="accordion-1 .item-2">Today's Schedule</button></h2>
|
||||
<div class="accordion-collapse collapse show item-2" role="tabpanel" data-bs-parent="#accordion-1">
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="table-responsive">
|
||||
<table class="table" id="todaytable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="class05">No</th>
|
||||
<th class="class15">Description</th>
|
||||
<th class="class15">Day</th>
|
||||
<th class="class10">Time</th>
|
||||
<th class="class15">Sound Path</th>
|
||||
<th class="class10">Repeat</th>
|
||||
<th class="class05">Enable</th>
|
||||
<th class="class15">Broadcast Zones</th>
|
||||
<th class="class10">Language</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="schedulebanktablebody-1"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="assets/js/bs-init.js"></script>
|
||||
<script src="assets/js/schedulebank.js"></script>
|
||||
<script src="assets/js/litepicker.js"></script>
|
||||
<script src="assets/js/datatables.js"></script>
|
||||
<script src="assets/js/schedulebank.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user