Dedup Notications code and move to a modal instead of a drop menu

This commit is contained in:
johnnyq
2025-02-08 19:54:49 -05:00
parent 4ed0767f1c
commit a69b60703b
5 changed files with 82 additions and 74 deletions

View File

@@ -1,4 +1,5 @@
<?php
require_once "modals/notifications_modal.php";
require_once "inc_confirm_modal.php";
?>

View File

@@ -62,78 +62,22 @@
<!-- New Notifications Dropdown -->
<?php
$sql_notifications = mysqli_query($mysqli, "SELECT * FROM notifications
LEFT JOIN clients ON notification_client_id = client_id
WHERE notification_dismissed_at IS NULL
AND notification_user_id = $session_user_id
ORDER BY notification_id DESC LIMIT 8"
);
$sql_notifications = mysqli_query($mysqli, "SELECT * FROM notifications WHERE notification_user_id = $session_user_id AND notification_dismissed_at IS NULL ORDER BY notification_id DESC LIMIT 8");
$num_notifications = mysqli_num_rows($sql_notifications);
?>
<?php if ($num_notifications > 0) { ?>
<li class="nav-item dropdown" title="Notifications">
<a class="nav-link" data-toggle="dropdown" href="#">
<li class="nav-item">
<a class="nav-link" href="#notificationsModal" data-toggle="modal">
<i class="fas fa-bell"></i>
<span class="badge badge-light badge-pill navbar-badge position-absolute" style="top: 1px; right: 3px;"><?php echo $num_notifications; ?></span>
</a>
<div class="dropdown-menu dropdown-menu-xlg dropdown-menu-right">
<a href="notifications.php" class="dropdown-item dropdown-header">
<i class="fas fa-bell mr-2"></i>
<strong><?php echo $num_notifications; ?></strong>
Notifications
</a>
<div class="dropdown-divider"></div>
<?php
while ($row = mysqli_fetch_array($sql_notifications)) {
$notification_id = intval($row['notification_id']);
$notification_type = nullable_htmlentities($row['notification_type']);
$notification = nullable_htmlentities($row['notification']);
$notification_action = nullable_htmlentities($row['notification_action']);
$notification_timestamp = date('M d g:ia',strtotime($row['notification_timestamp']));
$notification_client_id = intval($row['notification_client_id']);
if(empty($notification_action)) { $notification_action = "#"; }
?>
<div class="dropdown-item">
<a class="text-dark" href="<?php echo $notification_action; ?>">
<p class="mb-1">
<span class="text-bold"><i
class="fas fa-bullhorn mr-2"></i><?php echo $notification_type; ?></span>
<small class="text-muted mt-1 float-right"><?php echo $notification_timestamp; ?></small>
</p>
<small class="text-secondary"><?php echo $notification; ?></small>
</a>
</div>
<?php if ($num_notifications) { ?>
<span class="badge badge-light badge-pill navbar-badge position-absolute" style="top: 1px; right: 3px;">
<?php echo $num_notifications; ?>
</span>
<?php } ?>
<div class="dropdown-divider"></div>
<a href="post.php?dismiss_all_notifications"
class="dropdown-item dropdown-footer text-secondary text-bold"><i
class="fas fa-check-double mr-2"></i>Dismiss all Notifications</a>
</div>
</li>
<?php } else { ?>
<li class="nav-item dropdown">
<a class="nav-link" data-toggle="dropdown" href="#" aria-expanded="false">
<i class="fas fa-bell"></i>
</a>
<div class="dropdown-menu dropdown-menu dropdown-menu-right" style="left: inherit; right: 0px;">
<span class="dropdown-item dropdown-header">No Notifications</span>
<div class="dropdown-divider"></div>
<div class="text-center text-secondary p-3">
<i class='far fa-4x fa-bell-slash'></i>
</div>
<div class="dropdown-divider"></div>
<a href="notifications_dismissed.php" class="dropdown-item dropdown-footer">See Dismissed
Notifications</a>
</div>
</li>
<?php } ?>
<!-- End New Notifications Dropdown -->
<li class="nav-item dropdown user-menu">
<a href="#" class="nav-link" data-toggle="dropdown">
<?php if (empty($session_avatar)) { ?>