feat: complete assessment tasks

This commit is contained in:
Ayobami
2025-08-07 16:34:00 +01:00
parent 463a238503
commit c32a12c13f
7 changed files with 381 additions and 93 deletions
+52 -15
View File
@@ -10,16 +10,36 @@
<div class="container">
<h2 class="text-left">Report &nbsp; <a class="btn btn-primary d-none" href="/admin/report/csv?format=csv&date=<?php echo $data['date']; ?>">Export</a></h2>
<div class="row mt-2 mb-2">
<div class="col-md-6 col-md-offset-3">
<form action="?" method="GET">
<div class="input-group">
<input type="date" name="date" class="form-control mr-2" placeholder="" value="<?php echo $data['date']; ?>">
<span class="input-group-btn">
<button class="btn btn-primary" type="submit">Search</button>
</span>
</div><!-- /input-group -->
<div class="col-md-10 col-md-offset-1">
<form action="?" method="GET" class="form-inline">
<div class="input-group mr-2 mb-2">
<label class="mr-2" for="date">Date</label>
<input id="date" type="date" name="date" class="form-control" placeholder="" value="<?php echo htmlspecialchars($data['date'] ?? ''); ?>">
</div>
<div class="input-group mr-2 mb-2">
<label class="mr-2" for="start_date">Start</label>
<input id="start_date" type="date" name="start_date" class="form-control" placeholder=""
value="<?php echo htmlspecialchars($data['start_date'] ?? ''); ?>">
</div>
<div class="input-group mr-2 mb-2">
<label class="mr-2" for="end_date">End</label>
<input id="end_date" type="date" name="end_date" class="form-control" placeholder=""
value="<?php echo htmlspecialchars($data['end_date'] ?? ''); ?>">
</div>
<div class="input-group mr-2 mb-2">
<label class="mr-2" for="project">Project</label>
<input id="project" type="text" name="project" class="form-control" placeholder="Fuzzy project search..."
value="<?php echo htmlspecialchars($data['project'] ?? ''); ?>">
</div>
<span class="input-group-btn mb-2">
<button class="btn btn-primary mr-2" type="submit">Search</button>
<a class="btn btn-secondary" href="/admin/report">Clear</a>
</span>
<div class="text-muted small ml-2 mb-2">
Tip: If a start or end date is provided, the single Date filter is ignored.
</div>
</form>
</div><!-- /.col-md-6 -->
</div><!-- /.col-md-10 -->
</div><!-- /.row -->
<!-- Table Responsive Wrapper -->
<div class="table-responsive">
@@ -96,28 +116,45 @@
<!-- Pagination -->
<nav aria-label="Page navigation">
<ul class="pagination">
<?php
// Preserve filters in pagination links
$queryParams = [];
if (!empty($data['date'])) {
$queryParams['date'] = $data['date'];
}
if (!empty($data['start_date'])) {
$queryParams['start_date'] = $data['start_date'];
}
if (!empty($data['end_date'])) {
$queryParams['end_date'] = $data['end_date'];
}
if (!empty($data['project'])) {
$queryParams['project'] = $data['project'];
}
$queryString = !empty($queryParams) ? '&' . http_build_query($queryParams) : '';
?>
<li class="ml-2">
<a href="?page=1" aria-label="Previous">
<a href="?page=1<?= $queryString ?>" aria-label="Previous">
<span aria-hidden="true">&laquo;&laquo;</span>
</a>
</li>
<li class="ml-2">
<a href="?page=<?= ($currentPage - 1) > 0 ? $currentPage - 1 : 1 ?>" aria-label="Previous">
<a href="?page=<?= ($currentPage - 1) > 0 ? $currentPage - 1 : 1 ?><?= $queryString ?>" aria-label="Previous">
<span aria-hidden="true">&laquo;</span>
</a>
</li>
<?php
for ($i = $startPage; $i <= $endPage; $i++) {
echo '<li class="ml-2' . ($currentPage == $i ? ' active' : '') . '"><a href="?page=' . $i . '">' . $i . '</a></li>';
echo '<li class="ml-2' . ($currentPage == $i ? ' active' : '') . '"><a href="?page=' . $i . $queryString . '">' . $i . '</a></li>';
}
?>
<li class="ml-2">
<a href="?page=<?= ($currentPage + 1) < $totalPages ? $currentPage + 1 : $totalPages ?>" aria-label="Next">
<a href="?page=<?= ($currentPage + 1) < $totalPages ? $currentPage + 1 : $totalPages ?><?= $queryString ?>" aria-label="Next">
<span aria-hidden="true">&raquo;</span>
</a>
</li>
<li class="ml-2">
<a href="?page=<?= $totalPages ?>" aria-label="Next">
<a href="?page=<?= $totalPages ?><?= $queryString ?>" aria-label="Next">
<span aria-hidden="true">&raquo;&raquo;</span>
</a>
</li>
@@ -160,4 +197,4 @@ $.ajax({
});
};
</script>
</script>