Erweitere die Verwaltung von Identitäten: Füge Unterstützung für URL-Felder hinzu, aktualisiere die Benutzeroberfläche zur Bearbeitung von Feldern und verbessere die Darstellung in Tabellenform.
This commit is contained in:
124
www/admin.php
124
www/admin.php
@@ -234,6 +234,7 @@ if ($action === 'identity_edit') {
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
|
||||
// Identität umbenennen
|
||||
if (isset($_POST['rename'])) {
|
||||
$sql->set(
|
||||
"UPDATE identities SET name = ? WHERE id = ?",
|
||||
@@ -242,14 +243,46 @@ if ($action === 'identity_edit') {
|
||||
);
|
||||
}
|
||||
|
||||
// Neues Feld
|
||||
if (isset($_POST['add_field'])) {
|
||||
$sql->set(
|
||||
"INSERT INTO identity_fields (identity_id, field_key, field_value)
|
||||
VALUES (?, ?, ?)",
|
||||
"iss",
|
||||
[$id, trim($_POST['key']), trim($_POST['value'])]
|
||||
"INSERT INTO identity_fields (identity_id, field_key, field_value, typ)
|
||||
VALUES (?, ?, ?, ?)",
|
||||
"isss",
|
||||
[
|
||||
$id,
|
||||
trim($_POST['key']),
|
||||
trim($_POST['value']),
|
||||
$_POST['typ'] ?? 'single'
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
// Feld aktualisieren
|
||||
if (isset($_POST['update_field'])) {
|
||||
$sql->set(
|
||||
"UPDATE identity_fields
|
||||
SET field_key = ?, field_value = ?, typ = ?
|
||||
WHERE id = ? AND identity_id = ?",
|
||||
"sssii",
|
||||
[
|
||||
trim($_POST['key']),
|
||||
trim($_POST['value']),
|
||||
$_POST['typ'] ?? 'single',
|
||||
(int)$_POST['field_id'],
|
||||
$id
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
// Feld löschen
|
||||
if (isset($_POST['delete_field'])) {
|
||||
$sql->set(
|
||||
"DELETE FROM identity_fields
|
||||
WHERE id = ? AND identity_id = ?",
|
||||
"ii",
|
||||
[(int)$_POST['field_id'], $id]
|
||||
);
|
||||
//TODO typ
|
||||
}
|
||||
|
||||
header("Location: admin.php?action=identity_edit&id=$id");
|
||||
@@ -257,14 +290,19 @@ if ($action === 'identity_edit') {
|
||||
}
|
||||
|
||||
$fields = $sql->get(
|
||||
"SELECT * FROM identity_fields WHERE identity_id = ?",
|
||||
"SELECT * FROM identity_fields WHERE identity_id = ? ORDER BY id ASC",
|
||||
"i",
|
||||
[$id]
|
||||
);
|
||||
?>
|
||||
<!doctype html>
|
||||
<html><head><meta charset="utf-8"><title>Identität bearbeiten</title></head>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Identität bearbeiten</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1><?= htmlspecialchars($identity['name']) ?></h1>
|
||||
|
||||
<form method="post">
|
||||
@@ -273,23 +311,72 @@ if ($action === 'identity_edit') {
|
||||
</form>
|
||||
|
||||
<h2>Felder</h2>
|
||||
<ul>
|
||||
<?php foreach ($fields as $f): ?>
|
||||
<li>
|
||||
<strong><?= htmlspecialchars($f['field_key']) ?>:</strong>
|
||||
<?= htmlspecialchars($f['field_value']) ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<table border="1" cellpadding="6" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Wert</th>
|
||||
<th>Typ</th>
|
||||
<th>Aktion</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php foreach ($fields as $f): ?>
|
||||
<tr>
|
||||
<form method="post">
|
||||
<td>
|
||||
<input name="key"
|
||||
value="<?= htmlspecialchars($f['field_key']) ?>">
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($f['typ'] === 'multi'): ?>
|
||||
<textarea name="value" rows="3" style="width:100%"><?= htmlspecialchars($f['field_value']) ?></textarea>
|
||||
<?php else: ?>
|
||||
<input name="value"
|
||||
value="<?= htmlspecialchars($f['field_value']) ?>"
|
||||
style="width:100%">
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<select name="typ">
|
||||
<option value="single" <?= $f['typ']==='single'?'selected':'' ?>>einzeilig</option>
|
||||
<option value="multi" <?= $f['typ']==='multi'?'selected':'' ?>>mehrzeilig</option>
|
||||
<option value="file" <?= $f['typ']==='file'?'selected':'' ?>>Datei</option>
|
||||
<option value="url" <?= $f['typ']==='url'?'selected':'' ?>>URL</option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="field_id" value="<?= (int)$f['id'] ?>">
|
||||
<button name="update_field">💾</button>
|
||||
<button name="delete_field"
|
||||
onclick="return confirm('Feld wirklich löschen?')">🗑</button>
|
||||
</td>
|
||||
</form>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Neues Feld</h3>
|
||||
<form method="post">
|
||||
<input name="key" placeholder="Feldname" required>
|
||||
<input name="value" placeholder="Wert" required>
|
||||
<input name="value" placeholder="Wert">
|
||||
<select name="typ">
|
||||
<option value="single">einzeilig</option>
|
||||
<option value="multi">mehrzeilig</option>
|
||||
<option value="file">Datei</option>
|
||||
<option value="url">URL</option>
|
||||
</select>
|
||||
<button name="add_field">➕ Feld hinzufügen</button>
|
||||
</form>
|
||||
|
||||
<p><a href="admin.php">← zurück</a></p>
|
||||
</body></html>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
exit;
|
||||
}
|
||||
@@ -427,8 +514,6 @@ $identities = $sql->get("SELECT * FROM identities ORDER BY id DESC");
|
||||
|
||||
<h1>Admin Dashboard</h1>
|
||||
|
||||
<p><a href="admin.php?action=identity_create">➕ Identität anlegen</a></p>
|
||||
|
||||
<h2>Alle UUIDs</h2>
|
||||
<?php if (!empty($tokens)): ?>
|
||||
<table border="1" cellpadding="5" cellspacing="0">
|
||||
@@ -458,6 +543,7 @@ $identities = $sql->get("SELECT * FROM identities ORDER BY id DESC");
|
||||
<hr>
|
||||
|
||||
<h2>Identitäten</h2>
|
||||
<p><a href="admin.php?action=identity_create">➕ Identität anlegen</a></p>
|
||||
<ul>
|
||||
<?php foreach ($identities as $i): ?>
|
||||
<li>
|
||||
|
||||
Reference in New Issue
Block a user