chore: rebrand zu Dockly-Pfandsystem

Anzeige-Name ueberall umgestellt:
- index.html title, Login-H1, TopNav, SuperAdmin-Header
- Mail-Subject, HTML-Body, Default-MAIL_FROM
- PWA Manifest name (short_name: Dockly-Pfand wegen Laengen-Limit)
This commit is contained in:
christian
2026-05-26 13:43:46 +00:00
parent 712afdd253
commit 9726d70c41
8 changed files with 17 additions and 17 deletions

View File

@@ -1,7 +1,7 @@
import nodemailer from 'nodemailer'; import nodemailer from 'nodemailer';
import { Resend } from 'resend'; import { Resend } from 'resend';
const FROM = process.env.MAIL_FROM || 'Pfandsystem Demo <demo@dockly.de>'; const FROM = process.env.MAIL_FROM || 'Dockly-Pfandsystem Demo <demo@dockly.de>';
let transporter = null; let transporter = null;
if (process.env.SMTP_HOST && process.env.SMTP_USER && process.env.SMTP_PASS) { if (process.env.SMTP_HOST && process.env.SMTP_USER && process.env.SMTP_PASS) {
@@ -37,7 +37,7 @@ async function sendMail({ to, subject, html }) {
export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, days }) { export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, days }) {
const html = ` const html = `
<div style="font-family:system-ui,Segoe UI,Helvetica,Arial,sans-serif;max-width:560px;margin:auto"> <div style="font-family:system-ui,Segoe UI,Helvetica,Arial,sans-serif;max-width:560px;margin:auto">
<h2 style="color:#051e23">Willkommen im Pfandsystem-Demo</h2> <h2 style="color:#051e23">Willkommen im Dockly-Pfandsystem-Demo</h2>
<p>Hallo ${name},</p> <p>Hallo ${name},</p>
<p>dein <strong>${days}-Tage Demo-Zugang</strong> ist bereit. Du kannst alle Funktionen <p>dein <strong>${days}-Tage Demo-Zugang</strong> ist bereit. Du kannst alle Funktionen
in Ruhe testen und eigene Beispieldaten anlegen.</p> in Ruhe testen und eigene Beispieldaten anlegen.</p>
@@ -48,20 +48,20 @@ export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, d
<p style="margin:4px 0"><strong>Tenant-Kennung:</strong> ${slug}</p> <p style="margin:4px 0"><strong>Tenant-Kennung:</strong> ${slug}</p>
</div> </div>
<p>Bitte aendere dein Passwort nach dem ersten Login.</p> <p>Bitte aendere dein Passwort nach dem ersten Login.</p>
<p style="color:#64748b;font-size:12px">Diese Mail wurde automatisch versandt vom Pfandsystem-Demo-Portal.</p> <p style="color:#64748b;font-size:12px">Diese Mail wurde automatisch versandt vom Dockly-Pfandsystem-Demo-Portal.</p>
</div>`; </div>`;
return sendMail({ to, subject: `Dein Pfandsystem-Demo-Zugang (${days} Tage)`, html }); return sendMail({ to, subject: `Dein Dockly-Pfandsystem-Demo-Zugang (${days} Tage)`, html });
} }
// Test-Endpoint Helper // Test-Endpoint Helper
export async function sendTestMail(to) { export async function sendTestMail(to) {
const html = ` const html = `
<div style="font-family:system-ui,Segoe UI,Helvetica,Arial,sans-serif;max-width:560px;margin:auto"> <div style="font-family:system-ui,Segoe UI,Helvetica,Arial,sans-serif;max-width:560px;margin:auto">
<h2 style="color:#051e23">Pfandsystem Demo - SMTP-Test</h2> <h2 style="color:#051e23">Dockly-Pfandsystem Demo - SMTP-Test</h2>
<p>Diese Test-Mail bestaetigt, dass der Mail-Versand ueber <p>Diese Test-Mail bestaetigt, dass der Mail-Versand ueber
<code>${process.env.SMTP_HOST || 'kein SMTP'}</code> funktioniert.</p> <code>${process.env.SMTP_HOST || 'kein SMTP'}</code> funktioniert.</p>
<p>Absender: <code>${FROM}</code></p> <p>Absender: <code>${FROM}</code></p>
<p>Zeitstempel: ${new Date().toISOString()}</p> <p>Zeitstempel: ${new Date().toISOString()}</p>
</div>`; </div>`;
return sendMail({ to, subject: 'Pfandsystem Demo - SMTP-Test', html }); return sendMail({ to, subject: 'Dockly-Pfandsystem Demo - SMTP-Test', html });
} }

View File

@@ -9,7 +9,7 @@
<link rel="manifest" href="/manifest.json" /> <link rel="manifest" href="/manifest.json" />
<link rel="preconnect" href="https://rsms.me/"> <link rel="preconnect" href="https://rsms.me/">
<link rel="stylesheet" href="https://rsms.me/inter/inter.css"> <link rel="stylesheet" href="https://rsms.me/inter/inter.css">
<title>Pfandsystem</title> <title>Dockly-Pfandsystem</title>
</head> </head>
<body class="bg-slate-50 antialiased"> <body class="bg-slate-50 antialiased">
<div id="root"></div> <div id="root"></div>

