form.php
- Pfad:
src/View/prompts/form.php - Namespace: -
- Zeilen: 93 | Größe: 3,647 Bytes
- Geändert: 2025-12-27 12:46:53 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 100
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Versionen 1
-
v1
2025-12-27 12:46 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Write-Operation
Code
<?php
declare(strict_types=1);
// @responsibility: View für Prompt erstellen/bearbeiten mit HTMX-Formular
ob_start();
?>
<h1><?= $isEdit ? 'Prompt bearbeiten' : 'Neuer Prompt' ?></h1>
<nav class="breadcrumb">
<a href="/prompts">Prompts</a>
<?php if ($isEdit): ?>
<span>/</span>
<a href="/prompts/<?= $prompt['id'] ?>"><?= htmlspecialchars($prompt['name']) ?></a>
<span>/</span>
<span>Bearbeiten</span>
<?php else: ?>
<span>/</span>
<span>Neu</span>
<?php endif; ?>
</nav>
<form class="form"
hx-post="<?= $isEdit ? '/prompts/' . $prompt['id'] : '/prompts' ?>"
hx-headers='{"X-CSRF-TOKEN": "<?= $csrfToken ?>"}'
hx-disabled-elt="button[type=submit]">
<div class="form-row">
<div class="form-group form-group--large">
<label for="name">Name *</label>
<input type="text" id="name" name="name" class="form-input"
value="<?= htmlspecialchars($prompt['name'] ?? '') ?>" required>
<small class="form-help">Eindeutiger Name (z.B. "critic-faktenprufer", "content-generate")</small>
</div>
<div class="form-group form-group--small">
<label for="version">Version</label>
<input type="text" id="version" name="version" class="form-input"
value="<?= htmlspecialchars($prompt['version'] ?? '1.0') ?>">
</div>
</div>
<div class="form-group">
<label for="content">Prompt-Inhalt *</label>
<textarea id="content" name="content" class="form-textarea form-textarea--code" rows="20"><?= htmlspecialchars($prompt['content'] ?? '') ?></textarea>
<small class="form-help">
Verwende Platzhalter: <code>{fokus}</code>, <code>{content}</code>, <code>{feedback}</code>,
<code>{briefing}</code>, <code>{context}</code>, <code>{profile_text}</code>, etc.
</small>
</div>
<div class="form-group">
<label class="checkbox-label">
<input type="checkbox" name="is_active" value="1"
<?= ($prompt['is_active'] ?? 1) ? 'checked' : '' ?>>
Aktiv
</label>
<small class="form-help">Nur aktive Prompts werden fuer Generierung verwendet</small>
</div>
<div class="form-actions">
<button type="submit" class="btn btn--primary"><?= $isEdit ? 'Speichern' : 'Erstellen' ?></button>
<a href="<?= $isEdit ? '/prompts/' . $prompt['id'] : '/prompts' ?>" class="btn btn--secondary">Abbrechen</a>
<?php if ($isEdit): ?>
<button type="button"
class="btn btn--danger"
hx-post="/prompts/<?= $prompt['id'] ?>/delete"
hx-headers='{"X-CSRF-TOKEN": "<?= $csrfToken ?>"}'
hx-confirm="Prompt "<?= htmlspecialchars($prompt['name']) ?>" wirklich loeschen?"
hx-disabled-elt="this">
Loeschen
</button>
<?php endif; ?>
</div>
</form>
<style>
.form-row { display: flex; gap: 1rem; }
.form-group--large { flex: 3; }
.form-group--small { flex: 1; }
.checkbox-label { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; }
.form-actions { display: flex; gap: 0.5rem; margin-top: 1.5rem; }
.btn--danger { background: #dc2626; color: white; margin-left: auto; }
.btn--danger:hover { background: #b91c1c; }
.form-textarea--code { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 0.875rem; }
code { background: var(--bg-alt); padding: 0.125rem 0.375rem; border-radius: 3px; font-size: 0.8rem; }
</style>
<?php $content = ob_get_clean(); ?>
<?php require VIEW_PATH . '/layout.php'; ?>