Feltmodus: dagsplan først med lokasjon per oppgave
Feltmodus hopper til dagsplan-visning og legger dagsplan-kolonnen øverst (backlog under). Hver plan-oppgave viser lokasjon under tittelen. Mobil ved første besøk lander på dagsplanen automatisk. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
bdeb6254b9
commit
7287f33e47
2 changed files with 20 additions and 9 deletions
|
|
@ -77,16 +77,18 @@ const $ = id => document.getElementById(id);
|
|||
|
||||
// ---------- Persistens av UI-valg ----------
|
||||
function loadPrefs() {
|
||||
try {
|
||||
const p = JSON.parse(localStorage.getItem('netops.prefs') || '{}');
|
||||
if (p.filters) Object.assign(state.filters, p.filters);
|
||||
if (p.sort) state.sort = p.sort;
|
||||
if (VIEWS.includes(p.view)) state.view = p.view;
|
||||
if (typeof p.fieldMode === 'boolean') state.fieldMode = p.fieldMode;
|
||||
} catch { /* ignorer korrupt localStorage */ }
|
||||
// Slå på feltmodus automatisk på små skjermer hvis brukeren ikke har valgt selv.
|
||||
let p = {};
|
||||
try { p = JSON.parse(localStorage.getItem('netops.prefs') || '{}') || {}; }
|
||||
catch { /* ignorer korrupt localStorage */ }
|
||||
if (p.filters) Object.assign(state.filters, p.filters);
|
||||
if (p.sort) state.sort = p.sort;
|
||||
if (VIEWS.includes(p.view)) state.view = p.view;
|
||||
if (typeof p.fieldMode === 'boolean') state.fieldMode = p.fieldMode;
|
||||
// Slå på feltmodus automatisk på små skjermer hvis brukeren ikke har valgt selv,
|
||||
// og land på dagsplanen hvis det er første besøk (ingen lagret visning).
|
||||
if (localStorage.getItem('netops.fieldModeSet') !== '1' && window.innerWidth < 640) {
|
||||
state.fieldMode = true;
|
||||
if (!VIEWS.includes(p.view)) state.view = 'plan';
|
||||
}
|
||||
}
|
||||
function savePrefs() {
|
||||
|
|
@ -873,6 +875,7 @@ function renderPlanItem(t, i, own = true) {
|
|||
<span class="plan-num">${i + 1}</span>
|
||||
<div class="plan-item-main">
|
||||
<div class="plan-item-title" onclick="openEdit('${t.id}')">${escapeHtml(t.title)}</div>
|
||||
${t.location ? `<div class="plan-item-loc">📍 ${escapeHtml(t.location)}</div>` : ''}
|
||||
<div class="plan-item-meta">
|
||||
<span class="badge prio-${t.priority}">${t.priority}</span>
|
||||
${catBadge(t)}
|
||||
|
|
@ -1367,9 +1370,12 @@ function applyFieldMode() {
|
|||
function toggleFieldMode() {
|
||||
state.fieldMode = !state.fieldMode;
|
||||
localStorage.setItem('netops.fieldModeSet', '1'); // brukeren har valgt selv
|
||||
// I felt vil man ha dagsplanen først; hopp dit når feltmodus slås på.
|
||||
if (state.fieldMode) state.view = 'plan';
|
||||
savePrefs();
|
||||
applyFieldMode();
|
||||
toast(state.fieldMode ? 'Feltmodus på' : 'Feltmodus av');
|
||||
renderView();
|
||||
toast(state.fieldMode ? 'Feltmodus på — viser dagsplan' : 'Feltmodus av');
|
||||
}
|
||||
|
||||
// ---------- Navnevalg (cookie-auth) ----------
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue