Logo im Dark Mode sichtbar, Apps öffnen in neuem Tab
- Logo mit fest weißen Palmen statt transparenter Aussparung (war auf dunklem Grund unsichtbar) - App-Kacheln (Portal und Kopfleiste) öffnen standardmäßig einen neuen Tab (OPEN_APPS_IN_NEW_TAB) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
97acf2cb66
commit
a4945d2cd5
9 files changed
+8
-4
No files matched your search
@@ -20,6 +20,8 @@ AUTHENTIK_TOKEN=
|
|||||||
EDITOR_GROUPS=HI-Admin,HI-Leitung
|
EDITOR_GROUPS=HI-Admin,HI-Leitung
|
||||||
# Domains, von denen die Kopfleiste geladen werden darf / auf die nach Login zurückgeleitet wird
|
# Domains, von denen die Kopfleiste geladen werden darf / auf die nach Login zurückgeleitet wird
|
||||||
ALLOWED_DOMAINS=handy-insel.de
|
ALLOWED_DOMAINS=handy-insel.de
|
||||||
|
# Apps in neuem Tab öffnen (Standard: true)
|
||||||
|
# OPEN_APPS_IN_NEW_TAB=true
|
||||||
# Optional: Kachel-Reihenfolge (Slugs) und ausgeblendete Apps
|
# Optional: Kachel-Reihenfolge (Slugs) und ausgeblendete Apps
|
||||||
# APP_ORDER=preisliste,vvl,zeiterfassung,timer,kundenkarte,datenuebertragungen,service,paperless,patch-mon
|
# APP_ORDER=preisliste,vvl,zeiterfassung,timer,kundenkarte,datenuebertragungen,service,paperless,patch-mon
|
||||||
# HIDDEN_APPS=portal
|
# HIDDEN_APPS=portal
|
||||||
+1
-1
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="theme-color" content="#2d1b69" />
|
<meta name="theme-color" content="#2d1b69" />
|
||||||
<script src="/theme-init.js"></script>
|
<script src="/theme-init.js"></script>
|
||||||
<link rel="icon" type="image/png" href="/favicon.png" />
|
<link rel="icon" type="image/png" href="/favicon.png?v=2" />
|
||||||
<link rel="apple-touch-icon" href="/icon-192.png" />
|
<link rel="apple-touch-icon" href="/icon-192.png" />
|
||||||
<title>Handy-Insel Portal</title>
|
<title>Handy-Insel Portal</title>
|
||||||
</head>
|
</head>
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ function Header({ user, links }: { user: User; links: Links }) {
|
|||||||
<header className="sticky top-0 z-20 border-b border-line bg-surface">
|
<header className="sticky top-0 z-20 border-b border-line bg-surface">
|
||||||
<div className="flex h-14 items-center justify-between px-4 sm:px-6">
|
<div className="flex h-14 items-center justify-between px-4 sm:px-6">
|
||||||
<a href="/" className="flex items-center gap-2.5" aria-label="Handy-Insel Portal">
|
<a href="/" className="flex items-center gap-2.5" aria-label="Handy-Insel Portal">
|
||||||
<img src="/icon-192.png" alt="" className="logo-badge h-8 w-8 rounded-full" />
|
<img src="/insel-logo.png" alt="" className="logo-badge h-8 w-8 rounded-full" />
|
||||||
<span className="text-lg tracking-tight text-fg">
|
<span className="text-lg tracking-tight text-fg">
|
||||||
Handy-<span className="font-bold">Insel</span>
|
Handy-<span className="font-bold">Insel</span>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 26 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@@ -90,7 +90,7 @@ export async function appsForUser(user: PortalUser): Promise<PortalApp[]> {
|
|||||||
description: app.meta_description || '',
|
description: app.meta_description || '',
|
||||||
section: app.group || 'Anwendungen',
|
section: app.group || 'Anwendungen',
|
||||||
iconUrl: iconFor(app),
|
iconUrl: iconFor(app),
|
||||||
newTab: app.open_in_new_tab,
|
newTab: config.openAppsInNewTab || app.open_in_new_tab,
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
cache.set(pk, { at: Date.now(), apps });
|
cache.set(pk, { at: Date.now(), apps });
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ export const config = {
|
|||||||
editorGroups: list('EDITOR_GROUPS', 'HI-Admin,HI-Leitung'),
|
editorGroups: list('EDITOR_GROUPS', 'HI-Admin,HI-Leitung'),
|
||||||
/** Apps, die nie angezeigt werden (Slugs), z.B. das Portal selbst. */
|
/** Apps, die nie angezeigt werden (Slugs), z.B. das Portal selbst. */
|
||||||
hiddenApps: list('HIDDEN_APPS', 'portal'),
|
hiddenApps: list('HIDDEN_APPS', 'portal'),
|
||||||
|
/** Apps immer in neuem Tab öffnen (sonst nur, wenn in Authentik "In neuem Tab öffnen" gesetzt ist). */
|
||||||
|
openAppsInNewTab: env('OPEN_APPS_IN_NEW_TAB', 'true') !== 'false',
|
||||||
/** Reihenfolge der Kacheln (Slugs); nicht genannte Apps folgen alphabetisch. */
|
/** Reihenfolge der Kacheln (Slugs); nicht genannte Apps folgen alphabetisch. */
|
||||||
appOrder: list(
|
appOrder: list(
|
||||||
'APP_ORDER',
|
'APP_ORDER',
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ class HiTopbar extends HTMLElement {
|
|||||||
this.root.innerHTML = `<style>${css}</style>
|
this.root.innerHTML = `<style>${css}</style>
|
||||||
<nav class="bar" aria-label="Handy-Insel Navigation">
|
<nav class="bar" aria-label="Handy-Insel Navigation">
|
||||||
<button class="icon-btn" data-toggle="apps" aria-haspopup="true" aria-expanded="${this.open === 'apps'}" title="Anwendungen">${WAFFLE}</button>
|
<button class="icon-btn" data-toggle="apps" aria-haspopup="true" aria-expanded="${this.open === 'apps'}" title="Anwendungen">${WAFFLE}</button>
|
||||||
<a class="brand" href="${esc(links.portal)}"><img src="${PORTAL}/icon-192.png" alt=""><span>Handy-<b>Insel</b></span></a>
|
<a class="brand" href="${esc(links.portal)}"><img src="${PORTAL}/insel-logo.png" alt=""><span>Handy-<b>Insel</b></span></a>
|
||||||
${appName ? `<span class="sep"></span><span class="app-name">${esc(appName)}</span>` : ''}
|
${appName ? `<span class="sep"></span><span class="app-name">${esc(appName)}</span>` : ''}
|
||||||
<span class="spacer"></span>
|
<span class="spacer"></span>
|
||||||
${
|
${
|
||||||
|
|||||||
Reference in new issue
Block a user