change time range to 2 seperate boxes #6947

Signed-off-by: si458 <simonsmith5521@gmail.com>
This commit is contained in:
si458 2025-04-15 18:13:06 +01:00
parent f4b17909fd
commit 1902e5aeeb
5 changed files with 4375 additions and 4296 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -8468,7 +8468,8 @@
x += '<div id=d2modenow>';
x += addHtmlValue("Expire Time", '<select id=d2inviteExpire style=float:right;width:250px>' + y + '</select>');
x += '</div><div id=d2moderange style=display:none>';
x += addHtmlValue("Time Range", '<input id=d2timeRangeSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlValue("Time Range Start", '<input id=d2timeRangeStartSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlValue("Time Range End", '<input id=d2timeRangeEndSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += '</div><div id=d2moderecurring style=display:none>';
x += addHtmlValue("Start Time", '<input id=d2timeStartSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlValue("Duration", '<select id=d2inviteDuration style=float:right;width:250px>' + z + '</select>');
@ -8480,9 +8481,18 @@
showShareDeviceValidate();
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
var rangeTime = flatpickr('#d2timeRangeSelector', { mode: 'range', enableTime: true, minDate: new Date(), defaultDate: [ new Date(), tomorrow ], minuteIncrement: 1 });
var startTime = flatpickr('#d2timeStartSelector', { enableTime: true, minDate: new Date(), defaultDate: new Date(), minuteIncrement: 1 });
xxdialogTag = { range: rangeTime, start: startTime };
var rangeStartTime = flatpickr('#d2timeRangeStartSelector', {
enableTime: true, minDate: new Date(), defaultDate: new Date(), minuteIncrement: 1, plugins: [new confirmDatePlugin({})],
onChange: function(selectedDates, dateStr, instance) {
rangeEndTime.set('minDate', dateStr);
if (rangeEndTime.selectedDates[0] && rangeEndTime.selectedDates[0] < selectedDates[0]) {
rangeEndTime.clear();
}
}
});
var rangeEndTime = flatpickr('#d2timeRangeEndSelector', { enableTime: true, minDate: new Date(), defaultDate: tomorrow, minuteIncrement: 1, plugins: [new confirmDatePlugin({})] });
var startTime = flatpickr('#d2timeStartSelector', { enableTime: true, minDate: new Date(), defaultDate: new Date(), minuteIncrement: 1, plugins: [new confirmDatePlugin({})] });
xxdialogTag = { rangeStart: rangeStartTime, rangeEnd: rangeEndTime, start: startTime };
}
function showShareDeviceValidate() {
@ -8525,7 +8535,7 @@
if (Q('d2timeRange').value == 0) {
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, expire: parseInt(Q('d2inviteExpire').value), consent: consent, viewOnly: viewOnly });
} else if (Q('d2timeRange').value == 1) {
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, start: Math.floor(tag.range.selectedDates[0].getTime() / 1000), end: Math.floor(tag.range.selectedDates[1].getTime() / 1000), consent: consent, viewOnly: viewOnly });
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, start: Math.floor(tag.rangeStart.selectedDates[0].getTime() / 1000), end: Math.floor(tag.rangeEnd.selectedDates[0].getTime() / 1000), consent: consent, viewOnly: viewOnly });
} else {
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, start: Math.floor(tag.start.selectedDates[0].getTime() / 1000), expire: parseInt(Q('d2inviteDuration').value), recurring: Q('d2timeRange').value - 1, consent: consent, viewOnly: viewOnly });
}
@ -17663,7 +17673,8 @@
x += '</div>';
x += '<div id=d2timeRangeDiv style=display:none>';
x += addHtmlValue("Time Range", '<input id=d2timeRangeSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlValue("Time Range Start", '<input id=d2timeRangeStartSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlValue("Time Range End", '<input id=d2timeRangeEndSelector style=float:right;width:250px class=flatpickr type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += '</div>';
x += '<div id=d2showTrafficDiv style=display:none>';
@ -17675,8 +17686,17 @@
var lastWeek = new Date();
lastWeek.setDate(lastWeek.getDate() - 7);
var rangeTime = flatpickr('#d2timeRangeSelector', { mode: 'range', enableTime: true, maxDate: new Date(), defaultDate: [ lastWeek, new Date() ], minuteIncrement: 1 });
xxdialogTag = rangeTime;
var rangeStartTime = flatpickr('#d2timeRangeStartSelector', {
enableTime: true, maxDate: new Date(), defaultDate: lastWeek, minuteIncrement: 1, plugins: [new confirmDatePlugin({})],
onChange: function(selectedDates, dateStr, instance) {
rangeEndTime.set('minDate', dateStr);
if (rangeEndTime.selectedDates[0] && rangeEndTime.selectedDates[0] < selectedDates[0]) {
rangeEndTime.clear();
}
}
});
var rangeEndTime = flatpickr('#d2timeRangeEndSelector', { enableTime: true, maxDate: new Date(), defaultDate: new Date(), minuteIncrement: 1, plugins: [new confirmDatePlugin({})] });
xxdialogTag = { start: rangeStartTime, end: rangeEndTime };
}
function generateReportDialogValidate() {
@ -17691,8 +17711,8 @@
function generateReportDialogEx(b, tag) {
var start, end;
if (Q('d2timeRange').value == 0) {
end = Math.floor(tag.selectedDates[1].getTime() / 1000);
start = Math.floor(tag.selectedDates[0].getTime() / 1000);
end = Math.floor(tag.end.selectedDates[0].getTime() / 1000);
start = Math.floor(tag.start.selectedDates[0].getTime() / 1000);
} else {
end = Math.floor(new Date() / 1000);
start = new Date();

View File

@ -9161,7 +9161,8 @@
x += '<div id=d2modenow>';
x += addHtmlFormFloating("Expire Time", '<select id=d2inviteExpire class="form-select">' + y + '</select>');
x += '</div><div id=d2moderange style=display:none>';
x += addHtmlFormFloating("Time Range", '<input id=d2timeRangeSelector class="flatpickr form-select" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlFormFloating("Time Range Start", '<input id=d2timeRangeStartSelector class="flatpickr form-select" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlFormFloating("Time Range End", '<input id=d2timeRangeEndSelector class="flatpickr form-select" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += '</div><div id=d2moderecurring style=display:none>';
x += addHtmlFormFloating("Start Time", '<input id=d2timeStartSelector class="flatpickr form-select" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlFormFloating("Duration", '<select id=d2inviteDuration class="form-select">' + z + '</select>');
@ -9172,14 +9173,24 @@
xxdialogButtons = 3;
setModalContent('xxAddAgent', "Share Device", x);
showModal('xxAddAgentModal', 'idx_dlgOkButton', showShareDeviceEx);
showModal('xxAddAgentModal', 'idx_dlgOkButton', () => showShareDeviceEx('', xxdialogTag));
showShareDeviceValidate();
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
var rangeTime = flatpickr('#d2timeRangeSelector', { mode: 'range', enableTime: true, minDate: new Date(), defaultDate: [new Date(), tomorrow], minuteIncrement: 1 });
var startTime = flatpickr('#d2timeStartSelector', { enableTime: true, minDate: new Date(), defaultDate: new Date(), minuteIncrement: 1 });
xxdialogTag = { range: rangeTime, start: startTime };
var rangeStartTime = flatpickr('#d2timeRangeStartSelector', {
enableTime: true, minDate: new Date(), defaultDate: new Date(), minuteIncrement: 1,
plugins: [new confirmDatePlugin({})],
onChange: function(selectedDates, dateStr, instance) {
rangeEndTime.set('minDate', dateStr);
if (rangeEndTime.selectedDates[0] && rangeEndTime.selectedDates[0] < selectedDates[0]) {
rangeEndTime.clear();
}
}
});
var rangeEndTime = flatpickr('#d2timeRangeEndSelector', { enableTime: true, minDate: tomorrow, defaultDate: tomorrow, minuteIncrement: 1, plugins: [new confirmDatePlugin({})] });
var startTime = flatpickr('#d2timeStartSelector', { enableTime: true, minDate: new Date(), defaultDate: new Date(), minuteIncrement: 1, plugins: [new confirmDatePlugin({})] });
xxdialogTag = { rangeStart: rangeStartTime, rangeEnd: rangeEndTime, start: startTime };
}
function showShareDeviceValidate() {
@ -9222,7 +9233,7 @@
if (Q('d2timeRange').value == 0) {
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, expire: parseInt(Q('d2inviteExpire').value), consent: consent, viewOnly: viewOnly });
} else if (Q('d2timeRange').value == 1) {
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, start: Math.floor(tag.range.selectedDates[0].getTime() / 1000), end: Math.floor(tag.range.selectedDates[1].getTime() / 1000), consent: consent, viewOnly: viewOnly });
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, start: Math.floor(tag.rangeStart.selectedDates[0].getTime() / 1000), end: Math.floor(tag.rangeEnd.selectedDates[0].getTime() / 1000), consent: consent, viewOnly: viewOnly });
} else {
meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: q, start: Math.floor(tag.start.selectedDates[0].getTime() / 1000), expire: parseInt(Q('d2inviteDuration').value), recurring: Q('d2timeRange').value - 1, consent: consent, viewOnly: viewOnly });
}
@ -18931,7 +18942,8 @@
x += '</div>';
x += '<div id=d2timeRangeDiv style=display:none>';
x += addHtmlFormFloating("Time Range", '<input id=d2timeRangeSelector class="flatpickr form-control" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlFormFloating("Time Range Start", '<input id=d2timeRangeStartSelector class="flatpickr form-control" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += addHtmlFormFloating("Time Range End", '<input id=d2timeRangeEndSelector class="flatpickr form-control" type="text" placeholder="' + "Select Date & Time..." + '" data-id="altinput">');
x += '</div>';
x += '<div id=d2showTrafficDiv style=display:none>';
@ -18939,13 +18951,22 @@
x += '</div>';
setModalContent('xxAddAgent', "Generate Report", x);
showModal('xxAddAgentModal', 'idx_dlgOkButton', generateReportDialogEx);
showModal('xxAddAgentModal', 'idx_dlgOkButton', () => generateReportDialogEx('', xxdialogTag));
generateReportDialogValidate();
var lastWeek = new Date();
lastWeek.setDate(lastWeek.getDate() - 7);
var rangeTime = flatpickr('#d2timeRangeSelector', { mode: 'range', enableTime: true, maxDate: new Date(), defaultDate: [lastWeek, new Date()], minuteIncrement: 1 });
xxdialogTag = rangeTime;
var rangeStartTime = flatpickr('#d2timeRangeStartSelector', {
enableTime: true, maxDate: new Date(), defaultDate: lastWeek, minuteIncrement: 1, plugins: [new confirmDatePlugin({})],
onChange: function(selectedDates, dateStr, instance) {
rangeEndTime.set('minDate', dateStr);
if (rangeEndTime.selectedDates[0] && rangeEndTime.selectedDates[0] < selectedDates[0]) {
rangeEndTime.clear();
}
}
});
var rangeEndTime = flatpickr('#d2timeRangeEndSelector', { enableTime: true, maxDate: new Date(), defaultDate: new Date(), minuteIncrement: 1, plugins: [new confirmDatePlugin({})] });
xxdialogTag = { rangeStart: rangeStartTime, rangeEnd: rangeEndTime };
}
function generateReportDialogValidate() {
@ -18960,8 +18981,8 @@
function generateReportDialogEx(b, tag) {
var start, end;
if (Q('d2timeRange').value == 0) {
end = Math.floor(tag.selectedDates[1].getTime() / 1000);
start = Math.floor(tag.selectedDates[0].getTime() / 1000);
end = Math.floor(tag.rangeEnd.selectedDates[0].getTime() / 1000);
start = Math.floor(tag.rangeStart.selectedDates[0].getTime() / 1000);
} else {
end = Math.floor(new Date() / 1000);
start = new Date();