{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/contracts\/index.php"
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/contracts\/index.php",
"content": "<?php ob_start(); ?>\n\n<h1>Contracts<\/h1>\n\n<div class=\"stats-grid\">\n <div class=\"stat-card\">\n <span class=\"stat-card__value\"><?= $stats['total'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Gesamt<\/span>\n <\/div>\n <div class=\"stat-card stat-card--success\">\n <span class=\"stat-card__value\"><?= $stats['active'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Aktiv<\/span>\n <\/div>\n <div class=\"stat-card stat-card--warning\">\n <span class=\"stat-card__value\"><?= $stats['draft'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Entwurf<\/span>\n <\/div>\n <div class=\"stat-card stat-card--muted\">\n <span class=\"stat-card__value\"><?= $stats['deprecated'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Deprecated<\/span>\n <\/div>\n<\/div>\n\n<div class=\"page-actions\">\n <a href=\"\/contracts\/new\" class=\"btn btn--primary\">Neuer Contract<\/a>\n<\/div>\n\n<h2>Contracts<\/h2>\n<div class=\"filters\">\n <input type=\"search\" id=\"contract-search\" class=\"form-input\" placeholder=\"Durchsuchen...\">\n <select id=\"filter-status\" class=\"form-select--inline\">\n <option value=\"\">Alle Status<\/option>\n <option value=\"active\">Aktiv<\/option>\n <option value=\"draft\">Entwurf<\/option>\n <option value=\"deprecated\">Deprecated<\/option>\n <\/select>\n<\/div>\n\n<table id=\"contract-table\" data-sortable>\n <thead>\n <tr>\n <th data-sort=\"id\">ID<\/th>\n <th data-sort=\"name\">Name<\/th>\n <th data-sort=\"version\">Version<\/th>\n <th data-sort=\"status\">Status<\/th>\n <th data-sort=\"scope\">Scope<\/th>\n <th data-sort=\"updated_at\">Aktualisiert<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php if (!empty($contracts)): ?>\n <?php foreach ($contracts as $contract): ?>\n <tr>\n <td><a href=\"\/contracts\/<?= $contract['id'] ?>\"><?= $contract['id'] ?><\/a><\/td>\n <td><a href=\"\/contracts\/<?= $contract['id'] ?>\"><?= htmlspecialchars($contract['name']) ?><\/a><\/td>\n <td><?= htmlspecialchars($contract['version']) ?><\/td>\n <td><span class=\"badge badge--<?= $contract['status'] ?>\"><?= $contract['status'] ?><\/span><\/td>\n <td><?= htmlspecialchars(substr($contract['scope_description'] ?? '', 0, 50)) ?><?= strlen($contract['scope_description'] ?? '') > 50 ? '...' : '' ?><\/td>\n <td><?= substr($contract['updated_at'], 0, 16) ?><\/td>\n <\/tr>\n <?php endforeach; ?>\n <?php else: ?>\n <tr><td colspan=\"6\" class=\"empty-state empty-state--small\">Keine Contracts vorhanden<\/td><\/tr>\n <?php endif; ?>\n <\/tbody>\n<\/table>\n\n<p class=\"links-bar\">\n <a href=\"\/docs\/modul\/contracts\">Dokumentation<\/a>\n<\/p>\n\n<script type=\"module\">\nimport { init } from '\/js\/components\/data-table.js';\n\nconst dataTable = init({\n clock: { now_epoch_ms_utc: () => Date.now() },\n logger: console,\n ui: {\n showMessage: (msg) => { console.log(msg.type + ': ' + msg.text); },\n disableFeature: (key) => { console.warn('Feature disabled: ' + key); },\n offerRetry: () => Promise.resolve(false)\n },\n runId: crypto.randomUUID()\n});\n\ndataTable.create('contract-table', {\n searchInput: 'contract-search',\n pageSize: 10,\n filters: {\n 'filter-status': 3\n }\n});\n<\/script>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"numLines": 97,
"startLine": 1,
"totalLines": 97
}
}
}