sched: interface.html hide days for non-alarms

master
Rob Pilling 2024-03-04 07:49:24 +00:00
parent 498f800e25
commit 8dbef6041e
1 changed files with 31 additions and 24 deletions

View File

@ -142,8 +142,9 @@ function renderAlarm(alarm, exists) {
tdType.type = "text"; tdType.type = "text";
tdType.classList.add('event-summary'); tdType.classList.add('event-summary');
const inputTime = document.createElement('input'); const inputTime = document.createElement('input');
let type;
if (localDate) { if (localDate) {
tdType.textContent = "Event"; type = "Event";
inputTime.type = "datetime-local"; inputTime.type = "datetime-local";
inputTime.value = localDate.toISOString().slice(0,16); inputTime.value = localDate.toISOString().slice(0,16);
inputTime.onchange = (e => { inputTime.onchange = (e => {
@ -159,18 +160,19 @@ function renderAlarm(alarm, exists) {
inputTime.value = `${hours}:${mins}:${secs}`; inputTime.value = `${hours}:${mins}:${secs}`;
if (alarm.timer) { if (alarm.timer) {
tdType.textContent = "Timer"; type = "Timer";
inputTime.onchange = e => { inputTime.onchange = e => {
alarm.timer = hmsToMs(inputTime.value); alarm.timer = hmsToMs(inputTime.value);
// alarm.t is set on upload // alarm.t is set on upload
}; };
} else { } else {
tdType.textContent = "Alarm"; type = "Alarm";
inputTime.onchange = e => { inputTime.onchange = e => {
alarm.t = hmsToMs(inputTime.value); alarm.t = hmsToMs(inputTime.value);
}; };
} }
} }
tdType.textContent = type;
if (!exists) { if (!exists) {
const asterisk = document.createElement('sup'); const asterisk = document.createElement('sup');
asterisk.textContent = '*'; asterisk.textContent = '*';
@ -182,26 +184,29 @@ function renderAlarm(alarm, exists) {
const tdTime = document.createElement('td'); const tdTime = document.createElement('td');
tdTime.appendChild(inputTime); tdTime.appendChild(inputTime);
const tdDays = document.createElement('td'); let tdDays;
const selectDays = document.createElement('select'); if (type === "Alarm") {
selectDays.multiple = true; tdDays = document.createElement('td');
selectDays.classList.add('form-input', 'multi-select'); const selectDays = document.createElement('select');
selectDays.dataset.uid = alarm.id; selectDays.multiple = true;
const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; selectDays.classList.add('form-input', 'multi-select');
const options = days.map((day, i) => { selectDays.dataset.uid = alarm.id;
const option = document.createElement('option'); const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
option.value = day; const options = days.map((day, i) => {
option.text = day; const option = document.createElement('option');
option.selected = alarm.dow & (1 << i); option.value = day;
if(day !== "Sun") option.text = day;
selectDays.appendChild(option); option.selected = alarm.dow & (1 << i);
return option; if(day !== "Sun")
}); selectDays.appendChild(option);
selectDays.appendChild(options.find(o => o.text === "Sun")); return option;
selectDays.onchange = (e => { });
alarm.dow = options.reduce((bits, opt, i) => bits | (opt.selected ? 1 << i : 0), 0); selectDays.appendChild(options.find(o => o.text === "Sun"));
}); selectDays.onchange = (e => {
tdDays.appendChild(selectDays); alarm.dow = options.reduce((bits, opt, i) => bits | (opt.selected ? 1 << i : 0), 0);
});
tdDays.appendChild(selectDays);
}
const tdSummary = document.createElement('td'); const tdSummary = document.createElement('td');
const inputSummary = document.createElement('input'); const inputSummary = document.createElement('input');
@ -255,7 +260,9 @@ function renderAlarm(alarm, exists) {
tr.appendChild(tdOptions); tdType.classList.add('single-row'); tr.appendChild(tdOptions); tdType.classList.add('single-row');
tr.appendChild(tdInfo); tdType.classList.add('single-row'); tr.appendChild(tdInfo); tdType.classList.add('single-row');
tr2.appendChild(tdTime); tdTime.colSpan = 3; tr2.appendChild(tdTime); tdTime.colSpan = 3;
tr.appendChild(tdDays); tdDays.rowSpan = 2; if (tdDays) {
tr.appendChild(tdDays); tdDays.rowSpan = 2;
}
tr.appendChild(tdSummary); tdType.classList.add('single-row'); tr.appendChild(tdSummary); tdType.classList.add('single-row');
document.getElementById('events').appendChild(tr); document.getElementById('events').appendChild(tr);