fix: release current magazine UI assets
Some checks are pending
Test and SonarQube / quality (push) Waiting to run

This commit is contained in:
mARTin-B78 2026-09-09 17:40:25 +02:00
parent 31b13a4e16
commit f8af18e8f7
5 changed files with 29 additions and 16 deletions

View File

@ -9,6 +9,19 @@ Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) · versioned wi
---
## [1.26.7] — 2026-09-09
### Fixed
- **Released Magazine UI Updates Now Reliably Reach Browsers.** The HTML bootstrap version was stale at `1.26.1`,
causing the browser to reuse an immutable old `magazine.js` bundle despite newer server deployments. All bootstrapped
assets now use the current release version so current magazine review controls, whole-issue navigation and OCR tools load.
### Changed
- **Magazine Deletion Is Discoverable.** Every magazine card now has a visible, labelled **Delete** button below it;
confirmation remains required before the source PDF, OCR data, articles and generated assets are permanently removed.
---
## [1.26.6] — 2026-09-09
### Added

View File

@ -1 +1 @@
1.26.6
1.26.7

View File

@ -10,7 +10,7 @@
<meta name="format-detection" content="telephone=no">
<meta name="color-scheme" content="light dark">
<meta name="theme-color" content="#2563EB">
<meta name="app-version" content="1.26.1">
<meta name="app-version" content="1.26.7">
<link rel="manifest" href="/manifest.webmanifest">
<link rel="icon" href="/static/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/static/icon.svg">
@ -27,12 +27,12 @@
<!-- ── Core styles (local — no CDN dependency for first paint) ────────── -->
<link rel="stylesheet" href="/static/vendor/mdi/materialdesignicons.min.css">
<link rel="stylesheet" href="/static/style.css?v=1.26.1">
<link rel="stylesheet" href="/static/css/resource-diagnostics.css?v=1.26.1">
<link rel="stylesheet" href="/static/css/background-jobs.css?v=1.26.1">
<link rel="stylesheet" href="/static/css/voice-design.css?v=1.26.1">
<link rel="stylesheet" href="/static/css/rehearser.css?v=1.26.1">
<link rel="stylesheet" href="/static/css/audiobook.css?v=1.26.1">
<link rel="stylesheet" href="/static/style.css?v=1.26.7">
<link rel="stylesheet" href="/static/css/resource-diagnostics.css?v=1.26.7">
<link rel="stylesheet" href="/static/css/background-jobs.css?v=1.26.7">
<link rel="stylesheet" href="/static/css/voice-design.css?v=1.26.7">
<link rel="stylesheet" href="/static/css/rehearser.css?v=1.26.7">
<link rel="stylesheet" href="/static/css/audiobook.css?v=1.26.7">
<!-- ── Flag icons — non-blocking (loaded async, icons appear after JS) ── -->
@ -403,7 +403,7 @@ window.toggleNavTree = function(treeId, chevronId) {
</script>
<!-- loader.js: fetches sections → loads JS modules → removes skeleton -->
<script src="/static/loader.js?v=1.26.1"></script>
<script src="/static/loader.js?v=1.26.7"></script>
</body>
</html>

View File

@ -148,8 +148,8 @@ function renderLibrary() {
return '<div class="mag-card-wrap"><button type="button" class="mag-card" onclick="magOpen(\'' + d.id + '\')">' +
thumbnail + '<span class="mag-card-title">' + esc(d.title || 'Untitled') + '</span>' +
'<span class="mag-card-sub">' + esc(d.issue || '') + '</span>' + badge + '</button>' +
'<button type="button" class="mag-card-delete" onclick="magDelete(\'' + d.id + '\')" ' +
'title="Delete this magazine" aria-label="Delete ' + esc(d.title || 'magazine') + '"><span class="mdi mdi-delete-outline"></span></button></div>';
'<div class="mag-card-actions"><button type="button" class="mag-card-delete" onclick="magDelete(\'' + d.id + '\')" ' +
'title="Delete this magazine" aria-label="Delete ' + esc(d.title || 'magazine') + '"><span class="mdi mdi-delete-outline"></span> Delete</button></div></div>';
}).join('');
}

View File

@ -4777,16 +4777,16 @@ input[list="lang-codes"] {
.mag-new-actions { display: flex; justify-content: flex-end; margin-top: 14px; }
.mag-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.mag-card-wrap { position: relative; min-width: 0; }
.mag-card-wrap { min-width: 0; }
.mag-card { display: flex; width: 100%; min-height: 100%; flex-direction: column; gap: 6px; align-items: flex-start; text-align: left;
padding: 14px; border: 1px solid var(--border); border-radius: var(--radius);
background: var(--surface); color: var(--text); cursor: pointer; }
.mag-card:hover { border-color: var(--accent); }
.mag-card:focus-visible { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(37,99,235,.18); }
.mag-card-delete { position: absolute; top: 7px; right: 7px; width: 32px; height: 32px; display: grid; place-items: center;
border: 1px solid var(--border); border-radius: 7px; background: color-mix(in srgb, var(--surface) 88%, transparent);
color: var(--subtext); cursor: pointer; opacity: .82; }
.mag-card-delete:hover, .mag-card-delete:focus-visible { color: var(--error); border-color: var(--error); background: var(--surface); opacity: 1; }
.mag-card-actions { display: flex; justify-content: flex-end; padding: 6px 4px 0; }
.mag-card-delete { display: inline-flex; align-items: center; gap: 4px; padding: 5px 8px;
border: 1px solid var(--border); border-radius: 7px; background: var(--surface); color: var(--subtext); cursor: pointer; }
.mag-card-delete:hover, .mag-card-delete:focus-visible { color: var(--error); border-color: var(--error); background: var(--surface); }
.mag-card-thumb { display: block; width: 100%; height: 190px; object-fit: contain; object-position: center;
background: var(--panel); border: 1px solid var(--border); border-radius: calc(var(--radius) - 2px); }
.mag-card-title { font-weight: 600; }