Navbar.
All checks were successful
build-binaries / build (, amd64, linux) (push) Has been skipped
build-binaries / build (, arm, 7, linux) (push) Has been skipped
build-binaries / build (, arm64, linux) (push) Has been skipped
build-binaries / build (.exe, amd64, windows) (push) Has been skipped
build-binaries / release (push) Has been skipped
release-tag / release-image (push) Successful in 6m32s

This commit is contained in:
2026-05-04 22:07:26 +02:00
parent 0a3acd55e1
commit 0a22247331
3 changed files with 471 additions and 10 deletions

View File

@@ -23,19 +23,168 @@
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.toolbar{display:flex;gap:.5rem;align-items:center;justify-content:space-between;margin:4px 0 10px}
.hint{font-size:.85rem;color:var(--mut)}
.topbar{
position:sticky;
top:0;
z-index:20;
background:rgba(249,250,251,.86);
backdrop-filter:blur(12px);
border-bottom:1px solid var(--b);
}
.nav{
max-width:1100px;
margin:0 auto;
padding:12px 16px;
display:flex;
align-items:center;
justify-content:space-between;
gap:1rem;
}
.brand{
display:flex;
align-items:center;
gap:.7rem;
min-width:0;
}
.logo{
width:36px;
height:36px;
border-radius:12px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#111827,#374151);
color:#fff;
font-weight:800;
box-shadow:0 8px 22px rgba(17,24,39,.18);
}
.brand-title{
font-weight:800;
letter-spacing:-.02em;
line-height:1.1;
}
.brand-subtitle{
font-size:.8rem;
color:var(--mut);
margin-top:2px;
}
.nav-links{
display:flex;
align-items:center;
gap:.25rem;
flex-wrap:wrap;
}
.nav-links a{
color:var(--tx);
text-decoration:none;
padding:.45rem .7rem;
border-radius:999px;
font-size:.92rem;
white-space:nowrap;
}
.nav-links a:hover{
background:#fff;
box-shadow:0 1px 0 rgba(17,24,39,.06);
}
.nav-actions{
display:flex;
gap:.5rem;
align-items:center;
}
.btn-secondary{
background:#fff;
color:var(--tx);
border:1px solid var(--b);
}
.btn-secondary:hover{
background:#f3f4f6;
}
.nav-toggle{
display:none;
}
@media(max-width:760px){
.nav{
align-items:flex-start;
flex-wrap:wrap;
}
.nav-toggle{
display:inline-flex;
margin-left:auto;
}
.nav-links,
.nav-actions{
display:none;
width:100%;
}
.topbar:focus-within .nav-links,
.topbar:focus-within .nav-actions{
display:flex;
}
.nav-links{
flex-direction:column;
align-items:stretch;
gap:.35rem;
padding-top:.5rem;
}
.nav-links a{
background:#fff;
border:1px solid var(--b);
}
.nav-actions{
justify-content:flex-start;
padding-top:.25rem;
}
}
</style>
<body>
<div class="wrap">
<h1>PatchPing Admin (Plain-HTML)</h1>
<div id="alert"></div>
<div class="toolbar">
<div class="hint">API-Basis: <span id="apiBase" class="mono"></span></div>
<div class="row">
<button id="btn_run_all" title="alle Quellen jetzt abholen & posten">🔄 Run all</button>
<button id="btn_health" title="Health/Status abrufen">🩺 Health</button>
<header class="topbar">
<nav class="nav" aria-label="Hauptnavigation">
<div class="brand">
<div class="logo">PP</div>
<div>
<div class="brand-title">PatchPing Admin</div>
<div class="brand-subtitle">Plain-HTML Control Panel</div>
</div>
</div>
</div>
<button class="nav-toggle btn-secondary" type="button" aria-label="Menü öffnen">
☰ Menü
</button>
<div class="nav-links">
<a href="/admin">Admin - Abo und Routing</a>
<a href="/post">Admin - Security Advisory</a>
<a href="/software">Admin - Update Sender</a>
</div>
<div class="nav-actions">
<button id="btn_run_all" title="alle Quellen jetzt abholen & posten">🔄 Run all</button>
<button id="btn_health" class="btn-secondary" title="Health/Status abrufen">🩺 Health</button>
</div>
</nav>
</header>
<div class="wrap">
<div class="toolbar">
<div class="hint">API-Basis: <span id="apiBase" class="mono"></span></div>
</div>
<div class="grid two">
<div class="card">

View File

