From 963d29fd4ecf2f2c3c50aa87bb953a1ecf012fa5 Mon Sep 17 00:00:00 2001 From: Troy Grunt Date: Tue, 3 Feb 2026 14:05:26 +0100 Subject: [PATCH] =?UTF-8?q?Erweitere=20die=20Verwaltung=20von=20Identit?= =?UTF-8?q?=C3=A4ten:=20F=C3=BCge=20Unterst=C3=BCtzung=20f=C3=BCr=20URL-Fe?= =?UTF-8?q?lder=20hinzu,=20aktualisiere=20die=20Benutzeroberfl=C3=A4che=20?= =?UTF-8?q?zur=20Bearbeitung=20von=20Feldern=20und=20verbessere=20die=20Da?= =?UTF-8?q?rstellung=20in=20Tabellenform.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/init/001_schema.sql | 2 +- www/admin.php | 124 ++++++++++++++++++++++++++++++++++------- 2 files changed, 106 insertions(+), 20 deletions(-) diff --git a/db/init/001_schema.sql b/db/init/001_schema.sql index 973f710..63d858e 100644 --- a/db/init/001_schema.sql +++ b/db/init/001_schema.sql @@ -9,7 +9,7 @@ CREATE TABLE identities ( CREATE TABLE identity_fields ( id INT AUTO_INCREMENT PRIMARY KEY, identity_id INT NOT NULL, - typ ENUM('single','multi','file') NULL, + typ ENUM('single','multi','file','url') NULL, field_key VARCHAR(50) NOT NULL, field_value TEXT NOT NULL, FOREIGN KEY (identity_id) diff --git a/www/admin.php b/www/admin.php index 0eac413..6912db5 100644 --- a/www/admin.php +++ b/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] ); ?> -Identität bearbeiten + + + +Identität bearbeiten + +

@@ -273,23 +311,72 @@ if ($action === 'identity_edit') {

Felder

- + + + + + + + + + + + + + + + + + + + + + + + +
KeyWertTypAktion
+ + + + + + + + + + + + + +
+ +

Neues Feld

- + +

← zurück

- + + + get("SELECT * FROM identities ORDER BY id DESC");

Admin Dashboard

-

➕ Identität anlegen

-

Alle UUIDs

@@ -458,6 +543,7 @@ $identities = $sql->get("SELECT * FROM identities ORDER BY id DESC");

Identitäten

+

➕ Identität anlegen