Merge branch 'Preorder/add-notification-log-history' into 'master'
added new email tab to display notification log See merge request fronk/thetool!1395
This commit is contained in:
@@ -13,7 +13,8 @@
|
|||||||
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-map" data-toggle="tab" aria-expanded="false" onclick="loadBorderpointMap(<?=$preorder->id?>)">Übergabepunkt</a></li>
|
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-map" data-toggle="tab" aria-expanded="false" onclick="loadBorderpointMap(<?=$preorder->id?>)">Übergabepunkt</a></li>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-history" data-toggle="tab" aria-expanded="false">History</a></li>
|
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-history" data-toggle="tab" aria-expanded="false">History</a></li>
|
||||||
|
<li class="nav-item"><a class="nav-link" href="#preorder-detail-<?=$preorder->id?>-emails" data-toggle="tab" aria-expanded="false">E-Mails</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -695,6 +696,219 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="preorder-detail-<?=$preorder->id?>-emails" class="tab-pane preorder-emails-view">
|
||||||
|
<?php
|
||||||
|
$allPreorderEmails = PreordernotificationLogModel::search(["preorder_id" => $preorder->id]);
|
||||||
|
$allStatusFlagEmails = PreorderStatusnotificationLog::search(["preorder_id" => $preorder->id]);
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<h5 class="mb-3">
|
||||||
|
<i class="fas fa-envelope mr-2 text-muted"></i>
|
||||||
|
E-Mail Benachrichtigungen
|
||||||
|
</h5>
|
||||||
|
|
||||||
|
<!-- Preorder Notification Emails -->
|
||||||
|
<?php if (!empty($allPreorderEmails)): ?>
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header bg-light border-bottom">
|
||||||
|
<h6 class="mb-0 text-secondary">
|
||||||
|
<i class="fas fa-bell mr-2"></i>
|
||||||
|
Vorbestellungs-Benachrichtigungen
|
||||||
|
<span class="badge badge-secondary ml-2"><?= count($allPreorderEmails) ?></span>
|
||||||
|
</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-0">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-sm table-hover mb-0">
|
||||||
|
<thead class="thead-light">
|
||||||
|
<tr>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-envelope-open mr-1 text-muted"></i>
|
||||||
|
Betreff
|
||||||
|
</th>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-at mr-1 text-muted"></i>
|
||||||
|
E-Mail
|
||||||
|
</th>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-clock mr-1 text-muted"></i>
|
||||||
|
Gesendet
|
||||||
|
</th>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-hashtag mr-1 text-muted"></i>
|
||||||
|
ID
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($allPreorderEmails as $emailLog): ?>
|
||||||
|
<?php
|
||||||
|
$notification = PreordernotificationModel::getOne($emailLog->data->preordernotification_id);
|
||||||
|
$sentDate = date('Y-m-d H:i:s', $emailLog->data->sent);
|
||||||
|
$sentDateFormatted = date('M j, Y \a\t g:i A', $emailLog->data->sent);
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td class="py-2">
|
||||||
|
<div class="font-weight-medium text-dark small">
|
||||||
|
<?= htmlspecialchars($notification->subject ?? 'Kein Betreff') ?>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="py-2">
|
||||||
|
<span class="badge badge-light text-muted px-2 py-1">
|
||||||
|
<?= htmlspecialchars($emailLog->data->email) ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td class="py-2">
|
||||||
|
<div class="text-muted small">
|
||||||
|
<?= $sentDateFormatted ?>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="py-2">
|
||||||
|
<span class="badge badge-secondary">
|
||||||
|
#<?= $emailLog->data->preordernotification_id ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Status Notification Emails -->
|
||||||
|
<?php if (!empty($allStatusFlagEmails)): ?>
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-header bg-light border-bottom">
|
||||||
|
<h6 class="mb-0 text-secondary">
|
||||||
|
<i class="fas fa-flag mr-2"></i>
|
||||||
|
Status-Benachrichtigungen
|
||||||
|
<span class="badge badge-secondary ml-2"><?= count($allStatusFlagEmails) ?></span>
|
||||||
|
</h6>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-0">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table table-sm table-hover mb-0">
|
||||||
|
<thead class="thead-light">
|
||||||
|
<tr>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-flag mr-1 text-muted"></i>
|
||||||
|
Status
|
||||||
|
</th>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-at mr-1 text-muted"></i>
|
||||||
|
E-Mail
|
||||||
|
</th>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-clock mr-1 text-muted"></i>
|
||||||
|
Erstellt
|
||||||
|
</th>
|
||||||
|
<th class="border-0 py-2">
|
||||||
|
<i class="fas fa-user mr-1 text-muted"></i>
|
||||||
|
Benutzer
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($allStatusFlagEmails as $statusLog): ?>
|
||||||
|
<?php
|
||||||
|
$createdDate = date('Y-m-d H:i:s', $statusLog->create);
|
||||||
|
$createdDateFormatted = date('M j, Y \a\t g:i A', $statusLog->create);
|
||||||
|
|
||||||
|
// Status code color mapping - muted colors
|
||||||
|
$statusBadgeClass = 'badge-light text-muted';
|
||||||
|
switch($statusLog->data->status_code) {
|
||||||
|
case '100': $statusBadgeClass = 'badge-light text-info'; break;
|
||||||
|
case '110': $statusBadgeClass = 'badge-light text-warning'; break;
|
||||||
|
case '120': $statusBadgeClass = 'badge-light text-secondary'; break;
|
||||||
|
case '130': $statusBadgeClass = 'badge-light text-success'; break;
|
||||||
|
case '140': $statusBadgeClass = 'badge-light text-danger'; break;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td class="py-2">
|
||||||
|
<span class="badge <?= $statusBadgeClass ?> px-2 py-1">
|
||||||
|
<?= htmlspecialchars($statusLog->data->status_code) ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td class="py-2">
|
||||||
|
<span class="badge badge-light text-muted px-2 py-1">
|
||||||
|
<?= htmlspecialchars($statusLog->data->email) ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
<td class="py-2">
|
||||||
|
<div class="text-muted small">
|
||||||
|
<?= $createdDateFormatted ?>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="py-2">
|
||||||
|
<span class="badge badge-light text-muted">
|
||||||
|
#<?= $statusLog->data->create_by ?>
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<!-- Empty State -->
|
||||||
|
<?php if (empty($allPreorderEmails) && empty($allStatusFlagEmails)): ?>
|
||||||
|
<div class="card border-0">
|
||||||
|
<div class="card-body text-center py-4">
|
||||||
|
<div class="mb-3">
|
||||||
|
<i class="fas fa-envelope-open-text fa-3x text-muted"></i>
|
||||||
|
</div>
|
||||||
|
<h6 class="text-muted mb-2">Keine E-Mail-Benachrichtigungen</h6>
|
||||||
|
<p class="text-muted small mb-0">
|
||||||
|
Für diese Vorbestellung wurden noch keine E-Mail-Benachrichtigungen versendet.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.preorder-emails-view .badge-light {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preorder-emails-view .table td {
|
||||||
|
vertical-align: middle;
|
||||||
|
border-top: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preorder-emails-view .table tbody tr:hover {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preorder-emails-view .card {
|
||||||
|
border: 1px solid #e9ecef;
|
||||||
|
border-radius: 0.375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preorder-emails-view .card-header {
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border-bottom: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preorder-emails-view .text-info { color: #17a2b8 !important; }
|
||||||
|
.preorder-emails-view .text-warning { color: #ffc107 !important; }
|
||||||
|
.preorder-emails-view .text-success { color: #28a745 !important; }
|
||||||
|
.preorder-emails-view .text-danger { color: #dc3545 !important; }
|
||||||
|
</style>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
id="preorder-detail-<?=$preorder->id?>-map"
|
id="preorder-detail-<?=$preorder->id?>-map"
|
||||||
class="tab-pane"
|
class="tab-pane"
|
||||||
|
|||||||
Reference in New Issue
Block a user