Backup #1780
| ID | 1780 |
| Dateipfad | /var/www/dev.campus.systemische-tools.de/src/View/prompts/show.php |
| Version | 1 |
| Typ |
modified |
| Größe | 5.0 KB |
| Hash | 2b93656aea6ef0502887e998d0f7d9affd77e223346351f392f759654a0f7de2 |
| Datum | 2025-12-27 14:05:46 |
| Geändert von | claude-code-hook |
| Grund | Claude Code Pre-Hook Backup vor Edit-Operation |
| Datei existiert |
Ja
|
Dateiinhalt
<?php ob_start(); ?>
<h1><?= htmlspecialchars($prompt['name']) ?></h1>
<nav class="breadcrumb">
<a href="/prompts">Prompts</a>
<span>/</span>
<span><?= htmlspecialchars($prompt['name']) ?></span>
</nav>
<?php if (isset($_SESSION['success'])): ?>
<div class="alert alert--success"><?= htmlspecialchars($_SESSION['success']) ?></div>
<?php unset($_SESSION['success']); endif; ?>
<?php if (isset($_SESSION['error'])): ?>
<div class="alert alert--error"><?= htmlspecialchars($_SESSION['error']) ?></div>
<?php unset($_SESSION['error']); endif; ?>
<div class="page-actions">
<a href="/prompts/<?= $prompt['id'] ?>/edit" class="btn btn--primary">Bearbeiten</a>
<form method="post" action="/prompts/<?= $prompt['id'] ?>/duplicate" style="display:inline">
<?= $csrfField ?>
<button type="submit" class="btn btn--secondary">Duplizieren</button>
</form>
</div>
<?php
// Detect prompt type from name
$type = 'other';
if (str_starts_with($prompt['name'], 'critic-')) {
$type = 'critic';
} elseif (str_starts_with($prompt['name'], 'content-generate')) {
$type = 'generate';
} elseif (str_starts_with($prompt['name'], 'content-revise')) {
$type = 'revise';
} elseif (str_contains($prompt['name'], 'system')) {
$type = 'system';
}
?>
<div class="detail-grid">
<div class="detail-card">
<h3>Details</h3>
<dl class="detail-list">
<dt>ID</dt>
<dd><?= $prompt['id'] ?></dd>
<dt>Typ</dt>
<dd><span class="badge badge--type-<?= $type ?>"><?= $promptTypes[$type] ?? $type ?></span></dd>
<dt>Version</dt>
<dd>v<?= htmlspecialchars($prompt['version']) ?></dd>
<dt>Status</dt>
<dd>
<?php if ($prompt['is_active']): ?>
<span class="badge badge--success">Aktiv</span>
<?php else: ?>
<span class="badge badge--muted">Inaktiv</span>
<?php endif; ?>
</dd>
<dt>Erstellt</dt>
<dd><?= $prompt['created_at'] ?></dd>
<dt>Aktualisiert</dt>
<dd><?= $prompt['updated_at'] ?></dd>
</dl>
</div>
<div class="detail-card">
<h3>Verknüpfte Critics</h3>
<?php if (!empty($linkedCritics)): ?>
<ul class="linked-list">
<?php foreach ($linkedCritics as $critic): ?>
<li>
<a href="/critics/<?= $critic['id'] ?>"><?= htmlspecialchars($critic['name']) ?></a>
<?php if ($critic['is_active']): ?>
<span class="badge badge--success badge--small">Aktiv</span>
<?php else: ?>
<span class="badge badge--muted badge--small">Inaktiv</span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p class="text-muted">Keine Critics verknüpft</p>
<?php endif; ?>
</div>
</div>
<h2>Prompt-Inhalt</h2>
<div class="code-block">
<div class="code-header">
<span>Zeichen: <?= strlen($prompt['content']) ?></span>
<button class="btn btn--small" onclick="copyToClipboard()">Kopieren</button>
</div>
<pre id="prompt-content"><?= htmlspecialchars($prompt['content']) ?></pre>
</div>
<script>
function copyToClipboard() {
const content = document.getElementById('prompt-content').textContent;
navigator.clipboard.writeText(content).then(() => {
alert('Prompt in Zwischenablage kopiert!');
});
}
</script>
<style>
.detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.detail-card { background: var(--bg-card); padding: 1.25rem; border-radius: 8px; border: 1px solid var(--border-color); }
.detail-card h3 { margin-top: 0; font-size: 1rem; color: var(--text-muted); }
.detail-list { margin: 0; }
.detail-list dt { font-weight: 600; color: var(--text-muted); margin-top: 0.75rem; }
.detail-list dt:first-child { margin-top: 0; }
.detail-list dd { margin: 0.25rem 0 0; }
.linked-list { margin: 0; padding-left: 1.25rem; }
.linked-list li { margin: 0.5rem 0; }
.badge--small { font-size: 0.7rem; padding: 0.125rem 0.375rem; }
.code-block { background: var(--bg-alt); border-radius: 8px; overflow: hidden; margin-top: 1rem; }
.code-header { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 1rem; background: var(--bg-card); border-bottom: 1px solid var(--border-color); }
.code-header span { font-size: 0.8rem; color: var(--text-muted); }
.code-block pre { margin: 0; padding: 1rem; font-size: 0.875rem; white-space: pre-wrap; overflow-x: auto; max-height: 500px; overflow-y: auto; }
.badge--type-critic { background: #6366f1; color: white; }
.badge--type-generate { background: #10b981; color: white; }
.badge--type-revise { background: #f59e0b; color: white; }
.badge--type-system { background: #ec4899; color: white; }
.badge--type-other { background: #6b7280; color: white; }
</style>
<?php $content = ob_get_clean(); ?>
<?php require VIEW_PATH . '/layout.php'; ?>
Vollständig herunterladen
Aktionen
← Zurück zur Übersicht