Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6821a30b65 | |||
| 4e4823b0f7 |
@@ -262,3 +262,7 @@ Roughly in priority order:
|
||||
`v0.16.68` is a quick follow-on to v0.16.67: the Audit log's new table had no surrounding card, so it sat flush against the tab content instead of appearing inside the same bordered, elevated "tile" every other tab-hosted table uses -- Backup history's `dashboard-panel backup-history-section` wrapper on the Backups tab being the closest match. The Audit log's table markup is now wrapped in an equivalent `dashboard-panel audit-log-section` with an "Audit log" eyebrow above the existing heading, matching Backup history's structure exactly (search/filter row and table unchanged). Purely a wrapper/markup change -- no new CSS, no data or behavior changes.
|
||||
|
||||
`v0.16.69` closes a gap flagged after reviewing the ZimaOS compose file: `compose.yaml`, `compose.release.yaml`, and `compose.zimaos.yaml` all documented `DATA_DIR_LIMIT_GB` and the `mem_limit`/`cpus`/`cpuset` resource-panel options in README/install.html but never actually carried them as commented-optional entries the way the marketing site's install guide showed -- someone copying a real compose file instead of the docs page got none of that guidance. All three now include the same commented-out block (env-var style in the two static compose files, `${VAR}`-substituted and wired through `.env.example` in `compose.release.yaml`). This also folds in the marketing site's `install.html`, which had drifted out of sync with an already-updated draft and was missing the same options on the user's machine -- resynced so the published guide matches what ships in the repo.
|
||||
|
||||
`v0.16.70` fixes the Access Logs table (Administration > Logs, "Access requests"), the last page still on its own pre-unification CSS: `.log-table` pinned the Status and Duration columns with `position:sticky` and drew a divider `box-shadow` on each -- a horizontal-scroll affordance none of the other log-type pages use -- and left the Request column at a fixed width instead of stretching to fill the panel, so wide viewports showed an empty gap past Duration. Both are removed: the two trailing columns are back in normal table flow, and Request now takes `width:auto` to absorb the remaining space, matching how Gateway Events, Backup history, and the Audit log already size their last column. Purely a CSS change -- no markup, data, or behavior changes.
|
||||
|
||||
`v0.16.71` fixes a Gateway Events / Audit log message that slipped past v0.16.66: the Hosted Site file-upload route ("Replace files") still wrote the old, un-prefixed `Files replaced for "<name>".` line instead of the `Hosted site "<name>" ...` convention every other Hosted Site action uses (created, enabled/disabled, deleted, and the field-level update summaries). It lived in its own route separate from the four `PATCH` handlers v0.16.66 touched, so it was missed at the time and only noticed once a user pointed out the log entry gave no way to tell which route type it belonged to. Now reads `Hosted site "<name>" files replaced.`, matching the rest.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "site-gateway",
|
||||
"version": "0.16.69",
|
||||
"version": "0.16.71",
|
||||
"private": true,
|
||||
"description": "Site Gateway: simple self-hosted website publishing, reverse proxying, and automatic HTTPS.",
|
||||
"type": "module",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<title>Site Gateway</title>
|
||||
<meta name="description" content="Host sites, proxy services, and manage HTTPS from one simple dashboard.">
|
||||
<link rel="icon" type="image/png" href="/site-gateway-icon-approved.png">
|
||||
<link rel="stylesheet" href="/styles.css?v=0.16.69">
|
||||
<link rel="stylesheet" href="/styles.css?v=0.16.71">
|
||||
</head>
|
||||
|
||||
<!-- ================================================================
|
||||
@@ -451,6 +451,6 @@
|
||||
<div id="toast" class="toast" role="status"></div>
|
||||
<div id="update-banner" class="update-banner hidden" role="status"><span>A new version of Site Gateway is available.</span><div class="update-banner-actions"><button id="update-banner-refresh" class="button primary">Refresh</button><button id="update-banner-dismiss" class="text-button">Dismiss</button></div></div>
|
||||
<!-- App scripts: core (app.js) then extended views/admin (features.js) -->
|
||||
<script src="/app.js?v=0.16.69" defer></script><script src="/features.js?v=0.16.69" defer></script><script src="/select-enhance.js?v=0.16.69" defer></script>
|
||||
<script src="/app.js?v=0.16.71" defer></script><script src="/features.js?v=0.16.71" defer></script><script src="/select-enhance.js?v=0.16.71" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -487,25 +487,21 @@ dialog{max-height:calc(100vh - 28px);overflow:auto}
|
||||
#app .upstream-diagnostics summary{padding:0;color:var(--blue);font-size:var(--font-size-xs);font-weight:700;border:0}
|
||||
#app .upstream-diagnostics .upstream-detail{margin:6px 0 0}
|
||||
|
||||
/* Log table layout & column widths */
|
||||
/* Log table layout & column widths -- matches the .event-table/.performance-table
|
||||
pattern used by Gateway Events, Backup history, and the Audit log: sticky header
|
||||
only (no pinned/divided trailing columns), and the Request column absorbs the
|
||||
remaining width instead of leaving a gap on wide panels. */
|
||||
.log-table-wrap{max-height:min(52vh,620px);overflow:auto}
|
||||
.log-table-wrap .log-table thead th{position:sticky;top:0;background:var(--panel);z-index:1}
|
||||
.log-section-heading{margin:20px 0 10px}
|
||||
.log-section-heading h2{margin:0;font-size:1.05rem}
|
||||
.log-section-heading p{margin:var(--space-1) 0 0;font-size:.76rem}
|
||||
@media(min-width:761px){#dashboard>aside{position:sticky;top:0;height:100vh;max-height:100vh;overflow-y:auto;align-self:start}}
|
||||
.log-table th:nth-last-child(2),.log-table td:nth-last-child(2),.log-table th:last-child,.log-table td:last-child{position:sticky;background:var(--panel);z-index:2}
|
||||
.log-table th:nth-last-child(2),.log-table td:nth-last-child(2){right:104px;min-width:104px}
|
||||
.log-table th:last-child,.log-table td:last-child{right:0;min-width:104px}
|
||||
.log-table th:nth-last-child(2){box-shadow:-1px 0 0 var(--line)}
|
||||
.log-table td:nth-last-child(2){box-shadow:-1px 0 0 var(--line)}
|
||||
.log-table-wrap{overflow-x:hidden;overflow-y:auto}
|
||||
.log-table{table-layout:fixed}
|
||||
.log-table th:nth-child(1),.log-table td:nth-child(1){width:190px}
|
||||
.log-table th:nth-child(2),.log-table td:nth-child(2){width:220px}
|
||||
.log-table th:nth-child(4),.log-table td:nth-child(4),.log-table th:nth-child(5),.log-table td:nth-child(5){width:104px}
|
||||
.log-table th:nth-child(3),.log-table td:nth-child(3){white-space:normal;overflow-wrap:anywhere}
|
||||
.log-table th:last-child,.log-table td:last-child{box-shadow:-1px 0 0 var(--line)}
|
||||
.log-table th:nth-child(3),.log-table td:nth-child(3){width:auto;white-space:normal;overflow-wrap:anywhere}
|
||||
@media(max-width:900px){.log-table th:nth-child(1),.log-table td:nth-child(1){width:150px}.log-table th:nth-child(2),.log-table td:nth-child(2){width:170px}}
|
||||
.log-table th:nth-child(4),.log-table td:nth-child(4),.log-table th:nth-child(5),.log-table td:nth-child(5){text-align:center}
|
||||
#access-dialog .dialog-heading .close-dialog{display:none}
|
||||
|
||||
+1
-1
@@ -2192,7 +2192,7 @@ app.post("/api/sites/:id/files", upload.single("files"), async (req, res, next)
|
||||
if (!req.file) return res.status(400).json({ error: "Choose a ZIP file or index.html." });
|
||||
await installUpload(site, req.file);
|
||||
await syncCaddy();
|
||||
recordActivity(`Files replaced for “${site.name}”.`);
|
||||
recordActivity(`Hosted site “${site.name}” files replaced.`);
|
||||
res.json(publicSite(site));
|
||||
} catch (error) { next(error); }
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user