112 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			112 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			PHP
		
	
| 
 | |
|         <!-- log events -->
 | |
|         <div class="container-fluid mt-4">
 | |
|             <div class="row mb-4">
 | |
|                 <div class="col-md-6">
 | |
|                     <h2 class="mb-0">Log events</h2>
 | |
|                     <small>events recorded in the platform</small>
 | |
|                 </div>
 | |
|             </div>
 | |
| 
 | |
|             <!-- Tabs navigation -->
 | |
|             <ul class="nav nav-tabs mb-4">
 | |
|                 <li class="nav-item">
 | |
|                     <a class="nav-link <?= $scope === 'user' ? 'active' : '' ?>" href="?page=logs&tab=user">
 | |
|                         Logs for current user
 | |
|                     </a>
 | |
|                 </li>
 | |
| <?php if ($has_system_access) { ?>
 | |
|                 <li class="nav-item">
 | |
|                     <a class="nav-link <?= $scope === 'system' ? 'active' : '' ?>" href="?page=logs&tab=system">
 | |
|                         Logs for all users
 | |
|                     </a>
 | |
|                 </li>
 | |
| <?php } ?>
 | |
|             </ul>
 | |
| 
 | |
|             <!-- logs filter -->
 | |
|             <div class="card mb-3">
 | |
|                 <div class="card-body">
 | |
|                     <form method="GET" action="" class="row g-3 align-items-end">
 | |
|                         <input type="hidden" name="page" value="logs">
 | |
|                         <input type="hidden" name="tab" value="<?= htmlspecialchars($scope) ?>">
 | |
| 
 | |
|                         <div class="col-md-3">
 | |
|                             <label for="from_time" class="form-label">From date</label>
 | |
|                             <input type="date" class="form-control" id="from_time" name="from_time" value="<?= htmlspecialchars($_REQUEST['from_time'] ?? '') ?>">
 | |
|                         </div>
 | |
| 
 | |
|                         <div class="col-md-3">
 | |
|                             <label for="until_time" class="form-label">Until date</label>
 | |
|                             <input type="date" class="form-control" id="until_time" name="until_time" value="<?= htmlspecialchars($_REQUEST['until_time'] ?? '') ?>">
 | |
|                         </div>
 | |
| 
 | |
| <?php if ($scope === 'system') { ?>
 | |
|                         <div class="col-md-2">
 | |
|                             <label for="id" class="form-label">User ID</label>
 | |
|                             <input type="text" class="form-control" id="id" name="id" value="<?= htmlspecialchars($_REQUEST['id'] ?? '') ?>" placeholder="Enter user ID">
 | |
|                         </div>
 | |
| <?php } ?>
 | |
| 
 | |
|                         <div class="col-md">
 | |
|                             <label for="message" class="form-label">Message</label>
 | |
|                             <input type="text" class="form-control" id="message" name="message" value="<?= htmlspecialchars($_REQUEST['message'] ?? '') ?>" placeholder="Search in log messages">
 | |
|                         </div>
 | |
| 
 | |
|                         <div class="col-md-auto">
 | |
|                             <button type="submit" class="btn btn-primary me-2">
 | |
|                                 <i class="fas fa-search me-2"></i>Search
 | |
|                             </button>
 | |
|                             <a href="?page=logs&tab=<?= htmlspecialchars($scope) ?>" class="btn btn-outline-secondary">
 | |
|                                 <i class="fas fa-times me-2"></i>Clear
 | |
|                             </a>
 | |
|                         </div>
 | |
|                     </form>
 | |
|                 </div>
 | |
|             </div>
 | |
|             <!-- /logs filter -->
 | |
| 
 | |
|             <!-- logs -->
 | |
| <?php if ($time_range_specified) { ?>
 | |
|             <div class="alert alert-info m-3">
 | |
|                 <i class="fas fa-calendar-alt me-2"></i>Time period: <strong><?= htmlspecialchars($from_time) ?> - <?= htmlspecialchars($until_time) ?></strong>
 | |
|             </div>
 | |
| <?php } ?>
 | |
|             <div class="mb-5">
 | |
| <?php if (!empty($logs['records'])) { ?>
 | |
|                 <div class="table-responsive">
 | |
|                     <table class="table table-hover align-middle mb-0" style="width: 100%;">
 | |
|                         <thead class="table-light">
 | |
|                             <tr>
 | |
| <?php if ($scope === 'system') { ?>
 | |
|                                 <th>Username (id)</th>
 | |
| <?php } ?>
 | |
|                                 <th style="white-space: nowrap;">Time</th>
 | |
|                                 <th style="white-space: nowrap;">Log level</th>
 | |
|                                 <th>Log message</th>
 | |
|                             </tr>
 | |
|                         </thead>
 | |
|                         <tbody>
 | |
| <?php     foreach ($logs['records'] as $row) { ?>
 | |
|                             <tr>
 | |
| <?php         if ($scope === 'system') { ?>
 | |
|                                 <td style="white-space: nowrap;"><?= $row['userID'] ? '<strong>' . htmlspecialchars($row['username'] . " ({$row['userID']})") . '</strong>' : '<span class="text-muted font-weight-normal small">SYSTEM</span>' ?></td>
 | |
| <?php         } ?>
 | |
|                                 <td style="white-space: nowrap;"><span class="text-muted"><?= date('d M Y H:i', strtotime($row['time'])) ?></span></td>
 | |
|                                 <td style="white-space: nowrap;"><span class="<?= getLogLevelClass($row['log level']) ?>"><?= htmlspecialchars($row['log level']) ?></span></td>
 | |
|                                 <td style="width: 100%; word-break: break-word;"><?= htmlspecialchars($row['log message']) ?></td>
 | |
|                             </tr>
 | |
| <?php     } ?>
 | |
|                         </tbody>
 | |
|                     </table>
 | |
|                 </div>
 | |
| <?php include '../app/templates/pagination.php'; ?>
 | |
| <?php } else { ?>
 | |
|                 <div class="alert alert-info m-3">
 | |
|                     <i class="fas fa-info-circle me-2"></i>No log entries found for the specified criteria.
 | |
|                 </div>
 | |
| <?php } ?>
 | |
|             </div>
 | |
|         </div>
 | |
|         <!-- /log events -->
 |