118 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			PHP
		
	
		
		
			
		
	
	
			118 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			PHP
		
	
|  | 
 | ||
|  |                 <!-- latest data --> | ||
|  |                 <div class="container-fluid mt-2"> | ||
|  |                     <div class="row mb-4"> | ||
|  |                         <div class="col-12 mb-4"> | ||
|  |                             <h2 class="mb-0">Latest data from Jilo Agents</h2> | ||
|  |                             <small>gathered for platform <?= htmlspecialchars($platform_id) ?> (<?= htmlspecialchars($platformDetails[0]['name']) ?>)</small>
 | ||
|  |                         </div> | ||
|  |                     </div> | ||
|  | 
 | ||
|  |                     <div class="row"> | ||
|  |                         <div class="mb-4"> | ||
|  | <?php if (!empty($hostsData)) { ?>
 | ||
|  | <?php foreach ($hostsData as $host) { ?>
 | ||
|  |                             <div class="card mb-4"> | ||
|  |                                 <div class="card-header"> | ||
|  |                                     <h5 class="mb-0"> | ||
|  |                                         <i class="fas fa-network-wired me-2 text-secondary"></i> | ||
|  |                                         <?= htmlspecialchars($host['name']) ?><small class="text-muted"> (<?= htmlspecialchars($host['address']) ?>)</small>
 | ||
|  |                                     </h5> | ||
|  |                                 </div> | ||
|  |                                 <div class="card-body"> | ||
|  | <?php foreach ($host['agents'] as $agent) { ?>
 | ||
|  |                                     <div class="mb-4"> | ||
|  |                                         <h6 class="border-bottom pb-2"> | ||
|  |                                             <i class="fas fa-robot me-2 text-secondary"></i> | ||
|  |                                             <?= htmlspecialchars($agent['name']) ?> agent
 | ||
|  |                                         </h6> | ||
|  |                                         <table class="table table-results table-striped table-hover table-bordered"> | ||
|  |                                             <thead class="align-top"> | ||
|  |                                                 <tr> | ||
|  |                                                     <th>Metric</th> | ||
|  |                                                     <th> | ||
|  |                                                         Latest value | ||
|  |                                                         <br> | ||
|  |                                                         <small class="text-muted"><?= date('d M Y H:i:s', strtotime($agent['timestamp'])) ?></small>
 | ||
|  |                                                     </th> | ||
|  |                                                     <th> | ||
|  |                                                         Previous value | ||
|  | <?php | ||
|  | // Find first metric with previous data to get timestamp
 | ||
|  | $prevTimestamp = null; | ||
|  | foreach ($metrics as $m_section => $m_metrics) { | ||
|  |     foreach ($m_metrics as $m_metric => $m_config) { | ||
|  |         if (isset($agent['metrics'][$m_section][$m_metric]['previous'])) { | ||
|  |             $prevTimestamp = $agent['metrics'][$m_section][$m_metric]['previous']['timestamp']; | ||
|  |             break 2; | ||
|  |         } | ||
|  |     } | ||
|  | } | ||
|  | if ($prevTimestamp) { ?>
 | ||
|  |                                                         <br> | ||
|  |                                                         <small class="text-muted"><?= date('d M Y H:i:s', strtotime($prevTimestamp)) ?></small>
 | ||
|  | <?php } ?>
 | ||
|  |                                                     </th> | ||
|  |                                                 </tr> | ||
|  |                                             </thead> | ||
|  |                                             <tbody> | ||
|  | <?php foreach ($metrics as $section => $section_metrics) { ?>
 | ||
|  | <?php | ||
|  | // Check if this section has any data for this agent
 | ||
|  | $hasData = false; | ||
|  | foreach ($section_metrics as $metric => $metricConfig) { | ||
|  |     if (isset($agent['metrics'][$section][$metric])) { | ||
|  |         $hasData = true; | ||
|  |         break; | ||
|  |     } | ||
|  | } | ||
|  | if (!$hasData) continue; | ||
|  | ?>
 | ||
|  |                                                 <tr class="table-secondary"> | ||
|  |                                                     <th colspan="3"><?= htmlspecialchars($section) ?></th>
 | ||
|  |                                                 </tr> | ||
|  | <?php foreach ($section_metrics as $metric => $metricConfig) { ?>
 | ||
|  | <?php if (isset($agent['metrics'][$section][$metric])) { | ||
|  |     $metric_data = $agent['metrics'][$section][$metric]; | ||
|  | ?>
 | ||
|  |                                                 <tr> | ||
|  |                                                     <td><?= htmlspecialchars($metricConfig['label']) ?></td>
 | ||
|  |                                                     <td> | ||
|  | <?php if ($metric_data['link']) { ?>
 | ||
|  |                                                         <a href="<?= htmlspecialchars($app_root) ?>?platform=<?= htmlspecialchars($platform_id) ?>&page=<?= htmlspecialchars($metric_data['link']) ?>&from_time=<?= htmlspecialchars($metric_data['latest']['timestamp']) ?>&until_time=<?= htmlspecialchars($metric_data['latest']['timestamp']) ?>"><?= htmlspecialchars($metric_data['latest']['value']) ?></a>
 | ||
|  | <?php } else { ?>
 | ||
|  |                                                         <?= htmlspecialchars($metric_data['latest']['value']) ?>
 | ||
|  | <?php } ?>
 | ||
|  |                                                     </td> | ||
|  |                                                     <td> | ||
|  | <?php if ($metric_data['previous']) { ?>
 | ||
|  | <?php if ($metric_data['link']) { ?>
 | ||
|  |                                                         <a href="<?= htmlspecialchars($app_root) ?>?platform=<?= htmlspecialchars($platform_id) ?>&page=<?= htmlspecialchars($metric_data['link']) ?>&from_time=<?= htmlspecialchars($metric_data['previous']['timestamp']) ?>&until_time=<?= htmlspecialchars($metric_data['previous']['timestamp']) ?>"><?= htmlspecialchars($metric_data['previous']['value']) ?></a>
 | ||
|  | <?php } else { ?>
 | ||
|  |                                                         <?= htmlspecialchars($metric_data['previous']['value']) ?>
 | ||
|  | <?php } ?>
 | ||
|  | <?php } else { ?>
 | ||
|  |                                                         <span class="text-muted">No previous data</span> | ||
|  | <?php } ?>
 | ||
|  |                                                     </td> | ||
|  |                                                 </tr> | ||
|  | <?php } ?>
 | ||
|  | <?php } ?>
 | ||
|  | <?php } ?>
 | ||
|  |                                             </tbody> | ||
|  |                                         </table> | ||
|  |                                     </div> | ||
|  | <?php } ?>
 | ||
|  |                                 </div> | ||
|  |                             </div> | ||
|  | <?php } ?>
 | ||
|  | <?php } else { ?>
 | ||
|  |                             <div class="alert alert-info m-3" role="alert"> | ||
|  |                                 No data available from any agents. Please check agent configuration and connectivity. | ||
|  |                             </div> | ||
|  | <?php } ?>
 | ||
|  |                         </div> | ||
|  |                     </div> | ||
|  |                 </div> | ||
|  |                 <!-- /latest data --> |