This commit is contained in:
2026-01-22 00:01:36 +01:00
parent 8a776e1dc3
commit 6c06b850eb

View File

@@ -320,7 +320,10 @@ export function initEditor() {
}
}
function renderVersionOptions(items) {
function renderVersionOptions(items, opts = {}) {
const keepSelection = !!opts.keepSelection;
const preferredId = opts.preferredId ? String(opts.preferredId) : '';
const selectionToKeep = preferredId || (keepSelection ? String(versionSelect?.value || lastVersionSelection || '') : '');
versionItems = items || [];
versionMap = new Map();
if (!versionSelect) return '';
@@ -348,7 +351,12 @@ export function initEditor() {
versionMap.set(String(item.id), item);
if (Number(item.is_active) === 1 && !activeId) activeId = String(item.id);
});
const fallbackId = activeId || (rows[0] ? String(rows[0].id) : '');
let fallbackId = '';
if (selectionToKeep && versionMap.has(selectionToKeep)) {
fallbackId = selectionToKeep;
} else {
fallbackId = activeId || (rows[0] ? String(rows[0].id) : '');
}
if (fallbackId) {
lastVersionSelection = fallbackId;
versionSelect.value = fallbackId;
@@ -357,17 +365,17 @@ export function initEditor() {
return lastVersionSelection;
}
async function loadVersionsForCurrent() {
async function loadVersionsForCurrent(opts = {}) {
if (!current?.id) {
renderVersionOptions([]);
renderVersionOptions([], opts);
return '';
}
try {
const res = await apiAction('content_versions.list', { method: 'GET', data: { content_id: current.id, id: current.id } });
if (!res?.ok) throw new Error(res?.error || 'Versionen konnten nicht geladen werden');
return renderVersionOptions(Array.isArray(res?.items) ? res.items : []);
return renderVersionOptions(Array.isArray(res?.items) ? res.items : [], opts);
} catch {
renderVersionOptions([]);
renderVersionOptions([], opts);
return '';
}
}
@@ -1043,7 +1051,7 @@ export function initEditor() {
try {
const res = await apiAction('content_versions.deactivate', { method: 'POST', data: { content_id: current.id } });
if (!res?.ok) throw new Error(res?.error || 'Deaktivieren fehlgeschlagen');
await loadVersionsForCurrent();
await loadVersionsForCurrent({ keepSelection: true, preferredId: currentVersionId });
toast('Aktive Version deaktiviert', true);
} catch (e) {
err(e.message || 'Deaktivieren fehlgeschlagen');