@@ -31,10 +31,166 @@
.toast.ok { background:#ecfdf5; border-color:#bbf7d0; color:#065f46; }
.toast.err { background:#fef2f2; border-color:#fecaca; color:#7f1d1d; }
.toast.info { background:#eff6ff; border-color:#bfdbfe; color:#1e3a8a; }
.topbar{
position:sticky;
top:0;
z-index:20;
background:rgba(249,250,251,.86);
backdrop-filter:blur(12px);
border-bottom:1px solid var(--b);
}
.nav{
max-width:1100px;
margin:0 auto;
padding:12px 16px;
display:flex;
align-items:center;
justify-content:space-between;
gap:1rem;
}
.brand{
display:flex;
align-items:center;
gap:.7rem;
min-width:0;
}
.logo{
width:36px;
height:36px;
border-radius:12px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#111827,#374151);
color:#fff;
font-weight:800;
box-shadow:0 8px 22px rgba(17,24,39,.18);
}
.brand-title{
font-weight:800;
letter-spacing:-.02em;
line-height:1.1;
}
.brand-subtitle{
font-size:.8rem;
color:var(--mut);
margin-top:2px;
}
.nav-links{
display:flex;
align-items:center;
gap:.25rem;
flex-wrap:wrap;
}
.nav-links a{
color:var(--tx);
text-decoration:none;
padding:.45rem .7rem;
border-radius:999px;
font-size:.92rem;
white-space:nowrap;
}
.nav-links a:hover{
background:#fff;
box-shadow:0 1px 0 rgba(17,24,39,.06);
}
.nav-actions{
display:flex;
gap:.5rem;
align-items:center;
}
.btn-secondary{
background:#fff;
color:var(--tx);
border:1px solid var(--b);
}
.btn-secondary:hover{
background:#f3f4f6;
}
.nav-toggle{
display:none;
}
@media(max-width:760px){
.nav{
align-items:flex-start;
flex-wrap:wrap;
}
.nav-toggle{
display:inline-flex;
margin-left:auto;
}
.nav-links,
.nav-actions{
display:none;
width:100%;
}
.topbar:focus-within .nav-links,
.topbar:focus-within .nav-actions{
display:flex;
}
.nav-links{
flex-direction:column;
align-items:stretch;
gap:.35rem;
padding-top:.5rem;
}
.nav-links a{
background:#fff;
border:1px solid var(--b);
}
.nav-actions{
justify-content:flex-start;
padding-top:.25rem;
}
}
@media (max-width: 900px) { .row { grid-template-columns: 1fr; } }
</style>
</head>
<body>
<header class="topbar">
<nav class="nav" aria-label="Hauptnavigation">
<div class="brand">
<div class="logo">PP</div>
<div>
<div class="brand-title">PatchPing Admin</div>
<div class="brand-subtitle">Plain-HTML Control Panel</div>
</div>
</div>
<button class="nav-toggle btn-secondary" type="button" aria-label="Menü öffnen">
☰ Menü
</button>
<div class="nav-links">
<a href="/admin">Admin - Abo und Routing</a>
<a href="/post">Admin - Security Advisory</a>
<a href="/software">Admin - Update Sender</a>
</div>
<div class="nav-actions">
<button id="btn_run_all" title="alle Quellen jetzt abholen & posten">🔄 Run all</button>
<button id="btn_health" class="btn-secondary" title="Health/Status abrufen">🩺 Health</button>
</div>
</nav>
</header>
<div class="wrap">
<header style="display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom: 16px;">
<div>

View File

@@ -31,10 +31,166 @@
.toast.ok { background:#ecfdf5; border-color:#bbf7d0; color:#065f46; }
.toast.err { background:#fef2f2; border-color:#fecaca; color:#7f1d1d; }
.toast.info { background:#eff6ff; border-color:#bfdbfe; color:#1e3a8a; }
.topbar{
position:sticky;
top:0;
z-index:20;
background:rgba(249,250,251,.86);
backdrop-filter:blur(12px);
border-bottom:1px solid var(--b);
}
.nav{
max-width:1100px;
margin:0 auto;
padding:12px 16px;
display:flex;
align-items:center;
justify-content:space-between;
gap:1rem;
}
.brand{
display:flex;
align-items:center;
gap:.7rem;
min-width:0;
}
.logo{
width:36px;
height:36px;
border-radius:12px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#111827,#374151);
color:#fff;
font-weight:800;
box-shadow:0 8px 22px rgba(17,24,39,.18);
}
.brand-title{
font-weight:800;
letter-spacing:-.02em;
line-height:1.1;
}
.brand-subtitle{
font-size:.8rem;
color:var(--mut);
margin-top:2px;
}
.nav-links{
display:flex;
align-items:center;
gap:.25rem;
flex-wrap:wrap;
}
.nav-links a{
color:var(--tx);
text-decoration:none;
padding:.45rem .7rem;
border-radius:999px;
font-size:.92rem;
white-space:nowrap;
}
.nav-links a:hover{
background:#fff;
box-shadow:0 1px 0 rgba(17,24,39,.06);
}
.nav-actions{
display:flex;
gap:.5rem;
align-items:center;
}
.btn-secondary{
background:#fff;
color:var(--tx);
border:1px solid var(--b);
}
.btn-secondary:hover{
background:#f3f4f6;
}
.nav-toggle{
display:none;
}
@media(max-width:760px){
.nav{
align-items:flex-start;
flex-wrap:wrap;
}
.nav-toggle{
display:inline-flex;
margin-left:auto;
}
.nav-links,
.nav-actions{
display:none;
width:100%;
}
.topbar:focus-within .nav-links,
.topbar:focus-within .nav-actions{
display:flex;
}
.nav-links{
flex-direction:column;
align-items:stretch;
gap:.35rem;
padding-top:.5rem;
}
.nav-links a{
background:#fff;
border:1px solid var(--b);
}
.nav-actions{
justify-content:flex-start;
padding-top:.25rem;
}
}
@media (max-width: 900px) { .row { grid-template-columns: 1fr; } }
</style>
</head>
<body>
<header class="topbar">
<nav class="nav" aria-label="Hauptnavigation">
<div class="brand">
<div class="logo">PP</div>
<div>
<div class="brand-title">PatchPing Admin</div>
<div class="brand-subtitle">Plain-HTML Control Panel</div>
</div>
</div>
<button class="nav-toggle btn-secondary" type="button" aria-label="Menü öffnen">
☰ Menü
</button>
<div class="nav-links">
<a href="/admin">Admin - Abo und Routing</a>
<a href="/post">Admin - Security Advisory</a>
<a href="/software">Admin - Update Sender</a>
</div>
<div class="nav-actions">
<button id="btn_run_all" title="alle Quellen jetzt abholen & posten">🔄 Run all</button>
<button id="btn_health" class="btn-secondary" title="Health/Status abrufen">🩺 Health</button>
</div>
</nav>
</header>
<div class="wrap">
<header style="display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom: 16px;">
<div>