76 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
|  | <!DOCTYPE html> | ||
|  | <html lang="en"> | ||
|  | <head> | ||
|  |     <meta charset="UTF-8"> | ||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
|  |     <title><?= htmlspecialchars($config['site_name'] ?? '') ?> - <?= htmlspecialchars($pageTitle ?? 'Dashboard') ?></title>
 | ||
|  | 
 | ||
|  |     <!-- Bootstrap 5.3.3 CSS --> | ||
|  |     <link rel="stylesheet" type="text/css" href="<?= htmlspecialchars($app_root) ?>static/libs/bootstrap/bootstrap-5.3.3.min.css"> | ||
|  | 
 | ||
|  |     <!-- Font Awesome --> | ||
|  |     <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css"> | ||
|  | 
 | ||
|  |     <!-- Custom CSS --> | ||
|  |     <link rel="stylesheet" type="text/css" href="<?= htmlspecialchars($app_root) ?>static/css/main.css"> | ||
|  | 
 | ||
|  |     <!-- Theme-specific CSS --> | ||
|  |     <link rel="stylesheet" type="text/css" href="<?= \App\Helpers\Theme::asset('css/theme.css') ?>"> | ||
|  | 
 | ||
|  |     <!-- jQuery --> | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/jquery/jquery.min.js"></script> | ||
|  | 
 | ||
|  |     <!-- Bootstrap JS --> | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/bootstrap/popper.min.js"></script> | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/bootstrap/bootstrap-4.0.0.min.js"></script> | ||
|  | 
 | ||
|  |     <?php if (Session::getUsername()): ?>
 | ||
|  |     <script> | ||
|  |     // Restore sidebar state before the page is rendered
 | ||
|  |     (function() { | ||
|  |         var savedState = localStorage.getItem('sidebarState'); | ||
|  |         if (savedState === 'collapsed') { | ||
|  |             document.documentElement.classList.add('sidebar-collapsed'); | ||
|  |         } | ||
|  |     })(); | ||
|  |     </script> | ||
|  |     <?php endif; ?>
 | ||
|  | 
 | ||
|  |     <!-- Page-specific CSS --> | ||
|  |     <?php if ($page === 'logs'): ?>
 | ||
|  |     <link rel="stylesheet" type="text/css" href="<?= htmlspecialchars($app_root) ?>static/css/logs.css"> | ||
|  |     <?php endif; ?>
 | ||
|  | 
 | ||
|  |     <?php if ($page === 'profile'): ?>
 | ||
|  |     <link rel="stylesheet" type="text/css" href="<?= htmlspecialchars($app_root) ?>static/css/profile.css"> | ||
|  |     <?php endif; ?>
 | ||
|  | 
 | ||
|  |     <?php if ($page === 'agents'): ?>
 | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/js/agents.js"></script> | ||
|  |     <?php endif; ?>
 | ||
|  | 
 | ||
|  |     <?php if ($page === 'graphs'): ?>
 | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/chartjs/chart.umd.min.js"></script> | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/chartjs/moment.min.js"></script> | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/chartjs/chartjs-adapter-moment.min.js"></script> | ||
|  |     <script src="<?= htmlspecialchars($app_root) ?>static/libs/chartjs/chartjs-plugin-zoom.min.js"></script> | ||
|  |     <?php endif; ?>
 | ||
|  | 
 | ||
|  |     <link rel="icon" type="image/x-icon" href="<?= htmlspecialchars($app_root) ?>static/favicon.ico"> | ||
|  | </head> | ||
|  | 
 | ||
|  | <body class="modern-theme"> | ||
|  |     <div id="messages-container" class="container-fluid mt-2"></div> | ||
|  | 
 | ||
|  |     <?php if (isset($system_messages) && is_array($system_messages)): ?>
 | ||
|  |     <div class="container-fluid"> | ||
|  |         <div class="row"> | ||
|  |             <div class="col"> | ||
|  |                 <?php foreach ($system_messages as $msg): ?>
 | ||
|  |                     <?= Feedback::render($msg['category'], $msg['key'], $msg['custom_message'] ?? null) ?>
 | ||
|  |                 <?php endforeach; ?>
 | ||
|  |             </div> | ||
|  |         </div> | ||
|  |     </div> | ||
|  |     <?php endif; ?>
 |