112 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			112 lines
		
	
	
		
			5.4 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;"><?= htmlspecialchars($row['log level']) ?></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 -->
 |