From c257fd50048b758a9cda3288621170d1c45b5cdf Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Sun, 21 Jun 2026 23:26:21 -0400 Subject: [PATCH] Make the startup log a bounded, soft-refreshing scrolling viewport Order the startup log oldest-to-newest inside a height-bounded panel that scrolls internally and never extends past the bottom of the window. Refresh it with a background fetch that swaps the log list in place instead of reloading the whole page, preserving the user's scroll position and only following to the bottom when they are already there. A full page reload now happens only on the final transition to the running server or to the error state. --- .../ServerSetupApp/index.mstemplate.html | 134 ++++++++++++++++-- 1 file changed, 119 insertions(+), 15 deletions(-) diff --git a/Jellyfin.Server/ServerSetupApp/index.mstemplate.html b/Jellyfin.Server/ServerSetupApp/index.mstemplate.html index 38cb5cea9e..b523dc6276 100644 --- a/Jellyfin.Server/ServerSetupApp/index.mstemplate.html +++ b/Jellyfin.Server/ServerSetupApp/index.mstemplate.html @@ -41,7 +41,8 @@ background-color: var(--jf-bg); background-image: radial-gradient(circle at 50% -10%, var(--jf-bg-accent), var(--jf-bg) 60%); color: var(--jf-text); - padding: 2.5rem 1rem 4rem; + /* Bottom padding doubles as the minimum gap the log viewport keeps from the window bottom. */ + padding: 2.5rem 1rem 50px; } .flex-row { @@ -162,6 +163,25 @@ text-decoration: underline; } + /* Bounded, scrollable log viewport that scales with the window height. */ + .logs-panel .logs-scroll { + max-height: 60vh; + overflow-y: auto; + overscroll-behavior: contain; + padding-right: 0.25rem; + scrollbar-width: thin; + scrollbar-color: var(--jf-border) transparent; + } + + .logs-panel .logs-scroll::-webkit-scrollbar { + width: 8px; + } + + .logs-panel .logs-scroll::-webkit-scrollbar-thumb { + background-color: var(--jf-border); + border-radius: 4px; + } + ol.action-list * { font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Consolas, monospace; font-weight: 400; @@ -314,7 +334,7 @@
{{DateOfCreation}} - {{Content}} @@ -332,22 +352,106 @@

Startup log

Download full logs -
    - {{#FOREACH log IN logs.Reverse()}} - {{#IMPORT 'LogEntry' #WITH log}} - {{/FOREACH}} -
+
+
    + {{#FOREACH log IN logs}} + {{#IMPORT 'LogEntry' #WITH log}} + {{/FOREACH}} +
+
{{/IF}} + -{{^IF isInReportingMode}} - -{{/IF}} -