OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

notifications.php

4 KB
<?php $this->layout('layouts/portal', [
    'page_title' => 'Meine Nachrichten',
    'ssp_active' => 'notifications',
]);
$du    = ($portal_address ?? 'du') !== 'sie';
$liste = $notifications ?? [];
$arten = $types ?? [];
$offen = 0;
foreach ($liste as $n) {
    if (empty($n['is_read'])) {
        $offen++;
    }
}
?>
<div class="ssp-hello">
    <h1><?= $this->te('Meine Nachrichten') ?></h1>
    <p><?= $du
        ? $this->te('Was zu deinen Tickets, Anträgen, Leihgeräten und Bestellungen passiert ist.')
        : $this->te('Was zu Ihren Tickets, Anträgen, Leihgeräten und Bestellungen passiert ist.') ?></p>
</div>

<?php if ($offen > 0): ?>
<form method="post" action="/portal/nachrichten/gelesen" style="margin-bottom:1rem;">
    <input type="hidden" name="_csrf" value="<?= $this->e($this->csrf()) ?>">
    <button type="submit" class="btn btn-sm btn-default">
        <i class="fas fa-check-double" aria-hidden="true"></i>
        <?= $this->t('Alle als gelesen markieren ({anzahl})', ['anzahl' => (int)$offen]) ?>
    </button>
</form>
<?php endif; ?>

<?php if (empty($liste)): ?>
<div class="ssp-empty">
    <i class="fas fa-bell" aria-hidden="true"></i>
    <p><?= $du
        ? $this->te('Hier ist noch nichts für dich eingegangen. Sobald sich an einem deiner Vorgänge etwas tut, steht es hier.')
        : $this->te('Hier ist noch nichts für Sie eingegangen. Sobald sich an einem Ihrer Vorgänge etwas tut, steht es hier.') ?></p>
</div>
<?php else: ?>
<div class="ssp-list">
    <?php foreach ($liste as $n):
        $art    = $arten[(string)$n['type']] ?? ['icon' => 'fa-info-circle', 'tone' => 'info', 'label' => 'Hinweis'];
        $gelesen = !empty($n['is_read']);
        $ziel    = trim((string)($n['link'] ?? '')) !== '' || !$gelesen
            ? '/portal/nachrichten/' . (int)$n['id']
            : '';
    ?>
    <div class="ssp-msg<?= $gelesen ? '' : ' ssp-msg--unread' ?>">
        <?php if ($ziel !== ''): ?>
        <a class="ssp-msg-body" href="<?= $this->e($ziel) ?>">
        <?php else: ?>
        <div class="ssp-msg-body">
        <?php endif; ?>
            <span class="ssp-ticket-icon ssp-msg-icon ssp-msg-icon--<?= $this->e((string)$art['tone']) ?>">
                <i class="fas <?= $this->e((string)$art['icon']) ?>" aria-hidden="true"></i>
            </span>
            <span class="ssp-ticket-main">
                <span class="ssp-ticket-subject"><?= $this->e((string)$n['title']) ?></span>
                <?php if (trim((string)($n['message'] ?? '')) !== ''): ?>
                <span class="ssp-msg-text"><?= $this->e((string)$n['message']) ?></span>
                <?php endif; ?>
                <span class="ssp-ticket-meta">
                    <?= $this->e((string)$art['label']) ?>
                    &middot; <?= $this->te('{zeitpunkt} Uhr', ['zeitpunkt' => date('d.m.Y H:i', strtotime((string)$n['created_at']))]) ?>
                    <?php if (!$gelesen): ?><span class="ssp-nav-badge"><?= $this->te('neu') ?></span><?php endif; ?>
                </span>
            </span>
        <?php if ($ziel !== ''): ?></a><?php else: ?></div><?php endif; ?>

        <form method="post" action="/portal/nachrichten/<?= (int)$n['id'] ?>/loeschen" class="ssp-msg-del">
            <input type="hidden" name="_csrf" value="<?= $this->e($this->csrf()) ?>">
            <button type="submit" class="btn btn-sm btn-default" aria-label="<?= $this->te('Nachricht entfernen') ?>"
                    title="<?= $this->te('Nachricht entfernen') ?>"><i class="fas fa-times" aria-hidden="true"></i></button>
        </form>
    </div>
    <?php endforeach; ?>
</div>
<?php endif; ?>