Goal-Calibration/public/js/today.js
Yisroel Baum 2349e69c4f
style today page with shell and card list
wrap the today page in the shared header + container/stack shell,
render scheduled nodes as cards via list-cards, and add a muted
empty-state message that toggles when no nodes are scheduled.
existing #scheduled-nodes-list and li selectors used by cypress
tests are preserved (the empty message lives in its own element).
2026-05-01 11:31:55 +03:00

41 lines
1.4 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
const scheduledNodesList = document.getElementById(
'scheduled-nodes-list'
);
const emptyMessage = document.getElementById('scheduled-nodes-empty');
function todayDateString() {
const today = new Date();
const year = today.getFullYear();
const month = String(today.getMonth() + 1).padStart(2, '0');
const day = String(today.getDate()).padStart(2, '0');
return year + '-' + month + '-' + day;
}
async function loadScheduledNodes() {
const date = todayDateString();
const response = await fetch(
'/api/scheduled-nodes?date=' + date,
{ credentials: 'same-origin' }
);
if (!response.ok) {
return;
}
const scheduledNodes = await response.json();
scheduledNodesList.innerHTML = scheduledNodes
.map((scheduledNode) =>
'<li class="card">' +
'<span class="muted">' + scheduledNode.planName +
'</span>: ' +
'<span class="node-title">' + scheduledNode.nodeTitle +
'</span>' +
'</li>'
)
.join('');
if (emptyMessage !== null) {
emptyMessage.hidden = scheduledNodes.length > 0;
}
}
loadScheduledNodes();
});