prozess-detail.php
Pfad: src/Infrastructure/Http/view/prozess-detail.php
Ext: php
Größe: 2905 Bytes
Geändert: 2026-07-16 01:42:05+02
<?php
declare(strict_types=1);
/**
* Detailseite eines Prozesses: Kopf, SVG-Fluss und rang-geordnete Schritt-Karten.
* $svg, $kopfHtml und $schrittHtml stammen aus serverseitigem, escaptem Rendering
* und werden daher bewusst roh ausgegeben.
*
* @var callable(string):string $e
* @var \Demo\Domain\Prozess\ProzessDetail $detail
* @var string $svg
* @var string $kopfHtml
* @var list<\Demo\Domain\Prozess\Schritt> $schritte
* @var array<int,string> $schrittHtml
*/
$namen = [];
foreach ($detail->schritte as $s) {
$namen[$s->id] = $s->name;
}
$vorgaenger = [];
foreach ($detail->kanten as $k) {
$vorgaenger[$k->schrittId][] = ['name' => $namen[$k->vorgaengerId] ?? ('#' . $k->vorgaengerId), 'ausgang' => $k->ausgang];
}
?>
<p><a href="/prozesse">← Prozesse</a></p>
<h1><?= $e($detail->prozess->titel) ?></h1>
<?php if ($detail->prozess->tags !== []): ?>
<p class="tags"><?= $e(implode(', ', $detail->prozess->tags)) ?></p>
<?php endif; ?>
<?php if (trim($detail->prozess->beschreibung) !== ''): ?>
<div class="kopf"><?php echo $kopfHtml; ?></div>
<?php endif; ?>
<?php if ($detail->dokus !== []): ?>
<p>Dokumentation:
<?php foreach ($detail->dokus as $d): ?>
<a href="/doku/<?= $e($d['slug']) ?>"><?= $e($d['titel']) ?></a>
<?php endforeach; ?>
</p>
<?php endif; ?>
<div class="fluss-wrap"><?php echo $svg; ?></div>
<section class="schritte">
<?php foreach ($schritte as $s): ?>
<article class="schritt-karte" id="schritt-<?= $e((string) $s->id) ?>">
<h3><?= $e($s->name) ?></h3>
<p class="schritt-meta">
<?php if ($s->istAufruf()): ?>
Teilprozess: <a href="/prozesse/<?= $e((string) $s->ruftSlug) ?>"><?= $e((string) $s->ruftTitel) ?></a>
<?php else: ?>
<?= $e($s->akteur) ?> / <?= $e($s->system) ?><?php if ($s->rolle !== null): ?> · <?= $e($s->rolle) ?><?php endif; ?>
<?php endif; ?>
</p>
<?php if (trim($s->beschreibung) !== ''): ?>
<div><?php echo $schrittHtml[$s->id]; ?></div>
<?php endif; ?>
<?php if (isset($vorgaenger[$s->id])): ?>
<p class="schritt-vorg">Vorgänger:
<?php foreach ($vorgaenger[$s->id] as $v): ?>
<?= $e($v['name']) ?><?php if ($v['ausgang'] !== null): ?> (<?= $e($v['ausgang']) ?>)<?php endif; ?>;
<?php endforeach; ?>
</p>
<?php endif; ?>
<?php if ($s->artefakte !== []): ?>
<ul class="artefakte">
<?php foreach ($s->artefakte as $a): ?>
<li><?= $e($a->typ) ?> · <?= $e($a->bezeichner) ?> · <?= $e($a->beziehung) ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</article>
<?php endforeach; ?>
</section>