OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

index.php

7 KB
<?php $this->layout('layouts/admin', [
    'page_title'         => 'PDF-Vorlagen',
    'current_admin_page' => 'notifications',
]); ?>

<div class="settings-page">

    <div class="page-back-nav">
        <a href="/admin/notifications" class="btn btn-sm btn-secondary"><?= $this->te('&larr; Zu Benachrichtigungs-Vorlagen') ?></a>
    </div>

    <section class="settings-card">
        <div class="settings-card-header">
            <span class="settings-card-icon">&#128196;</span>
            <div>
                <h2><?= $this->te('PDF-Vorlagen – Geräteausgabe &amp; Rücknahme') ?></h2>
                <p class="settings-card-desc">
                    <?= $this->t('Diese Vorlagen definieren das Layout der PDF-Bestätigungen bei Ausgabe (mit Unterschrift) und Rücknahme von Inventar-Geräten sowie den <strong>Leihschein</strong> des Leihgeräte-Moduls. Sie können mit einem WYSIWYG-Editor bearbeitet werden und unterstützen <code>{{Platzhalter}}</code>.') ?>
                </p>
            </div>
        </div>
        <div class="settings-card-body" style="padding:0;">
            <?php if (empty($templates)): ?>
                <p style="padding:1rem;color:#9ca3af;font-size:.85rem;"><?= $this->te('Keine Vorlagen gefunden. Bitte Migration 093 ausführen.') ?></p>
            <?php else: ?>
            <table style="width:100%;border-collapse:collapse;">
                <thead>
                    <tr style="background:#f9fafb;border-bottom:1px solid #e5e7eb;">
                        <th scope="col" style="padding:.6rem 1rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;"><?= $this->te('Vorlage') ?></th>
                        <th scope="col" style="padding:.6rem 1rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;"><?= $this->te('Schlüssel') ?></th>
                        <th scope="col" style="padding:.6rem 1rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;"><?= $this->te('Zuletzt geändert') ?></th>
                        <th scope="col" style="padding:.6rem 1rem;"></th>
                    </tr>
                </thead>
                <tbody>
                <?php foreach ($templates as $tpl): ?>
                <tr style="border-bottom:1px solid #f3f4f6;">
                    <td style="padding:.65rem 1rem;font-weight:600;font-size:.88rem;">
                        <?= $tpl['template_key'] === 'handout' ? '&#128221;' : ($tpl['template_key'] === 'loan_receipt' ? '&#128230;' : '&#8617;') ?>
                        <?= $this->e($tpl['name']) ?>
                    </td>
                    <td style="padding:.65rem 1rem;">
                        <code style="font-size:.78rem;background:#f3f4f6;padding:.1rem .35rem;border-radius:.25rem;"><?= $this->e($tpl['template_key']) ?></code>
                    </td>
                    <td style="padding:.65rem 1rem;font-size:.82rem;color:#6b7280;">
                        <?= $tpl['updated_at'] ? date('d.m.Y H:i', strtotime($tpl['updated_at'])) : '—' ?>
                    </td>
                    <td style="padding:.65rem 1rem;text-align:right;">
                        <a href="/admin/assets/pdf-templates/<?= urlencode($tpl['template_key']) ?>/edit"
                           class="btn btn-sm btn-default"><?= $this->te('Bearbeiten') ?></a>
                    </td>
                </tr>
                <?php endforeach; ?>
                </tbody>
            </table>
            <?php endif; ?>
        </div>
    </section>

    <!-- Verfügbare Platzhalter -->
    <section class="settings-card" style="margin-top:1rem;">
        <div class="settings-card-header">
            <span class="settings-card-icon">&#123;&#125;</span>
            <div>
                <h2><?= $this->te('Verfügbare Platzhalter') ?></h2>
                <p class="settings-card-desc"><?= $this->te('Diese Variablen können in beiden Vorlagen verwendet werden.') ?></p>
            </div>
        </div>
        <div class="settings-card-body">
            <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;">
                <div>
                    <strong style="font-size:.8rem;color:#374151;"><?= $this->te('Ausgabe-Vorlage') ?></strong>
                    <div class="var-chips" style="margin-top:.5rem;">
                        <?php foreach (['person_name','person_email','asset_inventory_number','asset_serial_number','asset_manufacturer','asset_model','asset_category','handout_date','signature_image'] as $v): ?>
                            <span class="var-chip" style="cursor:default;">{{<?= $v ?>}}</span>
                        <?php endforeach; ?>
                    </div>
                </div>
                <div>
                    <strong style="font-size:.8rem;color:#374151;"><?= $this->te('Rücknahme-Vorlage') ?></strong>
                    <div class="var-chips" style="margin-top:.5rem;">
                        <?php foreach (['person_name','person_email','asset_inventory_number','asset_serial_number','asset_manufacturer','asset_model','asset_category','return_date','notes_section'] as $v): ?>
                            <span class="var-chip" style="cursor:default;">{{<?= $v ?>}}</span>
                        <?php endforeach; ?>
                    </div>
                </div>
                <div>
                    <strong style="font-size:.8rem;color:#374151;"><?= $this->te('Leihschein (Leihgeräte)') ?></strong>
                    <div class="var-chips" style="margin-top:.5rem;">
                        <?php foreach (['lending_id','status','borrower_name','borrower_email','borrower_phone','purpose','planned_start','planned_end','actual_start','actual_end','devices_table','accessories_section','notes_section','signature_block'] as $v): ?>
                            <span class="var-chip" style="cursor:default;">{{<?= $v ?>}}</span>
                        <?php endforeach; ?>
                    </div>
                </div>
                <div>
                    <strong style="font-size:.8rem;color:#374151;"><?= $this->te('Rückgabeschein (Leihgeräte)') ?></strong>
                    <div class="var-chips" style="margin-top:.5rem;">
                        <?php foreach (['lending_id','status','borrower_name','borrower_email','borrower_phone','purpose','planned_start','planned_end','handout_date','return_date','returned_by','devices_table','accessories_return_table','return_notes_section'] as $v): ?>
                            <span class="var-chip" style="cursor:default;">{{<?= $v ?>}}</span>
                        <?php endforeach; ?>
                    </div>
                </div>
            </div>
        </div>
    </section>

</div>
<style>
.var-chips { display:flex; flex-wrap:wrap; gap:.375rem; }
.var-chip  { display:inline-block; padding:.25rem .55rem; background:var(--blue-50); color:var(--blue-600);
             border:1px solid var(--blue-200); border-radius:.375rem; font-size:.72rem;
             font-family:monospace; }
</style>