From 3ba69bf986f3c984cd1e0f6a8f5220761cd5de83 Mon Sep 17 00:00:00 2001 From: oliver <54379826+ok@users.noreply.github.com> Date: Sun, 20 Sep 2026 21:50:13 +0200 Subject: [PATCH 1/2] [feat] Give the operator pages a favicon Both pages declared an empty data: icon, so browser tabs showed nothing. Use the Mirall M and its orange square from the repo's logo, inlined as an SVG data URI so it works under any proxy prefix and with the status page's routes turned off. --- src/operator/html.js | 13 +++++++++++++ src/operator/members/page.js | 4 ++-- src/operator/status/page.js | 4 ++-- test/unit/admin-ui.test.js | 14 ++++++++++++++ 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/operator/html.js b/src/operator/html.js index d97597b..3bc5f3a 100644 --- a/src/operator/html.js +++ b/src/operator/html.js @@ -11,3 +11,16 @@ export function escapeHtml (value) { export function plain (value, fallback = '—') { return value === null || value === undefined || value === '' ? fallback : escapeHtml(value) } + +// The Mirall "M" and its orange square, from docs/media/logo-*.svg, on a dark tile +// so it reads on light and dark tab strips alike. Inlined as a data: URI rather +// than served: both pages live under different prefixes behind platform proxies, +// MIRALL_RELAY_ADMIN_UI=false removes the status page's routes, and the CSP +// already allows data: images. +const FAVICON_SVG = "" + + "" + + "" + + "" + + '' + +export const FAVICON_LINK = `` diff --git a/src/operator/members/page.js b/src/operator/members/page.js index 4beb928..f555c62 100644 --- a/src/operator/members/page.js +++ b/src/operator/members/page.js @@ -15,7 +15,7 @@ // without one — a and a