feat(desktop): remember layout and personalize shortcuts and wallpaper
This commit is contained in:
1 parent
477e86f694
commit
2c5e3b4019
10 files changed
+291
-22
No files matched your search
+5
-3
@@ -3,7 +3,7 @@
|
||||
const DRAFT_KEY = 'lifeos_today_draft_v1';
|
||||
const localDay = () => { const d = new Date(); return `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')}`; };
|
||||
const escapeHtml = value => String(value || '').replace(/[&<>]/g, char => ({ '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[char]));
|
||||
const APP_VERSION = '1.6.0';
|
||||
const APP_VERSION = '1.7.0';
|
||||
window.LifeOSVersion = APP_VERSION;
|
||||
const appIds = ['today', 'timeline', 'museum', 'insights', 'profile', 'tasks', 'calendar', 'system'];
|
||||
const t = (key, values) => LifeI18n.t(key, values);
|
||||
@@ -68,7 +68,9 @@
|
||||
document.head.append(style);
|
||||
|
||||
function exportData() {
|
||||
const data = { app: 'Life OS', version: APP_VERSION, schemaVersion: 2, exportedAt: new Date().toISOString(), profile: profile(), memories: mems(), museum: museum(), settings: settings(), system: sys() };
|
||||
let desktopLayout = null;
|
||||
try { desktopLayout = JSON.parse(localStorage.getItem('lifeos_window_layout_v1') || 'null'); } catch {}
|
||||
const data = { app: 'Life OS', version: APP_VERSION, schemaVersion: 2, exportedAt: new Date().toISOString(), profile: profile(), memories: mems(), museum: museum(), settings: settings(), system: sys(), desktopLayout };
|
||||
const link = document.createElement('a');
|
||||
link.href = URL.createObjectURL(new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' }));
|
||||
link.download = `life-os-backup-${day()}.json`; link.click();
|
||||
@@ -104,7 +106,7 @@
|
||||
applyingCloud = true;
|
||||
Object.entries(CLOUD_KEYS).forEach(([field, key]) => localStorage.setItem(key, JSON.stringify(state[field] ?? cloudFallback[field])));
|
||||
applyingCloud = false;
|
||||
todayDraft = null; window.renderIcons?.(); window.renderAll?.(); window.applyLanguage?.();
|
||||
todayDraft = null; window.renderIcons?.(); window.renderAll?.(); window.applyLanguage?.(); window.applyDesktopPreferences?.();
|
||||
return mergedLocalBoard || systemNeedsMigration;
|
||||
}
|
||||
async function uploadCloudState() {
|
||||
|
||||
Reference in new issue
Block a user