{
"tool_response": {
"type": "update",
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/View\/semantic-explorer\/relationen.php",
"content": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/\">Home<\/a> » <a href=\"\/explorer\">Explorer<\/a> » <a href=\"\/semantic-explorer\">Semantic Explorer<\/a> » Relationen\n<\/nav>\n\n<h1>Relationen<\/h1>\n<p>Beziehungen zwischen Entitaeten.<\/p>\n\n<div class=\"stats-grid\">\n <div class=\"stat-card stat-card--primary\">\n <span class=\"stat-card__value\"><?= $stats['total'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Relationen<\/span>\n <\/div>\n <div class=\"stat-card\">\n <span class=\"stat-card__value\"><?= $stats['sources'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Quellen<\/span>\n <\/div>\n <div class=\"stat-card\">\n <span class=\"stat-card__value\"><?= $stats['targets'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Ziele<\/span>\n <\/div>\n<\/div>\n\n<div class=\"filters\">\n <input type=\"search\" id=\"relations-search\" class=\"form-input\" placeholder=\"Durchsuchen...\">\n <select id=\"filter-type\" class=\"form-select--inline\">\n <option value=\"\">Alle Typen<\/option>\n <?php foreach ($relationTypes as $rt): ?>\n <option value=\"<?= strtolower(htmlspecialchars($rt['relation_type'])) ?>\"><?= htmlspecialchars($rt['relation_type']) ?> (<?= $rt['count'] ?>)<\/option>\n <?php endforeach; ?>\n <\/select>\n<\/div>\n\n<?php if (!empty($relations)): ?>\n<table id=\"relations-table\" data-sortable>\n <thead>\n <tr>\n <th data-sort=\"source_name\">Quelle<\/th>\n <th data-sort=\"relation_type\">Relation<\/th>\n <th data-sort=\"target_name\">Ziel<\/th>\n <th data-sort=\"strength\">Staerke<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php foreach ($relations as $r): ?>\n <tr>\n <td>\n <a href=\"\/semantic-explorer\/entitaeten\/<?= $r['source_entity_id'] ?>\"><?= htmlspecialchars($r['source_name']) ?><\/a>\n <span class=\"badge badge--small\"><?= $r['source_type'] ?><\/span>\n <\/td>\n <td><span class=\"badge\"><?= htmlspecialchars($r['relation_type']) ?><\/span><\/td>\n <td>\n <a href=\"\/semantic-explorer\/entitaeten\/<?= $r['target_entity_id'] ?>\"><?= htmlspecialchars($r['target_name']) ?><\/a>\n <span class=\"badge badge--small\"><?= $r['target_type'] ?><\/span>\n <\/td>\n <td><?= number_format($r['strength'] * 100, 0) ?>%<\/td>\n <\/tr>\n <?php endforeach; ?>\n <\/tbody>\n<\/table>\n<?php else: ?>\n<p class=\"empty-state\">Keine Relationen gefunden. Fuehren Sie die semantische Analyse aus.<\/p>\n<?php endif; ?>\n\n<p class=\"links-bar\">\n <a href=\"\/semantic-explorer\">Zurueck zum Explorer<\/a> |\n <a href=\"\/semantic-explorer\/entitaeten\">Entitaeten<\/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('relations-table', {\n searchInput: 'relations-search',\n pageSize: 20,\n filters: {\n 'filter-type': 1\n }\n});\n<\/script>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n",
"structuredPatch": [
{
"oldStart": 22,
"oldLines": 23,
"newStart": 22,
"newLines": 18,
"lines": [
" <\/div>",
" <\/div>",
" ",
"-<?php if (!empty($relationTypes)): ?>",
"-<h2>Relationstypen<\/h2>",
"-<div class=\"tags\">",
"- <?php foreach ($relationTypes as $rt): ?>",
"- <a href=\"?type=<?= urlencode($rt['relation_type']) ?>\" class=\"badge <?= $currentType === $rt['relation_type'] ? 'badge--primary' : '' ?>\">",
"- <?= htmlspecialchars($rt['relation_type']) ?> (<?= $rt['count'] ?>)",
"- <\/a>",
"- <?php endforeach; ?>",
"- <?php if ($currentType): ?>",
"- <a href=\"\/semantic-explorer\/relationen\" class=\"btn btn--small\">Alle<\/a>",
"- <?php endif; ?>",
"+<div class=\"filters\">",
"+ <input type=\"search\" id=\"relations-search\" class=\"form-input\" placeholder=\"Durchsuchen...\">",
"+ <select id=\"filter-type\" class=\"form-select--inline\">",
"+ <option value=\"\">Alle Typen<\/option>",
"+ <?php foreach ($relationTypes as $rt): ?>",
"+ <option value=\"<?= strtolower(htmlspecialchars($rt['relation_type'])) ?>\"><?= htmlspecialchars($rt['relation_type']) ?> (<?= $rt['count'] ?>)<\/option>",
"+ <?php endforeach; ?>",
"+ <\/select>",
" <\/div>",
"-<?php endif; ?>",
" ",
" <?php if (!empty($relations)): ?>",
"-<h2>Relationen<?= $currentType ? ': ' . htmlspecialchars($currentType) : '' ?><\/h2>",
"-<table data-sortable>",
"+<table id=\"relations-table\" data-sortable>",
" <thead>",
" <tr>",
" <th data-sort=\"source_name\">Quelle<\/th>"
]
},
{
"oldStart": 65,
"oldLines": 7,
"newStart": 60,
"newLines": 7,
"lines": [
" <\/tbody>",
" <\/table>",
" <?php else: ?>",
"-<p>Keine Relationen gefunden. Fuehren Sie die semantische Analyse aus.<\/p>",
"+<p class=\"empty-state\">Keine Relationen gefunden. Fuehren Sie die semantische Analyse aus.<\/p>",
" <?php endif; ?>",
" ",
" <p class=\"links-bar\">"
]
},
{
"oldStart": 73,
"oldLines": 5,
"newStart": 68,
"newLines": 28,
"lines": [
" <a href=\"\/semantic-explorer\/entitaeten\">Entitaeten<\/a>",
" <\/p>",
" ",
"+<script type=\"module\">",
"+import { init } from '\/js\/components\/data-table.js';",
"+",
"+const dataTable = init({",
"+ clock: { now_epoch_ms_utc: () => Date.now() },",
"+ logger: console,",
"+ ui: {",
"+ showMessage: (msg) => { console.log(msg.type + ': ' + msg.text); },",
"+ disableFeature: (key) => { console.warn('Feature disabled: ' + key); },",
"+ offerRetry: () => Promise.resolve(false)",
"+ },",
"+ runId: crypto.randomUUID()",
"+});",
"+",
"+dataTable.create('relations-table', {",
"+ searchInput: 'relations-search',",
"+ pageSize: 20,",
"+ filters: {",
"+ 'filter-type': 1",
"+ }",
"+});",
"+<\/script>",
"+",
" <?php $content = ob_get_clean(); ?>",
" <?php require VIEW_PATH . '\/layout.php'; ?>"
]
}
],
"originalFile": "<?php ob_start(); ?>\n\n<nav class=\"breadcrumb\">\n <a href=\"\/\">Home<\/a> » <a href=\"\/explorer\">Explorer<\/a> » <a href=\"\/semantic-explorer\">Semantic Explorer<\/a> » Relationen\n<\/nav>\n\n<h1>Relationen<\/h1>\n<p>Beziehungen zwischen Entitaeten.<\/p>\n\n<div class=\"stats-grid\">\n <div class=\"stat-card stat-card--primary\">\n <span class=\"stat-card__value\"><?= $stats['total'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Relationen<\/span>\n <\/div>\n <div class=\"stat-card\">\n <span class=\"stat-card__value\"><?= $stats['sources'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Quellen<\/span>\n <\/div>\n <div class=\"stat-card\">\n <span class=\"stat-card__value\"><?= $stats['targets'] ?? 0 ?><\/span>\n <span class=\"stat-card__label\">Ziele<\/span>\n <\/div>\n<\/div>\n\n<?php if (!empty($relationTypes)): ?>\n<h2>Relationstypen<\/h2>\n<div class=\"tags\">\n <?php foreach ($relationTypes as $rt): ?>\n <a href=\"?type=<?= urlencode($rt['relation_type']) ?>\" class=\"badge <?= $currentType === $rt['relation_type'] ? 'badge--primary' : '' ?>\">\n <?= htmlspecialchars($rt['relation_type']) ?> (<?= $rt['count'] ?>)\n <\/a>\n <?php endforeach; ?>\n <?php if ($currentType): ?>\n <a href=\"\/semantic-explorer\/relationen\" class=\"btn btn--small\">Alle<\/a>\n <?php endif; ?>\n<\/div>\n<?php endif; ?>\n\n<?php if (!empty($relations)): ?>\n<h2>Relationen<?= $currentType ? ': ' . htmlspecialchars($currentType) : '' ?><\/h2>\n<table data-sortable>\n <thead>\n <tr>\n <th data-sort=\"source_name\">Quelle<\/th>\n <th data-sort=\"relation_type\">Relation<\/th>\n <th data-sort=\"target_name\">Ziel<\/th>\n <th data-sort=\"strength\">Staerke<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <?php foreach ($relations as $r): ?>\n <tr>\n <td>\n <a href=\"\/semantic-explorer\/entitaeten\/<?= $r['source_entity_id'] ?>\"><?= htmlspecialchars($r['source_name']) ?><\/a>\n <span class=\"badge badge--small\"><?= $r['source_type'] ?><\/span>\n <\/td>\n <td><span class=\"badge\"><?= htmlspecialchars($r['relation_type']) ?><\/span><\/td>\n <td>\n <a href=\"\/semantic-explorer\/entitaeten\/<?= $r['target_entity_id'] ?>\"><?= htmlspecialchars($r['target_name']) ?><\/a>\n <span class=\"badge badge--small\"><?= $r['target_type'] ?><\/span>\n <\/td>\n <td><?= number_format($r['strength'] * 100, 0) ?>%<\/td>\n <\/tr>\n <?php endforeach; ?>\n <\/tbody>\n<\/table>\n<?php else: ?>\n<p>Keine Relationen gefunden. Fuehren Sie die semantische Analyse aus.<\/p>\n<?php endif; ?>\n\n<p class=\"links-bar\">\n <a href=\"\/semantic-explorer\">Zurueck zum Explorer<\/a> |\n <a href=\"\/semantic-explorer\/entitaeten\">Entitaeten<\/a>\n<\/p>\n\n<?php $content = ob_get_clean(); ?>\n<?php require VIEW_PATH . '\/layout.php'; ?>\n"
}
}