Backup #677

ID677
Dateipfad/var/www/dev.campus.systemische-tools.de/src/View/semantic-explorer/semantik.php
Version2
Typ modified
Größe4.0 KB
Hashf7bbebe783640d07fc3623e18320e3ae027d9c02411af8f79ba14eade09a80f7
Datum2025-12-23 07:01:38
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php ob_start(); ?>

<nav class="breadcrumb">
    <a href="/">Home</a> &raquo; <a href="/explorer">Explorer</a> &raquo; <a href="/semantic-explorer">Semantic Explorer</a> &raquo; Semantik
</nav>

<h1>Semantik</h1>
<p>Semantische Analyse pro Chunk: Zusammenfassungen, Keywords, Sentiment.</p>

<div class="stats-grid">
    <div class="stat-card stat-card--primary">
        <span class="stat-card__value"><?= $stats['total'] ?? 0 ?></span>
        <span class="stat-card__label">Analysiert</span>
    </div>
    <div class="stat-card stat-card--success">
        <span class="stat-card__value"><?= $stats['positive'] ?? 0 ?></span>
        <span class="stat-card__label">Positiv</span>
    </div>
    <div class="stat-card">
        <span class="stat-card__value"><?= $stats['neutral'] ?? 0 ?></span>
        <span class="stat-card__label">Neutral</span>
    </div>
    <div class="stat-card stat-card--warning">
        <span class="stat-card__value"><?= $stats['negative'] ?? 0 ?></span>
        <span class="stat-card__label">Negativ</span>
    </div>
    <div class="stat-card stat-card--info">
        <span class="stat-card__value"><?= $stats['mixed'] ?? 0 ?></span>
        <span class="stat-card__label">Gemischt</span>
    </div>
</div>

<div class="filters">
    <input type="search" id="semantics-search" class="form-input" placeholder="Durchsuchen...">
    <select id="filter-sentiment" class="form-select--inline">
        <option value="">Alle Sentiments</option>
        <option value="positive">Positiv</option>
        <option value="neutral">Neutral</option>
        <option value="negative">Negativ</option>
        <option value="mixed">Gemischt</option>
    </select>
</div>

<?php if (!empty($semantics)): ?>
<table id="semantics-table" data-sortable>
    <thead>
        <tr>
            <th data-sort="chunk_id">Chunk</th>
            <th data-sort="filename">Dokument</th>
            <th data-sort="sentiment">Sentiment</th>
            <th data-sort="language">Sprache</th>
            <th>Keywords</th>
            <th data-sort="summary">Zusammenfassung</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($semantics as $s): ?>
        <tr>
            <td><a href="/semantic-explorer/chunks/<?= $s['chunk_id'] ?>">#<?= $s['chunk_id'] ?></a></td>
            <td><a href="/semantic-explorer/dokumente/<?= $s['document_id'] ?>"><?= htmlspecialchars($s['filename']) ?></a></td>
            <td>
                <span class="badge badge--<?= $s['sentiment'] === 'positive' ? 'success' : ($s['sentiment'] === 'negative' ? 'warning' : 'info') ?>">
                    <?= $s['sentiment'] ?>
                </span>
            </td>
            <td><?= htmlspecialchars($s['language'] ?? 'de') ?></td>
            <td>
                <?php foreach (array_slice($s['keywords_decoded'], 0, 3) as $kw): ?>
                <span class="badge badge--small"><?= htmlspecialchars($kw) ?></span>
                <?php endforeach; ?>
            </td>
            <td><?= htmlspecialchars(substr($s['summary'] ?? '', 0, 100)) ?>...</td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<?php else: ?>
<p class="empty-state">Keine semantischen Analysen gefunden. Fuehren Sie die semantische Analyse aus.</p>
<?php endif; ?>

<p class="links-bar">
    <a href="/semantic-explorer">Zurueck zum Explorer</a> |
    <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('semantics-table', {
    searchInput: 'semantics-search',
    pageSize: 20,
    filters: {
        'filter-sentiment': 2
    }
});
</script>

<?php $content = ob_get_clean(); ?>
<?php require VIEW_PATH . '/layout.php'; ?>

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
1632 6 modified 3.9 KB 2025-12-27 09:45
1624 5 modified 3.9 KB 2025-12-27 09:44
1532 4 modified 5.2 KB 2025-12-26 07:18
1525 3 modified 4.4 KB 2025-12-26 06:52
677 2 modified 4.0 KB 2025-12-23 07:01
16 1 modified 4.3 KB 2025-12-20 16:43

← Zurück zur Übersicht