Release 0.247: improve delete confirmation dialog

This commit is contained in:
2026-02-08 01:58:59 +01:00
parent bbf0c075b8
commit 9a72d92e13
4 changed files with 112 additions and 6 deletions

View File

@@ -149,11 +149,22 @@ $perPage = (int)($list->pagination['per_page'] ?? 15);
<?php endforeach; ?>
<td class="text-center">
<?php foreach (($row['_actions'] ?? []) as $action): ?>
<?php
$confirmMessage = (string)($action['confirm'] ?? '');
$needsConfirm = $confirmMessage !== '';
$actionClass = (string)($action['class'] ?? 'btn btn-default btn-xs');
if ($needsConfirm) {
$actionClass .= ' js-table-action-confirm';
}
?>
<a
href="<?= htmlspecialchars((string)($action['url'] ?? '#'), ENT_QUOTES, 'UTF-8'); ?>"
class="<?= htmlspecialchars((string)($action['class'] ?? 'btn btn-default btn-xs'), ENT_QUOTES, 'UTF-8'); ?>"
<?php if (!empty($action['confirm'])): ?>
onclick="return confirm('<?= htmlspecialchars((string)$action['confirm'], ENT_QUOTES, 'UTF-8'); ?>');"
class="<?= htmlspecialchars($actionClass, ENT_QUOTES, 'UTF-8'); ?>"
<?php if ($needsConfirm): ?>
data-confirm-title="Potwierdzenie"
data-confirm-message="<?= htmlspecialchars($confirmMessage, ENT_QUOTES, 'UTF-8'); ?>"
data-confirm-ok="<?= htmlspecialchars((string)($action['confirm_ok'] ?? 'Usun'), ENT_QUOTES, 'UTF-8'); ?>"
data-confirm-cancel="<?= htmlspecialchars((string)($action['confirm_cancel'] ?? 'Anuluj'), ENT_QUOTES, 'UTF-8'); ?>"
<?php endif; ?>
>
<?= htmlspecialchars((string)($action['label'] ?? ''), ENT_QUOTES, 'UTF-8'); ?>
@@ -217,3 +228,96 @@ $perPage = (int)($list->pagination['per_page'] ?? 15);
</div>
</div>
</div>
<style type="text/css">
.jconfirm.table-list-confirm-dialog .jconfirm-row {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
.jconfirm.table-list-confirm-dialog .jconfirm-box-container {
width: 100%;
max-width: 560px;
padding-left: 12px;
padding-right: 12px;
margin: 0 auto;
}
.jconfirm.table-list-confirm-dialog .jconfirm-box {
width: 100% !important;
}
</style>
<script type="text/javascript">
(function($) {
if (!$) {
return;
}
$(document).off('click.tableListConfirm', '.js-table-action-confirm');
$(document).on('click.tableListConfirm', '.js-table-action-confirm', function(e) {
e.preventDefault();
var $link = $(this);
var href = $link.attr('href');
var title = $link.data('confirmTitle') || 'Potwierdzenie';
var message = $link.data('confirmMessage') || 'Czy na pewno chcesz kontynuowac?';
var okLabel = $link.data('confirmOk') || 'Usun';
var cancelLabel = $link.data('confirmCancel') || 'Anuluj';
if (!href) {
return false;
}
if (typeof $.confirm === 'function') {
$.confirm({
title: String(title),
content: String(message),
type: 'red',
boxWidth: '560px',
useBootstrap: false,
animation: 'scale',
closeAnimation: 'scale',
backgroundDismissAnimation: 'shake',
container: 'body',
theme: 'modern',
columnClass: '',
typeAnimated: true,
lazyOpen: false,
draggable: false,
closeIcon: true,
containerFluid: true,
escapeKey: true,
backgroundDismiss: true,
animationBounce: 1.1,
watchInterval: 100,
offsetTop: 0,
offsetBottom: 0,
customClass: 'table-list-confirm-dialog',
buttons: {
cancel: {
text: String(cancelLabel),
btnClass: 'btn-default'
},
confirm: {
text: String(okLabel),
btnClass: 'btn-danger',
action: function() {
window.location.href = href;
}
}
}
});
return false;
}
if (window.confirm(String(message))) {
window.location.href = href;
}
return false;
});
})(window.jQuery);
</script>

BIN
updates/0.20/ver_0.247.zip Normal file

Binary file not shown.

View File

@@ -1,5 +1,7 @@
<b>ver. 0.245</b><br />
<b>ver. 0.246</b><br />
<b>ver. 0.247</b><br />
- UPDATE - nowy dialog potwierdzenia usuwania w `components/table-list` (zamiast natywnego `confirm`)
- UPDATE - popup usuwania: wiekszy rozmiar i centrowanie na srodku ekranu
<hr><b>ver. 0.246</b><br />
- UPDATE - migracja listy banerow do nowego mechanizmu tabeli (`components/table-list`, filtrowanie, sortowanie, paginacja)
- UPDATE - `admin\Controllers\BannerController::list()` buduje `PaginatedTableViewModel`
- UPDATE - `Domain\Banner\BannerRepository::listForAdmin()` (bezpieczne filtrowanie i sortowanie)

View File

@@ -1,5 +1,5 @@
<?
$current_ver = 246;
$current_ver = 247;
for ($i = 1; $i <= $current_ver; $i++)
{