205 lines
10 KiB
PHP
205 lines
10 KiB
PHP
<?php include('../include/headscript.php'); ?>
|
|
<?php include("../class/company.php"); ?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
|
|
<?php include('../include/seo.php'); ?>
|
|
|
|
<link rel="shortcut icon" href="../assets/images/favicon.ico">
|
|
<link href="../assets/css/bootstrap.min.css" rel="stylesheet" type="text/css">
|
|
<link href="../assets/css/icons.css" rel="stylesheet" type="text/css">
|
|
<link href="../assets/css/style.css" rel="stylesheet" type="text/css">
|
|
<link href="https://cdn.jsdelivr.net/npm/boxicons@2.0.7/css/boxicons.min.css" rel="stylesheet">
|
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@10/dist/sweetalert2.min.js"></script>
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@10/dist/sweetalert2.min.css">
|
|
<script src="../assets/js/jquery.min.js"></script>
|
|
<link rel="stylesheet" href="../assets/plugins/select2/select2.min.css">
|
|
<script src="../assets/plugins/select2/select2.min.js"></script>
|
|
<style>
|
|
/* Custom styles here */
|
|
</style>
|
|
</head>
|
|
|
|
<body class="fixed-left">
|
|
|
|
<style>
|
|
#ajax_preloader {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background-color: transparent;
|
|
z-index: 9999999;
|
|
}
|
|
|
|
.select2-container--open {
|
|
z-index: 9999;
|
|
}
|
|
</style>
|
|
|
|
<div id="wrapper">
|
|
<?php include('../include/navigationbar.php'); ?>
|
|
|
|
<div class="content-page">
|
|
<div class="content">
|
|
|
|
<?php include('../include/topbar.php'); ?>
|
|
|
|
<div class="page-content-wrapper ">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div class="page-title-box">
|
|
<h4 class="page-title">Notifications</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-xl-12">
|
|
<div class="card">
|
|
<div class="card-body">
|
|
<h5 class="header-title pb-3 mt-0">Records</h5>
|
|
<div class="table-responsive">
|
|
<table class="table table-striped table-custom">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Title</th>
|
|
<th>Description</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
// Database connection
|
|
$conn = new mysqli($servername, $username, $password, $database);
|
|
if ($conn->connect_error) {
|
|
die("Connection failed: " . $conn->connect_error);
|
|
}
|
|
|
|
// Query for rows with processed = 2
|
|
$sql = "SELECT * FROM notifications";
|
|
$result = $conn->query($sql);
|
|
|
|
$all_notifications = [];
|
|
if ($result->num_rows > 0) {
|
|
while ($row = $result->fetch_assoc()) {
|
|
$all_notifications[] = $row;
|
|
}
|
|
}
|
|
|
|
$user_id = $_SESSION['iduserlogin'];
|
|
$all_notification_ids = array_column($all_notifications, 'id');
|
|
$all_notification_ids_str = implode(',', $all_notification_ids);
|
|
|
|
$sql = "SELECT notification_id
|
|
FROM seen_notifications
|
|
WHERE notification_id IN ($all_notification_ids_str)
|
|
AND user_id = $user_id";
|
|
$result = $conn->query($sql);
|
|
$seen_notification_ids = [];
|
|
if ($result->num_rows > 0) {
|
|
while ($row = $result->fetch_assoc()) {
|
|
$seen_notification_ids[] = $row['notification_id'];
|
|
}
|
|
}
|
|
|
|
$seen_notifications = [];
|
|
foreach($all_notifications as $notification){
|
|
if(in_array($notification['id'], $seen_notification_ids)){
|
|
$seen_notifications[] = $notification;
|
|
}
|
|
}
|
|
|
|
$unseen_notifications = array_udiff($all_notifications, $seen_notifications, function ($a, $b) {
|
|
return $a['id'] <=> $b['id'];
|
|
});
|
|
|
|
|
|
// unseen notifications with mark as seen button and different color , seen without that
|
|
if(!empty($all_notifications)){
|
|
foreach($all_notifications as $notification){
|
|
if(in_array($notification, $unseen_notifications)){
|
|
echo "<tr style='background-color: #f8d7da;'>";
|
|
}else{
|
|
echo "<tr>";
|
|
}
|
|
echo "<td>" . $notification['id'] . "</td>";
|
|
echo "<td>" . $notification['title'] . "</td>";
|
|
echo "<td>" . $notification['description'] . "</td>";
|
|
if(in_array($notification, $unseen_notifications)){
|
|
echo "<td>
|
|
<button class='btn btn-warning btn-sm' onclick='mark_as_seen(" . $notification['id'] . ")'>
|
|
<i class='bx bx-check'></i> Mark as seen
|
|
</button>
|
|
</td>";
|
|
}else{
|
|
echo "<td></td>";
|
|
}
|
|
echo "</tr>";
|
|
}
|
|
}
|
|
|
|
$conn->close();
|
|
?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div> <!-- container -->
|
|
</div> <!-- Page content Wrapper -->
|
|
</div> <!-- content -->
|
|
|
|
<?php include('../include/footer.php'); ?>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function mark_as_seen(id){
|
|
$.ajax({
|
|
url:'<?php echo USERAREA_PATH;?>include/getNotifications.php',
|
|
type:'POST',
|
|
data:{
|
|
method:'markAsSeen',
|
|
notification_id:id
|
|
},
|
|
success:function(response){
|
|
if(response.code == 'success'){
|
|
Swal.fire({
|
|
title: 'Success',
|
|
text: 'Notification marked as seen',
|
|
icon: 'success',
|
|
confirmButtonText: 'OK'
|
|
}).then((result) => {
|
|
location.reload();
|
|
});
|
|
}else{
|
|
Swal.fire({
|
|
title: 'Error',
|
|
text: 'An error occurred',
|
|
icon: 'error',
|
|
confirmButtonText: 'OK'
|
|
});
|
|
}
|
|
}
|
|
})
|
|
}
|
|
</script>
|
|
|
|
<script src="../assets/js/common_helper.js"></script>
|
|
<script src="../assets/plugins/alertify/js/alertify.js"></script>
|
|
|
|
</body>
|
|
|
|
</html>
|