Skip to content

Commit 2a37a11

Browse files
committed
Fix datetime fields.
1 parent 58c2bf6 commit 2a37a11

3 files changed

Lines changed: 51 additions & 9 deletions

File tree

templates/Admin/QueuedJobs/edit.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
<div class="card-body">
1919
<?= $this->Form->create($queuedJob) ?>
2020
<?= $this->Form->control('notbefore', [
21-
'type' => 'datetime-local',
22-
'value' => $queuedJob->notbefore?->format('Y-m-d\TH:i'),
23-
'class' => 'form-control',
21+
'type' => 'text',
22+
'value' => $queuedJob->notbefore?->format('Y-m-d H:i'),
23+
'class' => 'form-control flatpickr-datetime',
2424
]) ?>
2525
<?= $this->Form->control('priority', ['class' => 'form-control']) ?>
2626
<div class="mt-3">

templates/Admin/QueuedJobs/test.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
</div>
2626

2727
<?= $this->Form->control('notbefore', [
28-
'type' => 'datetime-local',
29-
'value' => (new \Cake\I18n\DateTime())->addMinutes(5)->format('Y-m-d\TH:i'),
30-
'class' => 'form-control',
28+
'type' => 'text',
29+
'value' => (new \Cake\I18n\DateTime())->addMinutes(5)->format('Y-m-d H:i'),
30+
'class' => 'form-control flatpickr-datetime',
3131
'label' => __d('queue', 'Schedule For (Not Before)'),
3232
]) ?>
3333

templates/layout/queue.php

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
<!-- Chart.js for stats page -->
3232
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.7/dist/chart.umd.min.js"></script>
3333

34+
<!-- Flatpickr for datetime inputs -->
35+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr@4.6.13/dist/flatpickr.min.css">
36+
<script src="https://cdn.jsdelivr.net/npm/flatpickr@4.6.13/dist/flatpickr.min.js"></script>
37+
3438
<style>
3539
:root {
3640
--queue-primary: #0d6efd;
@@ -394,9 +398,35 @@
394398
<!-- Main Content -->
395399
<main class="queue-main flex-grow-1">
396400
<!-- Flash Messages -->
397-
<div class="queue-flash">
398-
<?= $this->Flash->render() ?>
399-
</div>
401+
<?php
402+
$flashMessages = $this->getRequest()->getSession()->consume('Flash.flash');
403+
if ($flashMessages) {
404+
echo '<div class="queue-flash">';
405+
foreach ($flashMessages as $flash) {
406+
$element = $flash['element'] ?? 'flash/default';
407+
$alertClass = match ($element) {
408+
'flash/success' => 'alert-success',
409+
'flash/error' => 'alert-danger',
410+
'flash/warning' => 'alert-warning',
411+
default => 'alert-info',
412+
};
413+
$icon = match ($element) {
414+
'flash/success' => 'fa-check-circle',
415+
'flash/error' => 'fa-exclamation-circle',
416+
'flash/warning' => 'fa-exclamation-triangle',
417+
default => 'fa-info-circle',
418+
};
419+
?>
420+
<div class="alert <?= $alertClass ?> alert-dismissible fade show" role="alert">
421+
<i class="fas <?= $icon ?> me-2"></i>
422+
<?= h($flash['message']) ?>
423+
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
424+
</div>
425+
<?php
426+
}
427+
echo '</div>';
428+
}
429+
?>
400430

401431
<?= $this->fetch('content') ?>
402432
</main>
@@ -426,6 +456,18 @@
426456
return new bootstrap.Tooltip(tooltipTriggerEl);
427457
});
428458

459+
// Initialize flatpickr datetime inputs with D M Y display format
460+
document.querySelectorAll('.flatpickr-datetime').forEach(function(el) {
461+
flatpickr(el, {
462+
enableTime: true,
463+
dateFormat: 'Y-m-d H:i',
464+
altInput: true,
465+
altFormat: 'd M Y H:i',
466+
time_24hr: true,
467+
allowInput: true,
468+
});
469+
});
470+
429471
// Confirmation dialogs for postLink forms
430472
document.querySelectorAll('form[data-confirm-message]').forEach(function(form) {
431473
form.addEventListener('submit', function(e) {

0 commit comments

Comments
 (0)