Files
ISDSS---Internal-Survailanc…/public/version-control.html
T
2026-09-13 20:12:28 +01:00

52 lines
1.6 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Version Control for ISDSS · Martinhal ISDSS</title>
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<script src="/js/app.js"></script>
<script>
(async () => {
const shell = await buildShell('version'); if (!shell) return;
const { isAdmin, content } = shell;
function entryHtml(e) {
return `
<div class="ver-item">
<div class="ver-head">
<span class="ver-tag">${esc(e.version)}</span>
${e.title ? `<span class="ver-title">${esc(e.title)}</span>` : ''}
${e.released_on ? `<span class="ver-date">${esc(fmtDate(e.released_on))}</span>` : ''}
</div>
${e.notes ? `<div class="ver-notes">${esc(e.notes)}</div>` : ''}
</div>`;
}
async function load() {
let entries = [];
try { entries = (await api('/api/versions')).entries; }
catch (e) { toast(e.message, 'err'); }
content.innerHTML = `
<div class="page-head">
<h1>Version Control for ISDSS - Internal Surveillance Data Storage System</h1>
<p>Release history for this system.${isAdmin ? ' Entries are managed in Data Management → Version Control.' : ''}</p>
</div>
<div class="card">
<div class="card-body">
${entries.length
? `<div class="ver-list">${entries.map(entryHtml).join('')}</div>`
: `<div class="empty">${ICON.version}<div>No version entries have been published yet.</div></div>`}
</div>
</div>`;
}
load();
})();
</script>
</body>
</html>