aktive/inaktiv list templates
This commit is contained in:
@@ -53,10 +53,16 @@ const showConfirmDialog = (() => {
|
||||
});
|
||||
};
|
||||
|
||||
return async ({ title, text, confirmLabel = 'Bestätigen', cancelLabel = 'Abbrechen' }) => {
|
||||
return async ({ title, text, html = false, confirmLabel = 'Bestätigen', cancelLabel = 'Abbrechen' }) => {
|
||||
ensure();
|
||||
if (titleEl) titleEl.textContent = title || 'Bestätigung';
|
||||
if (textEl) textEl.textContent = text || '';
|
||||
if (textEl) {
|
||||
if (html) {
|
||||
textEl.innerHTML = text || '';
|
||||
} else {
|
||||
textEl.textContent = text || '';
|
||||
}
|
||||
}
|
||||
if (btnOk) btnOk.textContent = confirmLabel;
|
||||
if (btnCancel) btnCancel.textContent = cancelLabel;
|
||||
if (!dialog.open) dialog.showModal();
|
||||
@@ -66,6 +72,19 @@ const showConfirmDialog = (() => {
|
||||
};
|
||||
})();
|
||||
|
||||
function formatReferencesHtml(refs = []) {
|
||||
if (!refs.length) return '';
|
||||
const lines = refs.map(ref => {
|
||||
const name = esc(ref.name || 'Template');
|
||||
const id = Number(ref.id || 0);
|
||||
const versions = Array.isArray(ref.versions) && ref.versions.length
|
||||
? ` – Versionen: ${ref.versions.join(', ')}`
|
||||
: '';
|
||||
return `• ${name} #${id}${versions}`;
|
||||
});
|
||||
return lines.join('<br>');
|
||||
}
|
||||
|
||||
function formatVersionDate(value) {
|
||||
if (!value) return '';
|
||||
try {
|
||||
@@ -173,7 +192,8 @@ async function openTemplateManager(item, section) {
|
||||
const more = refs.length > 6 ? ` und ${refs.length - 6} weitere` : '';
|
||||
return await showConfirmDialog({
|
||||
title: 'Template wird verwendet',
|
||||
text: `Dieses Template wird in ${refs.length} anderen Template(s) verwendet (${preview}${more}). ${actionLabel} trotzdem?`,
|
||||
html: true,
|
||||
text: `Dieses Template wird in ${refs.length} anderen Template(s) verwendet (${esc(preview)}${esc(more)}).<br>${formatReferencesHtml(refs)}<br>${esc(actionLabel)} trotzdem?`,
|
||||
confirmLabel: actionLabel,
|
||||
});
|
||||
};
|
||||
@@ -327,9 +347,11 @@ async function openTemplateManager(item, section) {
|
||||
}
|
||||
let res = await apiAction('content_versions.deactivate', { method: 'POST', data: { content_id: item.id } });
|
||||
if (res && res.ok === false && Array.isArray(res.references) && res.references.length) {
|
||||
const refs = res.references || [];
|
||||
const ok = await showConfirmDialog({
|
||||
title: 'Template wird verwendet',
|
||||
text: 'Dieses Template wird in anderen Templates verwendet. Trotzdem deaktivieren?',
|
||||
html: true,
|
||||
text: `Dieses Template wird in anderen Templates verwendet.<br>${formatReferencesHtml(refs)}<br>Deaktivieren trotzdem?`,
|
||||
confirmLabel: 'Deaktivieren',
|
||||
});
|
||||
if (!ok) return;
|
||||
@@ -346,9 +368,11 @@ async function openTemplateManager(item, section) {
|
||||
if (!confirm('Version wirklich löschen?')) return;
|
||||
let res = await apiAction('content_versions.delete', { method: 'POST', data: { id: vid, content_id: item.id } });
|
||||
if (res && res.ok === false && Array.isArray(res.references) && res.references.length) {
|
||||
const refs = res.references || [];
|
||||
const ok = await showConfirmDialog({
|
||||
title: 'Template wird verwendet',
|
||||
text: 'Dieses Template wird in anderen Templates verwendet. Trotzdem löschen?',
|
||||
html: true,
|
||||
text: `Dieses Template wird in anderen Templates verwendet.<br>${formatReferencesHtml(refs)}<br>Löschen trotzdem?`,
|
||||
confirmLabel: 'Löschen',
|
||||
});
|
||||
if (!ok) return;
|
||||
|
||||
Reference in New Issue
Block a user