Speichern bei Änderungen
This commit is contained in:
@@ -1 +1 @@
|
|||||||
1.2.35
|
1.2.36
|
||||||
@@ -59,6 +59,8 @@ export function initEditor() {
|
|||||||
let versionMap = new Map();
|
let versionMap = new Map();
|
||||||
let currentVersionId = 0;
|
let currentVersionId = 0;
|
||||||
let currentVersionMeta = null;
|
let currentVersionMeta = null;
|
||||||
|
let pendingSaveResolve = null;
|
||||||
|
let pendingSaveTimer = null;
|
||||||
|
|
||||||
const ok = (m) => toast(m, true);
|
const ok = (m) => toast(m, true);
|
||||||
const err = (m) => toast(m, false);
|
const err = (m) => toast(m, false);
|
||||||
@@ -481,7 +483,7 @@ export function initEditor() {
|
|||||||
const fields = extractContentFields(payload);
|
const fields = extractContentFields(payload);
|
||||||
savedSnapshot = buildSnapshot(fields);
|
savedSnapshot = buildSnapshot(fields);
|
||||||
clearDirty();
|
clearDirty();
|
||||||
baselineReady = false;
|
baselineReady = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function syncSnapshotFromEditor() {
|
async function syncSnapshotFromEditor() {
|
||||||
@@ -1058,14 +1060,18 @@ export function initEditor() {
|
|||||||
|
|
||||||
// NEU: Wenn der Editor meldet, dass er *gespeichert* hat,
|
// NEU: Wenn der Editor meldet, dass er *gespeichert* hat,
|
||||||
// aktualisieren wir die Liste im Elternfenster
|
// aktualisieren wir die Liste im Elternfenster
|
||||||
if (d.type === 'save:success') {
|
if (d.type === 'save:success') {
|
||||||
ok('Gespeichert');
|
ok('Gespeichert');
|
||||||
try {
|
try {
|
||||||
if (typeof window.reloadActiveList === 'function') window.reloadActiveList();
|
if (typeof window.reloadActiveList === 'function') window.reloadActiveList();
|
||||||
else if (typeof window.__reloadList === 'function') window.__reloadList(current.section);
|
else if (typeof window.__reloadList === 'function') window.__reloadList(current.section);
|
||||||
} catch {}
|
} catch {}
|
||||||
return;
|
if (pendingSaveResolve) {
|
||||||
}
|
pendingSaveResolve(true);
|
||||||
|
pendingSaveResolve = null;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// neue Bridge meldet gjs:ready; ältere evtl. core-ready/bridge:ready
|
// neue Bridge meldet gjs:ready; ältere evtl. core-ready/bridge:ready
|
||||||
if (d.type === 'gjs:ready' || d.type === 'core-ready' || d.type === 'bridge:ready' || d.type === 'bridge:booted') {
|
if (d.type === 'gjs:ready' || d.type === 'core-ready' || d.type === 'bridge:ready' || d.type === 'bridge:booted') {
|
||||||
@@ -1174,16 +1180,30 @@ export function initEditor() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const okSave = await delegateCommand('save-data');
|
const okSave = await delegateCommand('save-data');
|
||||||
if (okSave) {
|
if (!okSave) return false;
|
||||||
|
if (pendingSaveTimer) {
|
||||||
|
clearTimeout(pendingSaveTimer);
|
||||||
|
pendingSaveTimer = null;
|
||||||
|
}
|
||||||
|
const saved = await new Promise((resolve) => {
|
||||||
|
pendingSaveResolve = resolve;
|
||||||
|
pendingSaveTimer = setTimeout(() => {
|
||||||
|
pendingSaveTimer = null;
|
||||||
|
if (pendingSaveResolve) {
|
||||||
|
pendingSaveResolve(false);
|
||||||
|
pendingSaveResolve = null;
|
||||||
|
}
|
||||||
|
}, 3000);
|
||||||
|
});
|
||||||
|
if (!saved) return false;
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await loadVersionsForCurrent();
|
await loadVersionsForCurrent();
|
||||||
try {
|
try {
|
||||||
const res = await apiAction('content.get', { method: 'GET', data: { id: current.id, section_id: current.section.id } });
|
const res = await apiAction('content.get', { method: 'GET', data: { id: current.id, section_id: current.section.id } });
|
||||||
setSavedSnapshotFromData(res || {});
|
setSavedSnapshotFromData(res || {});
|
||||||
} catch {}
|
} catch {}
|
||||||
}, 800);
|
}, 200);
|
||||||
}
|
return true;
|
||||||
return okSave;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... (Der Rest der Funktionen bleibt unverändert) ...
|
// ... (Der Rest der Funktionen bleibt unverändert) ...
|
||||||
|
|||||||
Reference in New Issue
Block a user