84 lines
3.4 KiB
PHP
84 lines
3.4 KiB
PHP
<?php ob_start(); ?>
|
|
<h2>Dashboard</h2>
|
|
|
|
<div class="row mb-4">
|
|
<div class="col-md-3">
|
|
<div class="card text-white bg-primary">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Устройства</h5>
|
|
<p class="card-text display-6"><?= $deviceCount ?></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card text-white bg-info">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Новые находки</h5>
|
|
<p class="card-text display-6"><?= $newDiscoveries ?></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card text-white bg-success">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Сервисы</h5>
|
|
<p class="card-text display-6">0</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card text-white bg-warning">
|
|
<div class="card-body">
|
|
<h5 class="card-title">Требуют внимания</h5>
|
|
<p class="card-text display-6">0</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="card mb-4">
|
|
<div class="card-header">Последние сканирования</div>
|
|
<div class="card-body">
|
|
<?php if (empty($recentScans)): ?>
|
|
<p class="text-muted">Нет запусков сканирования.</p>
|
|
<?php else: ?>
|
|
<table class="table table-sm">
|
|
<thead><tr><th>Тип</th><th>Статус</th><th>Когда</th></tr></thead>
|
|
<tbody>
|
|
<?php foreach ($recentScans as $scan): ?>
|
|
<tr>
|
|
<td><?= htmlspecialchars($scan->type) ?></td>
|
|
<td>
|
|
<?php
|
|
$badge = match ($scan->status) {
|
|
'pending' => 'bg-warning', 'running' => 'bg-info',
|
|
'done' => 'bg-success', 'failed' => 'bg-danger',
|
|
default => 'bg-secondary',
|
|
};
|
|
?>
|
|
<span class="badge <?= $badge ?>"><?= htmlspecialchars($scan->status) ?></span>
|
|
</td>
|
|
<td><?= $scan->createdAt->format('m-d H:i') ?></td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="card mb-4">
|
|
<div class="card-header">Быстрые действия</div>
|
|
<div class="card-body">
|
|
<a href="/discovery" class="btn btn-outline-primary mb-2">Сканирование сети</a>
|
|
<a href="/devices/create" class="btn btn-outline-secondary mb-2">Добавить устройство</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php $content = ob_get_clean(); ?>
|
|
<?php require dirname(__DIR__) . '/layout.php'; ?>
|