fix(ui): tabeller pakkes i .wt-table-wrap (standardkomponent i base.html), portal.css cache-bustes
CD / deploy (push) Successful in 15s
CI / check (push) Successful in 21s

Rettelsen i v1.5.2 nåede ikke telefonen, fordi /static/portal.css ikke sendes
med Cache-Control og Safari cacher heuristisk; nu ?v=<mtime>. Og i stedet for en
media-query på selve tabellen pakker base.html enhver tabel i hovedindholdet
(også injiceret) i et rulleområde, så bredt indhold aldrig skubber siden ud
over kanten, uanset skærmbredde.

Claude-Session: https://claude.ai/code/session_01JmhJG6JnhXfzNiKv8f2vHu
This commit is contained in:
root
2026-10-06 22:51:09 +02:00
parent 1c1962e1d8
commit 79f49bda45
3 changed files with 26 additions and 8 deletions
+17 -1
View File
@@ -11,7 +11,7 @@
<script>(()=>{try{var t=localStorage.getItem('theme')||(matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');document.documentElement.dataset.theme=t}catch(e){document.documentElement.dataset.theme='dark'}})()</script>
<!-- shared design system (SSOT: agw/Weircon-wind) hosted on assets.weircon.dk -->
<link rel="stylesheet" href="https://assets.weircon.dk/css/weirsoe-theme.css" />
<link rel="stylesheet" href="/static/portal.css" />
<link rel="stylesheet" href="/static/portal.css?v={{ static_v }}" />
<script defer src="https://assets.weircon.dk/js/weirsoe-theme.js"></script>
{% block head %}{% endblock %}
</head>
@@ -56,6 +56,22 @@
</div>
</div>
<script>
// Standardkomponent: enhver tabel i hovedindholdet får et rulleområde om sig (.wt-table-wrap),
// så en bred tabel ruller i sig selv i stedet for at skubbe siden ud over kanten. Gælder også
// indhold, der injiceres senere (fx /admin/ops).
(function () {
function pak(rod) {
(rod || document).querySelectorAll('main table').forEach(function (t) {
if (t.parentElement && t.parentElement.classList.contains('wt-table-wrap')) return;
var w = document.createElement('div'); w.className = 'wt-table-wrap';
t.parentNode.insertBefore(w, t); w.appendChild(t);
});
}
window.wtPakTabeller = pak;
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', function () { pak(); }); else pak();
var main = document.querySelector('main');
if (main && window.MutationObserver) new MutationObserver(function () { pak(main); }).observe(main, { childList: true, subtree: true });
})();
(function () {
if (window.__palette) return; window.__palette = true;
var index = null, items = [], sel = 0;