Backup #1730
| ID | 1730 |
| Dateipfad | /var/www/dev.campus.systemische-tools.de/src/View/semantic-explorer/ontologie/edit.php |
| Version | 1 |
| Typ |
modified |
| Größe | 3.8 KB |
| Hash | 1ebe1571e8e76a1017891f250fd3e9792b51f5875485079ac28282ed015d38b5 |
| Datum | 2025-12-27 12:36:48 |
| Geändert von | claude-code-hook |
| Grund | Claude Code Pre-Hook Backup vor Write-Operation |
| Datei existiert |
Ja
|
Dateiinhalt
<?php ob_start(); ?>
<nav class="breadcrumb">
<a href="/semantic-explorer">Semantic Explorer</a> »
<a href="/semantic-explorer/ontologie">Ontologie</a> » <?= htmlspecialchars($class['name']) ?> » Bearbeiten
</nav>
<h1>Ontologie-Klasse bearbeiten</h1>
<form id="ontology-form" class="form" style="max-width: 600px;">
<div class="form-group">
<label for="name">Name *</label>
<input type="text" id="name" name="name" class="form-input" required
value="<?= htmlspecialchars($class['name']) ?>">
</div>
<div class="form-group">
<label for="parent_class_id">Uebergeordnete Klasse</label>
<select id="parent_class_id" name="parent_class_id" class="form-select">
<option value="">-- Keine (Root-Klasse) --</option>
<?php foreach ($classes as $c): ?>
<?php if ($c['id'] !== $class['id']): ?>
<option value="<?= $c['id'] ?>"
<?= ($class['parent_class_id'] ?? '') == $c['id'] ? 'selected' : '' ?>><?= htmlspecialchars($c['name']) ?></option>
<?php endif; ?>
<?php endforeach; ?>
</select>
</div>
<div class="form-group">
<label for="description">Beschreibung</label>
<textarea id="description" name="description" class="form-textarea" rows="3"><?= htmlspecialchars($class['description'] ?? '') ?></textarea>
</div>
<div class="form-group">
<label for="properties">Properties (JSON)</label>
<textarea id="properties" name="properties" class="form-textarea" rows="4"><?= htmlspecialchars($class['properties'] ?? '{}') ?></textarea>
<small>z.B. {"color": "string", "count": "integer"}</small>
</div>
<div class="form-actions">
<button type="submit" class="btn btn--primary">Speichern</button>
<a href="/semantic-explorer/ontologie" class="btn">Abbrechen</a>
<button type="button" id="delete-btn" class="btn btn--danger" style="margin-left: auto;">Loeschen</button>
</div>
</form>
<div id="form-message" class="form-message"></div>
<script>
document.getElementById('ontology-form').addEventListener('submit', async (e) => {
e.preventDefault();
const form = e.target;
const formData = new FormData(form);
const data = Object.fromEntries(formData.entries());
if (data.parent_class_id === '') data.parent_class_id = null;
try {
data.properties = JSON.parse(data.properties || '{}');
} catch (err) {
document.getElementById('form-message').innerHTML =
'<span class="form-message--error">Fehler: Ungültiges JSON in Properties</span>';
return;
}
const response = await fetch('/semantic-explorer/ontologie/<?= $class['id'] ?>', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(data)
});
const result = await response.json();
if (result.success) {
window.location.href = '/semantic-explorer/ontologie';
} else {
document.getElementById('form-message').innerHTML =
'<span class="form-message--error">Fehler: ' + result.error + '</span>';
}
});
document.getElementById('delete-btn').addEventListener('click', async () => {
if (!confirm('Klasse wirklich loeschen? Unterklassen muessen zuerst geloescht werden.')) return;
const response = await fetch('/semantic-explorer/ontologie/<?= $class['id'] ?>/delete', {
method: 'POST'
});
const result = await response.json();
if (result.success) {
window.location.href = '/semantic-explorer/ontologie';
} else {
document.getElementById('form-message').innerHTML =
'<span class="form-message--error">Fehler: ' + result.error + '</span>';
}
});
</script>
<?php $content = ob_get_clean(); ?>
<?php require VIEW_PATH . '/layout.php'; ?>
Vollständig herunterladen
Aktionen
← Zurück zur Übersicht