big update
This commit is contained in:
@@ -1,66 +1,20 @@
|
||||
<?php
|
||||
$assetVersion = defined('ASSET_VERSION') ? ASSET_VERSION : time();
|
||||
$appBaseUrl = rtrim($GLOBALS['app_base_url'] ?? '', '/');
|
||||
$assetBase = $appBaseUrl !== '' ? $appBaseUrl : '';
|
||||
$appApiBase = rtrim($GLOBALS['app_api_base'] ?? '', '/');
|
||||
$debugRedirect = isset($_GET['debug_redirect']);
|
||||
$pageTitle = 'Email Template System – Bridge Setup';
|
||||
$pageId = 'bridge-setup';
|
||||
$navActive = 'bridge';
|
||||
$layoutExtraHead = <<<HTML
|
||||
<style>
|
||||
:root { color-scheme: light; }
|
||||
.section-card{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:1.25rem;margin-bottom:1.5rem}
|
||||
.section-card h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#0f172a}
|
||||
.input{width:100%;border:1px solid #cbd5f5;border-radius:.5rem;padding:.5rem .75rem}
|
||||
.badge{display:inline-flex;align-items:center;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;background:#e2e8f0;color:#0f172a}
|
||||
.chip{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;background:#f1f5f9;color:#0f172a;border:1px solid #e2e8f0;font-size:.8rem}
|
||||
</style>
|
||||
HTML;
|
||||
require dirname(__DIR__) . '/../structure/layout_start.php';
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Email Template System – Bridge Setup</title>
|
||||
<script>document.documentElement.classList.add('auth-pending');</script>
|
||||
<style>html.auth-pending body{visibility:hidden;}</style>
|
||||
<script>
|
||||
window.APP_BASE_URL = <?= json_encode($appBaseUrl, JSON_UNESCAPED_SLASHES) ?>;
|
||||
window.APP_API_BASE = <?= json_encode($appApiBase, JSON_UNESCAPED_SLASHES) ?>;
|
||||
<?php if ($debugRedirect): ?>
|
||||
window.DISABLE_AUTH_REDIRECT = true;
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<?php if ($debugRedirect): ?>
|
||||
<script src="<?= $assetBase ?>/assets/js/debug-location.js?v=<?= htmlspecialchars($assetVersion, ENT_QUOTES) ?>"></script>
|
||||
<?php endif; ?>
|
||||
<link rel="stylesheet" href="<?= $assetBase ?>/assets/css/admin.css?v=<?= htmlspecialchars($assetVersion, ENT_QUOTES) ?>">
|
||||
<link rel="stylesheet" href="<?= $assetBase ?>/assets/css/toast.css?v=<?= htmlspecialchars($assetVersion, ENT_QUOTES) ?>">
|
||||
<style>
|
||||
:root { color-scheme: light; }
|
||||
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .7rem;border-radius:.7rem;border:1px solid #e5e7eb;background:#fff;font-size:.9rem;cursor:pointer;}
|
||||
.btn:hover{background:#f8fafc}
|
||||
.btn-avatar{padding:.35rem;border-radius:999px;width:42px;height:42px;justify-content:center;font-weight:600;background:#0ea5e9;color:#fff;border:none}
|
||||
.btn-avatar:hover{background:#0284c7}
|
||||
.section-card{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:1.25rem;margin-bottom:1.5rem}
|
||||
.section-card h4{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#0f172a}
|
||||
.input{width:100%;border:1px solid #cbd5f5;border-radius:.5rem;padding:.5rem .75rem}
|
||||
.badge{display:inline-flex;align-items:center;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;background:#e2e8f0;color:#0f172a}
|
||||
.chip{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;background:#f1f5f9;color:#0f172a;border:1px solid #e2e8f0;font-size:.8rem}
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-slate-50 text-slate-800" data-page="bridge-setup">
|
||||
<header class="sticky top-0 z-30 bg-white/90 border-b backdrop-blur">
|
||||
<div class="max-w-4xl mx-auto px-4 py-4 flex items-center gap-3">
|
||||
<a href="<?= $appBaseUrl ?>/admin/settings.php" class="btn" title="Zurück zur Administration">← Administration</a>
|
||||
<h1 class="font-semibold text-lg">Bridge Setup</h1>
|
||||
<div class="ms-auto flex gap-2 items-center">
|
||||
<div class="relative" id="userMenu">
|
||||
<button id="btn-user" type="button" class="btn-avatar" aria-haspopup="true" aria-expanded="false">
|
||||
<span id="userAvatar">U</span>
|
||||
</button>
|
||||
<div id="userMenuPanel" class="user-menu hidden" role="menu">
|
||||
<a href="<?= $appBaseUrl ?>/admin/profile.php" class="user-menu-item" data-menu="profile">Profil</a>
|
||||
<a href="<?= $appBaseUrl ?>/admin/dashboard.php" class="user-menu-item" data-role="admin">Dashboard</a>
|
||||
<a href="<?= $appBaseUrl ?>/admin/settings.php" class="user-menu-item" data-role="admin">Administration</a>
|
||||
<button id="btn-logout" type="button" class="user-menu-item text-red-600">Logout</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="max-w-4xl mx-auto p-4 md:p-6 space-y-6">
|
||||
<main class="max-w-4xl mx-auto p-4 md:p-6 flex-1 w-full space-y-6">
|
||||
<section class="section-card">
|
||||
<h4>Bridge-Datei vorbereiten</h4>
|
||||
<p class="text-sm text-slate-600 mb-3">
|
||||
@@ -154,13 +108,13 @@ $debugRedirect = isset($_GET['debug_redirect']);
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<div id="toast-root"></div>
|
||||
<div id="toast-root"></div>
|
||||
|
||||
<dialog id="configExampleDialog" class="rounded-xl max-w-2xl w-[90vw]">
|
||||
<form method="dialog" class="space-y-3">
|
||||
<h3 class="text-lg font-semibold">Beispiel: Mapping einer Config-Datei</h3>
|
||||
<p class="text-sm text-slate-600">Angenommen, deine <code>../config/database.php</code> liefert folgendes Array:</p>
|
||||
<pre class="bg-slate-900 text-slate-100 text-xs p-3 rounded-lg overflow-auto"><?php echo htmlspecialchars(<<<'PHP'
|
||||
<dialog id="configExampleDialog" class="rounded-xl max-w-2xl w-[90vw]">
|
||||
<form method="dialog" class="space-y-3">
|
||||
<h3 class="text-lg font-semibold">Beispiel: Mapping einer Config-Datei</h3>
|
||||
<p class="text-sm text-slate-600">Angenommen, deine <code>../config/database.php</code> liefert folgendes Array:</p>
|
||||
<pre class="bg-slate-900 text-slate-100 text-xs p-3 rounded-lg overflow-auto"><?php echo htmlspecialchars(<<<'PHP'
|
||||
<?php
|
||||
return [
|
||||
'database' => [
|
||||
@@ -177,20 +131,21 @@ return [
|
||||
],
|
||||
];
|
||||
PHP, ENT_QUOTES); ?></pre>
|
||||
<p class="text-sm text-slate-600">Dann trägst du ein:</p>
|
||||
<ul class="text-sm text-slate-700 list-disc ps-5">
|
||||
<li><strong>Pfad zur Konfigurationsdatei:</strong> <code>../config/database.php</code></li>
|
||||
<li><strong>Basis-Pfad:</strong> <code>database.connections.default</code></li>
|
||||
<li><strong>Host-/Port-/DB-/User-/Pass-/Charset-Key:</strong> jeweils <code>host</code>, <code>port</code>, <code>database</code>, <code>username</code>, <code>password</code>, <code>charset</code></li>
|
||||
</ul>
|
||||
<p class="text-sm text-slate-600">Die Bridge liest dann automatisch die Werte aus diesem Array und baut daraus den DSN.</p>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn">Verstanden</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<script src="<?= $assetBase ?>/assets/js/toast.js?v=<?= htmlspecialchars($assetVersion, ENT_QUOTES) ?>"></script>
|
||||
<script type="module" src="<?= $assetBase ?>/assets/js/bridge-setup.js?v=<?= htmlspecialchars($assetVersion, ENT_QUOTES) ?>"></script>
|
||||
</body>
|
||||
</html>
|
||||
<p class="text-sm text-slate-600">Dann trägst du ein:</p>
|
||||
<ul class="text-sm text-slate-700 list-disc ps-5">
|
||||
<li><strong>Pfad zur Konfigurationsdatei:</strong> <code>../config/database.php</code></li>
|
||||
<li><strong>Basis-Pfad:</strong> <code>database.connections.default</code></li>
|
||||
<li><strong>Host-/Port-/DB-/User-/Pass-/Charset-Key:</strong> jeweils <code>host</code>, <code>port</code>, <code>database</code>, <code>username</code>, <code>password</code>, <code>charset</code></li>
|
||||
</ul>
|
||||
<p class="text-sm text-slate-600">Die Bridge liest dann automatisch die Werte aus diesem Array und baut daraus den DSN.</p>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn">Verstanden</button>
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
<?php
|
||||
$layoutScripts = [
|
||||
['src' => app_asset_url('/assets/js/toast.js')],
|
||||
['src' => app_asset_url('/assets/js/bridge-setup.js'), 'module' => true],
|
||||
];
|
||||
require dirname(__DIR__) . '/../structure/layout_end.php';
|
||||
|
||||
Reference in New Issue
Block a user