138 lines
6.4 KiB
PHP
138 lines
6.4 KiB
PHP
<?php
|
||
require_once __DIR__ . '/../config/fileload.php';
|
||
|
||
$pageTitle = 'Email Template System – Admin';
|
||
$pageId = 'home';
|
||
$navLinks = [];
|
||
|
||
ob_start();
|
||
?>
|
||
<nav class="isolate inline-flex flex-wrap rounded-2xl shadow-sm border bg-white overflow-hidden">
|
||
<button type="button" data-tab="templates" class="px-4 py-2 text-sm border-e bg-sky-50 text-sky-700">Templates</button>
|
||
<button type="button" data-tab="sections" class="px-4 py-2 text-sm border-e">Sections</button>
|
||
<button type="button" data-tab="blocks" class="px-4 py-2 text-sm border-e">Blocks</button>
|
||
<button type="button" data-tab="snippets" class="px-4 py-2 text-sm">Snippets</button>
|
||
</nav>
|
||
<button id="btn-new" type="button" class="btn">Neu …</button>
|
||
<?php
|
||
$headerTabs = ob_get_clean();
|
||
|
||
require __DIR__ . '/../partials/structure/layout_start.php';
|
||
?>
|
||
<main class="max-w-6xl mx-auto p-4 flex-1 w-full space-y-6">
|
||
<header class="pb-2 border-b border-slate-200">
|
||
<h1 class="font-semibold text-lg text-slate-900">Email Template System</h1>
|
||
<p class="text-sm text-slate-500">Wähle eine Kategorie, um Templates, Sections, Blocks oder Snippets zu pflegen.</p>
|
||
</header>
|
||
|
||
<section id="view-templates" class="view"></section>
|
||
<section id="view-sections" class="view hidden"></section>
|
||
<section id="view-blocks" class="view hidden"></section>
|
||
<section id="view-snippets" class="view hidden"></section>
|
||
</main>
|
||
|
||
<!-- Create Dialog -->
|
||
<dialog id="createDialog" class="rounded-2xl p-0 w-[540px]">
|
||
<form id="createForm" method="dialog" class="p-4 bg-white rounded-2xl">
|
||
<h3 class="text-lg font-semibold mb-2">Neues Element erstellen</h3>
|
||
<p id="createHint" class="text-sm text-slate-600 mb-3"></p>
|
||
<div class="space-y-3" id="createFields"></div>
|
||
<div class="mt-4 flex justify-end gap-2">
|
||
<button type="button" id="createCancel" class="btn">Abbrechen</button>
|
||
<button type="submit" id="createSubmit" class="btn">Erstellen</button>
|
||
</div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<!-- Delete Confirm Dialog -->
|
||
<dialog id="deleteDialog" class="rounded-2xl p-0 w-[520px]">
|
||
<form id="deleteForm" method="dialog" class="p-4 bg-white rounded-2xl">
|
||
<h3 class="text-lg font-semibold mb-2">Eintrag löschen?</h3>
|
||
<p id="deleteText" class="text-sm text-slate-600 mb-4"></p>
|
||
<div class="mt-1 flex justify-end gap-2">
|
||
<button type="button" id="deleteCancel" class="btn">Abbrechen</button>
|
||
<button type="submit" class="btn btn-danger">Löschen</button>
|
||
</div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<!-- Editor Dialog -->
|
||
<dialog id="editorDialog" class="rounded-2xl p-0 w-[95vw] h-[90vh]">
|
||
<div class="h-full flex flex-col">
|
||
<div class="px-4 py-2 border-b flex items-center gap-2 bg-white/80 backdrop-blur">
|
||
<strong class="me-auto">E-Mail Editor</strong>
|
||
<button id="btn-clear-main" type="button" class="btn" title="Leeren">🧹</button>
|
||
<button id="btn-preview" type="button" class="btn">Vorschau</button>
|
||
<button id="btn-test" type="button" class="btn">Testversand</button>
|
||
<button id="btn-save" type="button" class="btn">Speichern</button>
|
||
<button id="btn-close" type="button" class="btn">Schließen</button>
|
||
</div>
|
||
<iframe id="editorFrame" src="about:blank" class="flex-1 w-full"></iframe>
|
||
</div>
|
||
</dialog>
|
||
|
||
<!-- Preview Dialog -->
|
||
<dialog id="previewDialog" class="rounded-2xl p-0 w-[90vw] h-[90vh]">
|
||
<div class="h-full flex flex-col">
|
||
<div class="px-4 py-2 border-b flex items-center gap-2 bg-white/80 backdrop-blur">
|
||
<strong class="me-auto">Vorschau</strong>
|
||
<button id="btn-close-preview" type="button" class="btn">Schließen</button>
|
||
</div>
|
||
<iframe id="previewFrame" class="flex-1 w-full"></iframe>
|
||
</div>
|
||
</dialog>
|
||
|
||
<!-- Test Send Dialog -->
|
||
<dialog id="sendTestDialog" class="rounded-2xl p-0 w-[480px]">
|
||
<form id="sendTestForm" method="dialog" class="p-4 bg-white rounded-2xl space-y-4">
|
||
<h3 class="text-lg font-semibold">Testversand</h3>
|
||
<p id="send_template_info" class="text-sm text-slate-600">Kein Template ausgewählt.</p>
|
||
<label class="block">
|
||
<span class="text-sm text-slate-600">Empfänger (E-Mail)</span>
|
||
<input id="send_to" type="email" required class="mt-1 w-full border rounded-lg px-3 py-2" placeholder="name@example.com" />
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm text-slate-600">Betreff</span>
|
||
<input id="send_subject" type="text" class="mt-1 w-full border rounded-lg px-3 py-2" value="Testversand" />
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm text-slate-600">Absender</span>
|
||
<select id="send_sender" class="mt-1 w-full border rounded-lg px-3 py-2">
|
||
<option value="">Standard (System)</option>
|
||
</select>
|
||
<p id="send_sender_hint" class="text-xs text-slate-500 mt-1 hidden">Keine individuellen Absender gefunden. Lege sie unter „Mein Konto“ an.</p>
|
||
</label>
|
||
<div class="flex justify-end gap-2">
|
||
<button type="button" id="btn-cancel-send" class="btn">Abbrechen</button>
|
||
<button type="submit" id="btn-send-now" class="btn">Senden</button>
|
||
</div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<!-- Edit Snippet Dialog -->
|
||
<dialog id="editSnippetDialog" class="rounded-2xl p-0 w-[700px]">
|
||
<form id="editSnippetForm" method="dialog" class="p-4 bg-white rounded-2xl">
|
||
<h3 class="text-lg font-semibold mb-2">Snippet bearbeiten</h3>
|
||
<div class="space-y-3">
|
||
<label class="block">
|
||
<span class="text-sm text-slate-600">Name</span>
|
||
<input id="edit_snip_name" type="text" class="w-full border rounded-lg px-3 py-2" />
|
||
</label>
|
||
<label class="block">
|
||
<span class="text-sm text-slate-600">Content (HTML)</span>
|
||
<textarea id="edit_snip_content" class="w-full border rounded-lg px-3 py-2 h-64 font-mono text-sm"></textarea>
|
||
</label>
|
||
</div>
|
||
<div class="mt-4 flex justify-end gap-2">
|
||
<button type="button" id="editSnippetCancel" class="btn">Abbrechen</button>
|
||
<button type="submit" id="editSnippetSave" class="btn">Speichern</button>
|
||
</div>
|
||
</form>
|
||
</dialog>
|
||
|
||
<div id="toast-root"></div>
|
||
<?php
|
||
tpl_add_script(app_asset_url('/assets/js/toast.js'));
|
||
tpl_add_script(app_asset_url('/assets/js/app.js'), 'footer', false, false, '', null, true);
|
||
require __DIR__ . '/../partials/structure/layout_end.php';
|