{
"tool_response": {
"type": "update",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/prompts\/form.php",
"content": "<?php\n\ndeclare(strict_types=1);\n\n\/\/ @responsibility: View für Prompt erstellen\/bearbeiten mit HTMX-Formular\n\nob_start();\n?>\n\n<h1><?= $isEdit ? 'Prompt bearbeiten' : 'Neuer Prompt' ?><\/h1>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/prompts\">Prompts<\/a>\n <?php if ($isEdit): ?>\n <span>\/<\/span>\n <a href=\"\/prompts\/<?= $prompt['id'] ?>\"><?= htmlspecialchars($prompt['name']) ?><\/a>\n <span>\/<\/span>\n <span>Bearbeiten<\/span>\n <?php else: ?>\n <span>\/<\/span>\n <span>Neu<\/span>\n <?php endif; ?>\n<\/nav>\n\n<form class=\"form\"\n hx-post=\"<?= $isEdit ? '\/prompts\/' . $prompt['id'] : '\/prompts' ?>\"\n hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n hx-disabled-elt=\"button[type=submit]\">\n\n <div class=\"form-row\">\n <div class=\"form-group form-group--large\">\n <label for=\"name\">Name *<\/label>\n <input type=\"text\" id=\"name\" name=\"name\" class=\"form-input\"\n value=\"<?= htmlspecialchars($prompt['name'] ?? '') ?>\" required>\n <small class=\"form-help\">Eindeutiger Name (z.B. \"critic-faktenprufer\", \"content-generate\")<\/small>\n <\/div>\n\n <div class=\"form-group form-group--small\">\n <label for=\"version\">Version<\/label>\n <input type=\"text\" id=\"version\" name=\"version\" class=\"form-input\"\n value=\"<?= htmlspecialchars($prompt['version'] ?? '1.0') ?>\">\n <\/div>\n <\/div>\n\n <div class=\"form-group\">\n <label for=\"content\">Prompt-Inhalt *<\/label>\n <textarea id=\"content\" name=\"content\" class=\"form-textarea form-textarea--code\" rows=\"20\"><?= htmlspecialchars($prompt['content'] ?? '') ?><\/textarea>\n <small class=\"form-help\">\n Verwende Platzhalter: <code>{fokus}<\/code>, <code>{content}<\/code>, <code>{feedback}<\/code>,\n <code>{briefing}<\/code>, <code>{context}<\/code>, <code>{profile_text}<\/code>, etc.\n <\/small>\n <\/div>\n\n <div class=\"form-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" name=\"is_active\" value=\"1\"\n <?= ($prompt['is_active'] ?? 1) ? 'checked' : '' ?>>\n Aktiv\n <\/label>\n <small class=\"form-help\">Nur aktive Prompts werden fuer Generierung verwendet<\/small>\n <\/div>\n\n <div class=\"form-actions\">\n <button type=\"submit\" class=\"btn btn--primary\"><?= $isEdit ? 'Speichern' : 'Erstellen' ?><\/button>\n <a href=\"<?= $isEdit ? '\/prompts\/' . $prompt['id'] : '\/prompts' ?>\" class=\"btn btn--secondary\">Abbrechen<\/a>\n <?php if ($isEdit): ?>\n <button type=\"button\"\n class=\"btn btn--danger\"\n hx-post=\"\/prompts\/<?= $prompt['id'] ?>\/delete\"\n hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'\n hx-confirm=\"Prompt "<?= htmlspecialchars($prompt['name']) ?>" wirklich loeschen?\"\n hx-disabled-elt=\"this\">\n Loeschen\n <\/button>\n <?php endif; ?>\n <\/div>\n<\/form>\n\n<style>\n.form-row { display: flex; gap: 1rem; }\n.form-group--large { flex: 3; }\n.form-group--small { flex: 1; }\n.checkbox-label { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; }\n.form-actions { display: flex; gap: 0.5rem; margin-top: 1.5rem; }\n.btn--danger { background: #dc2626; color: white; margin-left: auto; }\n.btn--danger:hover { background: #b91c1c; }\n.form-textarea--code { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 0.875rem; }\ncode { background: var(--bg-alt); padding: 0.125rem 0.375rem; border-radius: 3px; font-size: 0.8rem; }\n<\/style>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"structuredPatch": [
{
"oldStart": 1,
"oldLines": 5,
"newStart": 1,
"newLines": 12,
"lines": [
"-<?php ob_start(); ?>",
"+<?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\">"
]
},
{
"oldStart": 15,
"oldLines": 13,
"newStart": 22,
"newLines": 11,
"lines": [
" <?php endif; ?>",
" <\/nav>",
" ",
"-<?php if (isset($_SESSION['error'])): ?>",
"-<div class=\"alert alert--error\"><?= htmlspecialchars($_SESSION['error']) ?><\/div>",
"-<?php unset($_SESSION['error']); endif; ?>",
"+<form class=\"form\"",
"+ hx-post=\"<?= $isEdit ? '\/prompts\/' . $prompt['id'] : '\/prompts' ?>\"",
"+ hx-headers='{\"X-CSRF-TOKEN\": \"<?= $csrfToken ?>\"}'",
"+ hx-disabled-elt=\"button[type=submit]\">",
" ",
"-<form method=\"post\" action=\"<?= $isEdit ? '\/prompts\/' . $prompt['id'] : '\/prompts' ?>\" class=\"form\">",
"- <?= $csrfField ?>",
"-",
" <div class=\"form-row\">",
" <div class=\"form-group form-group--large\">",
" <label for=\"name\">Name *<\/label>"
]
},
{
"oldStart": 52,
"oldLines": 32,
"newStart": 57,
"newLines": 25,
"lines": [
" <?= ($prompt['is_active'] ?? 1) ? 'checked' : '' ?>>",
" Aktiv",
" <\/label>",
"- <small class=\"form-help\">Nur aktive Prompts werden für Generierung verwendet<\/small>",
"+ <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\" onclick=\"confirmDelete()\">Löschen<\/button>",
"+ <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>",
" ",
"-<?php if ($isEdit): ?>",
"-<form id=\"delete-form\" method=\"post\" action=\"\/prompts\/<?= $prompt['id'] ?>\/delete\" style=\"display:none\">",
"- <?= $csrfField ?>",
"-<\/form>",
"-",
"-<script>",
"-function confirmDelete() {",
"- if (confirm('Prompt \"<?= addslashes($prompt['name']) ?>\" wirklich löschen?')) {",
"- document.getElementById('delete-form').submit();",
"- }",
"-}",
"-<\/script>",
"-<?php endif; ?>",
"-",
" <style>",
" .form-row { display: flex; gap: 1rem; }",
" .form-group--large { flex: 3; }"
]
}
],
"originalFile": "<?php ob_start(); ?>\n\n<h1><?= $isEdit ? 'Prompt bearbeiten' : 'Neuer Prompt' ?><\/h1>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/prompts\">Prompts<\/a>\n <?php if ($isEdit): ?>\n <span>\/<\/span>\n <a href=\"\/prompts\/<?= $prompt['id'] ?>\"><?= htmlspecialchars($prompt['name']) ?><\/a>\n <span>\/<\/span>\n <span>Bearbeiten<\/span>\n <?php else: ?>\n <span>\/<\/span>\n <span>Neu<\/span>\n <?php endif; ?>\n<\/nav>\n\n<?php if (isset($_SESSION['error'])): ?>\n<div class=\"alert alert--error\"><?= htmlspecialchars($_SESSION['error']) ?><\/div>\n<?php unset($_SESSION['error']); endif; ?>\n\n<form method=\"post\" action=\"<?= $isEdit ? '\/prompts\/' . $prompt['id'] : '\/prompts' ?>\" class=\"form\">\n <?= $csrfField ?>\n\n <div class=\"form-row\">\n <div class=\"form-group form-group--large\">\n <label for=\"name\">Name *<\/label>\n <input type=\"text\" id=\"name\" name=\"name\" class=\"form-input\"\n value=\"<?= htmlspecialchars($prompt['name'] ?? '') ?>\" required>\n <small class=\"form-help\">Eindeutiger Name (z.B. \"critic-faktenprufer\", \"content-generate\")<\/small>\n <\/div>\n\n <div class=\"form-group form-group--small\">\n <label for=\"version\">Version<\/label>\n <input type=\"text\" id=\"version\" name=\"version\" class=\"form-input\"\n value=\"<?= htmlspecialchars($prompt['version'] ?? '1.0') ?>\">\n <\/div>\n <\/div>\n\n <div class=\"form-group\">\n <label for=\"content\">Prompt-Inhalt *<\/label>\n <textarea id=\"content\" name=\"content\" class=\"form-textarea form-textarea--code\" rows=\"20\"><?= htmlspecialchars($prompt['content'] ?? '') ?><\/textarea>\n <small class=\"form-help\">\n Verwende Platzhalter: <code>{fokus}<\/code>, <code>{content}<\/code>, <code>{feedback}<\/code>,\n <code>{briefing}<\/code>, <code>{context}<\/code>, <code>{profile_text}<\/code>, etc.\n <\/small>\n <\/div>\n\n <div class=\"form-group\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" name=\"is_active\" value=\"1\"\n <?= ($prompt['is_active'] ?? 1) ? 'checked' : '' ?>>\n Aktiv\n <\/label>\n <small class=\"form-help\">Nur aktive Prompts werden für Generierung verwendet<\/small>\n <\/div>\n\n <div class=\"form-actions\">\n <button type=\"submit\" class=\"btn btn--primary\"><?= $isEdit ? 'Speichern' : 'Erstellen' ?><\/button>\n <a href=\"<?= $isEdit ? '\/prompts\/' . $prompt['id'] : '\/prompts' ?>\" class=\"btn btn--secondary\">Abbrechen<\/a>\n <?php if ($isEdit): ?>\n <button type=\"button\" class=\"btn btn--danger\" onclick=\"confirmDelete()\">Löschen<\/button>\n <?php endif; ?>\n <\/div>\n<\/form>\n\n<?php if ($isEdit): ?>\n<form id=\"delete-form\" method=\"post\" action=\"\/prompts\/<?= $prompt['id'] ?>\/delete\" style=\"display:none\">\n <?= $csrfField ?>\n<\/form>\n\n<script>\nfunction confirmDelete() {\n if (confirm('Prompt \"<?= addslashes($prompt['name']) ?>\" wirklich löschen?')) {\n document.getElementById('delete-form').submit();\n }\n}\n<\/script>\n<?php endif; ?>\n\n<style>\n.form-row { display: flex; gap: 1rem; }\n.form-group--large { flex: 3; }\n.form-group--small { flex: 1; }\n.checkbox-label { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; }\n.form-actions { display: flex; gap: 0.5rem; margin-top: 1.5rem; }\n.btn--danger { background: #dc2626; color: white; margin-left: auto; }\n.btn--danger:hover { background: #b91c1c; }\n.form-textarea--code { font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; font-size: 0.875rem; }\ncode { background: var(--bg-alt); padding: 0.125rem 0.375rem; border-radius: 3px; font-size: 0.8rem; }\n<\/style>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n"
}
}