Polish: nav fits at every desktop width, Custom View list values, phone docs, README

This commit is contained in:
Johan Sandoval committed 2026-10-06 19:38:42 +00:00
1 parent a5c0a5210e
commit e2125c760a
7 files changed
+69 -16

No files matched your search

+1 -1
View File
@@ -125,7 +125,7 @@
const d = daysOffline(name);
if (d === undefined) return { text: WAITING, state: 'waiting' };
if (d === null) return { text: 'Never seen', state: 'value' };
if (d === 0) return { text: presence(name).online ? 'Online' : '0 days', state: 'value' };
if (d === 0) return { text: presence(name).online ? 'Online' : '< 1 day', state: 'value' };
return { text: d + (d === 1 ? ' day' : ' days'), state: 'value' };
}
if (key === 'LastOnline') {
+8 -1
View File
@@ -385,7 +385,14 @@
}
}
});
wrap('openDoc', () => { renderSidebar(); decorate(); }, name => { setUrl(permalink(name), true); });
wrap('openDoc', () => {
renderSidebar(); decorate();
// Phones and tablets stack the list above the article: bring the article into view
if (window.matchMedia('(max-width: 1100px)').matches) {
const bar = document.getElementById('docToolbar');
if (bar) window.scrollTo({ top: window.scrollY + bar.getBoundingClientRect().top - (parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--nav-h')) || 60) - 10, behavior: 'smooth' });
}
}, name => { setUrl(permalink(name), true); });
wrap('formatCodeBlocks', decorate);
wrap('setDocMode', mode => {
const sel = document.getElementById('docCategory');
+5 -4
View File
@@ -3451,8 +3451,9 @@
function getCustomCellValue(row, col) {
const blank = v => (v === undefined || v === null || v === "") ? "N/A" : v;
if (col.kind === "apiKey") return blank(row[col.key]);
if (col.kind === "adv") return DeviceInfo.field(row["Source Device"], col.key).text;
if (col.kind === "advDst") return DeviceInfo.field(row["Destination Device"], col.key).text;
// multi-line inventory values (groups, monitors, disk) read as a comma list in a cell
if (col.kind === "adv") return DeviceInfo.field(row["Source Device"], col.key).text.replace(/<br\s*\/?>/gi, ", ");
if (col.kind === "advDst") return DeviceInfo.field(row["Destination Device"], col.key).text.replace(/<br\s*\/?>/gi, ", ");
if (col.kind === "special") return getCustomSpecialty(row["Source Device"]);
if (col.kind === "migration") {
if (col.fn === "space") return (row["Source Free Space"] && row["Source Free Space"] !== "N/A") ? row["Source Free Space"] + " / " + row["Source Total Space"] : "N/A";
@@ -4315,7 +4316,7 @@
const forceBtn = document.getElementById('forceSyncBtn');
const forceFullBtn = document.getElementById('forceFullBtn');
btn.innerText = `Data Updated At: ${globalDataLastUpdated}`;
btn.innerHTML = `<span class="st-pre">Data Updated At: </span>${globalDataLastUpdated}`;
if (state.Status === "Cooldown") {
document.getElementById('syncStatusText').innerText = "System is Idle (On Cooldown)";
@@ -4376,7 +4377,7 @@
if (payload.LastUpdated && payload.Devices) {
apiData = payload.Devices;
globalDataLastUpdated = payload.LastUpdated;
btn.innerText = `Data Updated At: ${globalDataLastUpdated}`;
btn.innerHTML = `<span class="st-pre">Data Updated At: </span>${globalDataLastUpdated}`;
} else {
apiData = payload;
}
+21
View File
@@ -449,3 +449,24 @@ table.sync-bd th { color: var(--text-muted); font-weight: 600; }
table.sync-bd tbody tr { cursor: help; }
.sync-bd-phases { margin-top: 6px; color: var(--text-muted); line-height: 1.4; }
#syncModal .modal-content { max-width: 460px !important; }
/* Desktop nav between the hamburger breakpoint and wide screens: tighten so the links,
DEMO pill, theme toggle and sync status all fit on one line */
@media (min-width: 1101px) and (max-width: 1600px) {
.top-nav .nav-btn { padding: 8px 7px; font-size: 0.9em; }
.top-nav h2 { margin-right: 8px; font-size: 1.25em; }
.status-btn { padding: 8px 10px; }
}
@media (min-width: 1101px) and (max-width: 1450px) {
.st-pre { display: none; }
.status-btn::before { content: 'Updated '; color: rgba(255,255,255,0.65); }
}
@media (min-width: 1101px) and (max-width: 1250px) {
.status-btn::before { content: none; }
.top-nav .nav-btn { padding: 8px 5px; font-size: 0.86em; }
.nav-logo { margin-right: 6px; }
}
@media (min-width: 1101px) and (max-width: 1180px) {
.nav-logo { display: none; }
.top-nav .nav-btn { padding: 8px 4px; }
}