{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/critics\/form.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/critics\/form.php",
"content": "<?php ob_start(); ?>\n\n<h1><?= $isEdit ? 'Critic bearbeiten' : 'Neuer Critic' ?><\/h1>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/critics\">Critics<\/a>\n <?php if ($isEdit): ?>\n <span>\/<\/span>\n <a href=\"\/critics\/<?= $critic['id'] ?>\"><?= htmlspecialchars($critic['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 ? '\/critics\/' . $critic['id'] : '\/critics' ?>\" class=\"form\">\n <?= $csrfField ?>\n\n <div class=\"form-group\">\n <label for=\"name\">Name *<\/label>\n <input type=\"text\" id=\"name\" name=\"name\" class=\"form-input\"\n value=\"<?= htmlspecialchars($critic['name'] ?? '') ?>\" required>\n <small class=\"form-help\">Eindeutiger Name des Critics (z.B. \"Faktenprüfer\", \"Stilist\")<\/small>\n <\/div>\n\n <div class=\"form-group\">\n <label for=\"fokus\">Fokus-Bereiche (pro Zeile einer)<\/label>\n <textarea id=\"fokus\" name=\"fokus\" class=\"form-textarea\" rows=\"5\"><?php\n $fokus = [];\nif (!empty($critic['fokus'])) {\n $fokus = json_decode($critic['fokus'], true) ?: [];\n}\necho htmlspecialchars(implode(\"\\n\", $fokus));\n?><\/textarea>\n <small class=\"form-help\">Worauf der Critic bei der Analyse achten soll (z.B. \"Quellenvalidierung\", \"Logische Konsistenz\")<\/small>\n <\/div>\n\n <div class=\"form-group\">\n <label for=\"prompt_id\">Prompt-Template<\/label>\n <select id=\"prompt_id\" name=\"prompt_id\" class=\"form-select\">\n <option value=\"\">-- Generischer Prompt --<\/option>\n <?php foreach ($prompts as $prompt): ?>\n <option value=\"<?= $prompt['id'] ?>\" <?= ($critic['prompt_id'] ?? '') == $prompt['id'] ? 'selected' : '' ?>>\n <?= htmlspecialchars($prompt['name']) ?> (v<?= $prompt['version'] ?>)\n <\/option>\n <?php endforeach; ?>\n <\/select>\n <small class=\"form-help\">Welcher Prompt-Template für diesen Critic verwendet werden soll<\/small>\n <\/div>\n\n <div class=\"form-row\">\n <div class=\"form-group form-group--half\">\n <label for=\"sort_order\">Reihenfolge<\/label>\n <input type=\"number\" id=\"sort_order\" name=\"sort_order\" class=\"form-input\"\n value=\"<?= $critic['sort_order'] ?? 0 ?>\" min=\"0\">\n <small class=\"form-help\">Niedrigere Werte werden zuerst ausgeführt<\/small>\n <\/div>\n\n <div class=\"form-group form-group--half\">\n <label class=\"checkbox-label\">\n <input type=\"checkbox\" name=\"is_active\" value=\"1\"\n <?= ($critic['is_active'] ?? 1) ? 'checked' : '' ?>>\n Aktiv\n <\/label>\n <small class=\"form-help\">Nur aktive Critics werden bei Critique-Runden verwendet<\/small>\n <\/div>\n <\/div>\n\n <div class=\"form-actions\">\n <button type=\"submit\" class=\"btn btn--primary\"><?= $isEdit ? 'Speichern' : 'Erstellen' ?><\/button>\n <a href=\"<?= $isEdit ? '\/critics\/' . $critic['id'] : '\/critics' ?>\" 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=\"\/critics\/<?= $critic['id'] ?>\/delete\" style=\"display:none\">\n <?= $csrfField ?>\n<\/form>\n\n<script>\nfunction confirmDelete() {\n if (confirm('Critic \"<?= addslashes($critic['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--half { 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<\/style>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"numLines": 109,
"startLine": 1,
"totalLines": 109
}
}
}