View File

@@ -1,6 +1,6 @@
{ {
"name": "Pfandsystem", "name": "Dockly-Pfandsystem",
"short_name": "Pfandsystem", "short_name": "Dockly-Pfand",
"start_url": ".", "start_url": ".",
"display": "standalone", "display": "standalone",
"background_color": "#f8fafc", "background_color": "#f8fafc",

View File

@@ -1,6 +1,6 @@
{ {
"name": "Pfandsystem", "name": "Dockly-Pfandsystem",
"short_name": "Pfandsystem", "short_name": "Dockly-Pfand",
"start_url": ".", "start_url": ".",
"display": "standalone", "display": "standalone",
"background_color": "#f8fafc", "background_color": "#f8fafc",

View File

@@ -27,9 +27,9 @@ export default function Login({ onLogin }) {
<div className="min-h-screen flex items-center justify-center px-4 py-12 bg-gradient-to-br from-slate-50 to-slate-100"> <div className="min-h-screen flex items-center justify-center px-4 py-12 bg-gradient-to-br from-slate-50 to-slate-100">
<div className="w-full max-w-sm"> <div className="w-full max-w-sm">
<div className="text-center mb-6"> <div className="text-center mb-6">
<img src="/pfandlogo.png" alt="Pfandsystem" <img src="/pfandlogo.png" alt="Dockly-Pfandsystem"
className="h-20 w-20 mx-auto mb-3 object-contain" /> className="h-20 w-20 mx-auto mb-3 object-contain" />
<h1 className="text-2xl font-bold tracking-tight text-brand-900">Pfandsystem</h1> <h1 className="text-2xl font-bold tracking-tight text-brand-900">Dockly-Pfandsystem</h1>
<p className="text-sm text-slate-500 mt-1">Demo-Portal</p> <p className="text-sm text-slate-500 mt-1">Demo-Portal</p>
</div> </div>

View File

@@ -37,7 +37,7 @@ export default function TopNav({ user, activeView, setActiveView, onLogout }) {
<div className="max-w-6xl mx-auto px-4 sm:px-6 flex items-center h-14"> <div className="max-w-6xl mx-auto px-4 sm:px-6 flex items-center h-14">
<div className="flex items-center gap-2 mr-6"> <div className="flex items-center gap-2 mr-6">
<img src="/pfandlogo.png" alt="" className="h-8 w-8 rounded-lg object-contain bg-white ring-1 ring-slate-200 p-0.5" /> <img src="/pfandlogo.png" alt="" className="h-8 w-8 rounded-lg object-contain bg-white ring-1 ring-slate-200 p-0.5" />
<span className="font-semibold text-slate-900">Pfandsystem</span> <span className="font-semibold text-slate-900">Dockly-Pfandsystem</span>
{user.tenant_typ === 'demo' && ( {user.tenant_typ === 'demo' && (
<span className="badge-amber ml-2">Demo</span> <span className="badge-amber ml-2">Demo</span>
)} )}

View File

@@ -27,7 +27,7 @@ export default function SuperAdmin({ user, onLogout }) {
<div className="max-w-6xl mx-auto px-4 sm:px-6 h-14 flex items-center"> <div className="max-w-6xl mx-auto px-4 sm:px-6 h-14 flex items-center">
<div className="flex items-center gap-2 flex-1"> <div className="flex items-center gap-2 flex-1">
<img src="/pfandlogo.png" alt="" className="h-8 w-8 rounded-lg object-contain bg-white ring-1 ring-slate-200 p-0.5" /> <img src="/pfandlogo.png" alt="" className="h-8 w-8 rounded-lg object-contain bg-white ring-1 ring-slate-200 p-0.5" />
<span className="font-semibold">Pfandsystem · SuperAdmin</span> <span className="font-semibold">Dockly-Pfandsystem · SuperAdmin</span>
</div> </div>
<div className="text-sm text-slate-500 mr-3 hidden sm:block">{user.email}</div> <div className="text-sm text-slate-500 mr-3 hidden sm:block">{user.email}</div>
<button onClick={onLogout} className="btn-ghost"><FaSignOutAlt /> Abmelden</button> <button onClick={onLogout} className="btn-ghost"><FaSignOutAlt /> Abmelden</button>

View File

@@ -8,8 +8,8 @@ export default defineConfig({
VitePWA({ VitePWA({
registerType: 'autoUpdate', registerType: 'autoUpdate',
manifest: { manifest: {
name: 'Pfandsystem', name: 'Dockly-Pfandsystem',
short_name: 'Pfandsystem', short_name: 'Dockly-Pfand',
start_url: '.', start_url: '.',
display: 'standalone', display: 'standalone',
background_color: '#f8fafc', background_color: '#f8fafc',