dsasd
This commit is contained in:
@@ -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 || [];
|
versionItems = items || [];
|
||||||
versionMap = new Map();
|
versionMap = new Map();
|
||||||
if (!versionSelect) return '';
|
if (!versionSelect) return '';
|
||||||
@@ -348,7 +351,12 @@ export function initEditor() {
|
|||||||
versionMap.set(String(item.id), item);
|
versionMap.set(String(item.id), item);
|
||||||
if (Number(item.is_active) === 1 && !activeId) activeId = String(item.id);
|
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) {
|
if (fallbackId) {
|
||||||
lastVersionSelection = fallbackId;
|
lastVersionSelection = fallbackId;
|
||||||
versionSelect.value = fallbackId;
|
versionSelect.value = fallbackId;
|
||||||
@@ -357,17 +365,17 @@ export function initEditor() {
|
|||||||
return lastVersionSelection;
|
return lastVersionSelection;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadVersionsForCurrent() {
|
async function loadVersionsForCurrent(opts = {}) {
|
||||||
if (!current?.id) {
|
if (!current?.id) {
|
||||||
renderVersionOptions([]);
|
renderVersionOptions([], opts);
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const res = await apiAction('content_versions.list', { method: 'GET', data: { content_id: current.id, id: current.id } });
|
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');
|
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 {
|
} catch {
|
||||||
renderVersionOptions([]);
|
renderVersionOptions([], opts);
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1043,7 +1051,7 @@ export function initEditor() {
|
|||||||
try {
|
try {
|
||||||
const res = await apiAction('content_versions.deactivate', { method: 'POST', data: { content_id: current.id } });
|
const res = await apiAction('content_versions.deactivate', { method: 'POST', data: { content_id: current.id } });
|
||||||
if (!res?.ok) throw new Error(res?.error || 'Deaktivieren fehlgeschlagen');
|
if (!res?.ok) throw new Error(res?.error || 'Deaktivieren fehlgeschlagen');
|
||||||
await loadVersionsForCurrent();
|
await loadVersionsForCurrent({ keepSelection: true, preferredId: currentVersionId });
|
||||||
toast('Aktive Version deaktiviert', true);
|
toast('Aktive Version deaktiviert', true);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
err(e.message || 'Deaktivieren fehlgeschlagen');
|
err(e.message || 'Deaktivieren fehlgeschlagen');
|
||||||
|
|||||||
Reference in New Issue
Block a user