fix: replace all native confirm() dialogs with styled modal macros
Some checks failed
CI / ruff (push) Successful in 9s
CI / validate (push) Has been cancelled
CI / dependency-scanning (push) Has been cancelled
CI / docs (push) Has been cancelled
CI / deploy (push) Has been cancelled
CI / pytest (push) Has been cancelled

Migrated ~68 native browser confirm() calls across 74 files to use the
project's confirm_modal/confirm_modal_dynamic Jinja2 macros, providing
consistent styled confirmation dialogs instead of plain browser popups.

Modules updated: core, tenancy, cms, marketplace, messaging, billing,
customers, orders, cart. Uses danger/warning/info variants and
double-confirm pattern for destructive delete operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-19 16:56:25 +01:00
parent 182610283d
commit 167bb50f4f
74 changed files with 939 additions and 436 deletions

View File

@@ -26,6 +26,10 @@ function adminMerchants() {
loading: false,
error: null,
// Modal state
showDeleteMerchantModal: false,
merchantToDelete: null,
// Search and filters
filters: {
search: '',
@@ -192,23 +196,19 @@ function adminMerchants() {
window.location.href = `/admin/merchants/${merchantId}/edit`;
},
// Delete merchant
async deleteMerchant(merchant) {
// Prompt delete merchant modal
promptDeleteMerchant(merchant) {
if (merchant.store_count > 0) {
merchantsLog.warn('Cannot delete merchant with stores');
Utils.showToast(`Cannot delete "${merchant.name}" because it has ${merchant.store_count} store(s). Please delete or reassign the stores first.`, 'warning');
return;
}
this.merchantToDelete = merchant;
this.showDeleteMerchantModal = true;
},
const confirmed = confirm(
`Are you sure you want to delete "${merchant.name}"?\n\nThis action cannot be undone.`
);
if (!confirmed) {
merchantsLog.info('Delete cancelled by user');
return;
}
// Delete merchant
async deleteMerchant(merchant) {
try {
merchantsLog.info('Deleting merchant:', merchant.id);