up
This commit is contained in:
@@ -1,5 +1,19 @@
|
||||
import { apiList, apiGet, apiDelete, apiUpdate, toast } from './api.js';
|
||||
|
||||
function formatUsage(usage){
|
||||
if (!usage || !usage.total) return '';
|
||||
const parts=[];
|
||||
if (usage.templates) parts.push(`${usage.templates} Template${usage.templates!==1?'s':''}`);
|
||||
if (usage.sections) parts.push(`${usage.sections} Section${usage.sections!==1?'s':''}`);
|
||||
if (usage.blocks) parts.push(`${usage.blocks} Block${usage.blocks!==1?'s':''}`);
|
||||
if (usage.snippets) parts.push(`${usage.snippets} Snippet${usage.snippets!==1?'s':''}`);
|
||||
if (!parts.length) return '';
|
||||
return `<div class="mt-3 text-sm text-rose-600">
|
||||
Dieses Element wird aktuell verwendet in: <strong>${parts.join(', ')}</strong>.<br>
|
||||
Das Löschen entfernt diese Referenzen.
|
||||
</div>`;
|
||||
}
|
||||
|
||||
function esc(s=''){
|
||||
return String(s)
|
||||
.replace(/&/g,'&')
|
||||
@@ -145,10 +159,16 @@ export async function loadList(resource){
|
||||
let pending=null;
|
||||
delCancel && (delCancel.onclick=()=>{pending=null;delDlg.close();});
|
||||
|
||||
list.querySelectorAll('[data-del]').forEach(b=>b.addEventListener('click',()=>{
|
||||
list.querySelectorAll('[data-del]').forEach(b=>b.addEventListener('click', async ()=>{
|
||||
const [res,id]=b.dataset.del.split(':'); const nm=b.dataset.name||'';
|
||||
pending={res,id,nm};
|
||||
delText && (delText.innerHTML=`Soll <strong>${nm || '(ohne Name)'} #${id}</strong> aus <strong>${res}</strong> wirklich gelöscht werden?<br><span class="text-rose-600">Achtung:</span> Kinder-Elemente werden <em>nicht</em> automatisch mit gelöscht.`);
|
||||
let usage = null;
|
||||
try {
|
||||
const detail = await apiGet(res, id);
|
||||
usage = detail?.usage || null;
|
||||
} catch {}
|
||||
pending={res,id,nm,usage};
|
||||
const usageWarn = formatUsage(usage);
|
||||
delText && (delText.innerHTML=`Soll <strong>${nm || '(ohne Name)'} #${id}</strong> aus <strong>${res}</strong> wirklich gelöscht werden?<br><span class="text-rose-600">Achtung:</span> Kinder-Elemente werden <em>nicht</em> automatisch mit gelöscht.${usageWarn}`);
|
||||
delDlg.showModal();
|
||||
}));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user