Files
backPRO/templates/logs/index.php
Jacek Pyziak e9a3602576 feat: Add SEMSTORM domain input and SEO panel links
- Added optional SEMSTORM domain input field in site creation and editing forms.
- Introduced SEO panel links in site dashboard and edit pages.
- Created a new cron job for SEMSTORM data synchronization.
- Implemented database migrations for cron logs and site SEO metrics.
- Developed SiteSeoSyncService to handle SEMSTORM data fetching and storage.
- Added logging functionality for cron events.
- Created a new LogController to display cron logs with filtering options.
- Added SEO statistics dashboard with visual representation of metrics.
- Implemented site SEO metrics model for data retrieval and manipulation.
2026-02-20 23:49:40 +01:00

77 lines
3.3 KiB
PHP

<div class="d-flex justify-content-between align-items-center mb-4">
<h2 class="mb-0">Log crona</h2>
<span class="badge text-bg-secondary">Kanał: publish</span>
</div>
<form class="row g-2 mb-3" method="get" action="">
<div class="col-auto">
<select name="level" class="form-select">
<option value="">Wszystkie poziomy</option>
<option value="INFO" <?= $level === 'INFO' ? 'selected' : '' ?>>INFO</option>
<option value="WARNING" <?= $level === 'WARNING' ? 'selected' : '' ?>>WARNING</option>
<option value="ERROR" <?= $level === 'ERROR' ? 'selected' : '' ?>>ERROR</option>
</select>
</div>
<div class="col-auto">
<input type="date" name="date_from" class="form-control" value="<?= htmlspecialchars($dateFrom) ?>" placeholder="Od">
</div>
<div class="col-auto">
<input type="date" name="date_to" class="form-control" value="<?= htmlspecialchars($dateTo) ?>" placeholder="Do">
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary">Filtruj</button>
</div>
</form>
<div class="card">
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover mb-0 align-middle">
<thead>
<tr>
<th style="width: 190px;">Data zdarzenia</th>
<th style="width: 110px;">Poziom</th>
<th>Zdarzenie</th>
</tr>
</thead>
<tbody>
<?php if (empty($events)): ?>
<tr>
<td colspan="3" class="text-center text-muted py-4">Brak zdarzeń w logach crona.</td>
</tr>
<?php else: ?>
<?php foreach ($events as $event): ?>
<tr>
<td class="text-nowrap"><?= htmlspecialchars($event['datetime']) ?></td>
<td>
<?php if ($event['level'] === 'ERROR'): ?>
<span class="badge text-bg-danger">ERROR</span>
<?php elseif ($event['level'] === 'WARNING'): ?>
<span class="badge text-bg-warning">WARNING</span>
<?php else: ?>
<span class="badge text-bg-success">INFO</span>
<?php endif; ?>
</td>
<td><?= htmlspecialchars($event['message']) ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</tbody>
</table>
</div>
</div>
</div>
<?php if ($pages > 1): ?>
<nav class="mt-3">
<ul class="pagination justify-content-center">
<?php for ($i = 1; $i <= $pages; $i++): ?>
<li class="page-item<?= $i === $page ? ' active' : '' ?>">
<a class="page-link" href="?<?= http_build_query(array_merge($_GET, ['page' => $i])) ?>"><?= $i ?></a>
</li>
<?php endfor; ?>
</ul>
</nav>
<?php endif; ?>