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
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:
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user