show.php
- Pfad:
src/View/prompts/show.php - Namespace: -
- Zeilen: 127 | Größe: 4,770 Bytes
- Geändert: 2025-12-27 14:05:46 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 100
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Keine Issues gefunden.
Versionen 1
-
v1
2025-12-27 14:05 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php ob_start(); ?>
<h1><?= htmlspecialchars($prompt['name']) ?></h1>
<nav class="breadcrumb">
<a href="/prompts">Prompts</a>
<span>/</span>
<span><?= htmlspecialchars($prompt['name']) ?></span>
</nav>
<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'; ?>