design anpassung

This commit is contained in:
2026-06-23 00:06:31 +02:00
parent 1891ec0a51
commit cbea23083d
30 changed files with 785 additions and 547 deletions
+19 -28
View File
@@ -1,18 +1,9 @@
<?php require __DIR__ . '/../partials/layout-top.php'; ?>
<section class="page-head">
<span class="eyebrow">Pilot & Integration</span>
<h1>RFID-Roadmap und Event-Inbox</h1>
<p>Das MVP speichert Geraete, Karten und rohe Events bereits produktionsnah, ohne die spaetere Hardwareentscheidung vorwegzunehmen. Dieser Bereich bleibt klar beim Standortteam und der Pilotbetreuung.</p>
</section>
<section class="card">
<span class="eyebrow">Export & Korrekturen</span>
<ul class="feature-list">
<li>Event-Export oder Inbox-Download: Platzhalter fuer spaetere Support-Links</li>
<li>Karten- und Geraetekorrekturen: Platzhalter fuer Hinweise direkt an den Tabellen</li>
<li>Member-Self-Service blendet RFID-Setup bewusst aus, bis der Pilot weiter ist</li>
</ul>
<span class="eyebrow">RFID-Kaffeekasse</span>
<h1>Kartenleser einrichten</h1>
<p>Richten Sie Kartenleser ein und verbinden Sie Karten mit Mitgliedern. Eingelesene Karten erscheinen unten als Ereignisse.</p>
</section>
<div class="grid-three">
@@ -20,14 +11,14 @@
<?= csrf_field($csrf) ?>
<input type="hidden" name="action" value="create_device">
<label>
<span>Geraetename</span>
<span>Name für diesen Leser</span>
<input type="text" name="name" value="<?= e((string) old('name')) ?>" required>
</label>
<label>
<span>Standort</span>
<span>Ort am Standort</span>
<input type="text" name="location_label" value="<?= e((string) old('location_label')) ?>">
</label>
<button class="button button-primary" type="submit">RFID-Geraet vorbereiten</button>
<button class="button button-primary" type="submit">Kartenleser anlegen</button>
</form>
<form class="card form-card" method="post" action="<?= e(tenant_url($tenant['slug'], 'rfid')) ?>">
@@ -42,26 +33,26 @@
</select>
</label>
<label>
<span>Karten-UID</span>
<span>Kartennummer</span>
<input type="text" name="uid" value="<?= e((string) old('uid')) ?>" required>
</label>
<label>
<span>Label</span>
<span>Kartenlabel</span>
<input type="text" name="label" value="<?= e((string) old('label')) ?>">
</label>
<button class="button button-primary" type="submit">Karte zuweisen</button>
<button class="button button-primary" type="submit">Karte mit Mitglied verbinden</button>
</form>
<section class="card">
<span class="eyebrow">API</span>
<p class="muted">POST `/api/rfid/intake` mit JSON-Body:</p>
<span class="eyebrow">Schnittstelle für den Leser</span>
<p class="muted">Der Leser sendet Ereignisse in diesem Format:</p>
<pre class="code-block">{
"device_token": "...",
"uid": "04AABBCCDD",
"event_id": "reader-0001",
"ts": "2026-06-15T09:30:00Z"
}</pre>
<p class="muted">Events werden tenant-scharf gespeichert und spaeter in Buchungsregeln ueberfuehrt.</p>
<p class="muted">Ein Ereignis ist noch keine Kaffeebuchung. Es zeigt zuerst, welche Karte an welchem Leser erkannt wurde.</p>
</section>
</div>
@@ -70,16 +61,16 @@
<table>
<thead>
<tr>
<th>Geraet</th>
<th>Kartenleser</th>
<th>Standort</th>
<th>Status</th>
<th>Token</th>
<th>Geräte-Token</th>
</tr>
</thead>
<tbody>
<?php if ($devices === []): ?>
<tr>
<td colspan="4">Noch keine RFID-Geraete vorbereitet.</td>
<td class="table-empty" colspan="4">Noch kein Kartenleser angelegt. Legen Sie oben den ersten Leser an.</td>
</tr>
<?php endif; ?>
<?php foreach ($devices as $device): ?>
@@ -106,7 +97,7 @@
<tbody>
<?php if ($tags === []): ?>
<tr>
<td colspan="4">Noch keine RFID-Karten zugewiesen.</td>
<td class="table-empty" colspan="4">Noch keine Karten mit Mitgliedern verbunden.</td>
</tr>
<?php endif; ?>
<?php foreach ($tags as $tag): ?>
@@ -127,15 +118,15 @@
<thead>
<tr>
<th>Zeit</th>
<th>Geraet</th>
<th>Kartenleser</th>
<th>Status</th>
<th>Event-ID</th>
<th>Ereignis-ID</th>
</tr>
</thead>
<tbody>
<?php if ($events === []): ?>
<tr>
<td colspan="4">Noch keine RFID-Events empfangen.</td>
<td class="table-empty" colspan="4">Noch keine Karte wurde von einem Leser gemeldet.</td>
</tr>
<?php endif; ?>
<?php foreach ($events as $event): ?>