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

@@ -3,7 +3,7 @@
{% from 'shared/macros/headers.html' import page_header_flex, refresh_button %}
{% from 'shared/macros/tables.html' import table_wrapper, table_header, simple_pagination %}
{% from 'shared/macros/modals.html' import form_modal %}
{% from 'shared/macros/modals.html' import form_modal, confirm_modal_dynamic %}
{% block title %}Invoices{% endblock %}
@@ -219,7 +219,7 @@
</button>
<button
x-show="invoice.status === 'draft'"
@click="updateStatus(invoice, 'issued')"
@click="pendingStatusInvoice = invoice; pendingNewStatus = 'issued'; showUpdateStatusConfirm = true"
class="flex items-center justify-center px-2 py-1 text-sm text-blue-600 transition-colors duration-150 rounded-md hover:bg-blue-100 dark:hover:bg-blue-900"
title="Mark as Issued"
>
@@ -227,7 +227,7 @@
</button>
<button
x-show="invoice.status === 'issued'"
@click="updateStatus(invoice, 'paid')"
@click="pendingStatusInvoice = invoice; pendingNewStatus = 'paid'; showUpdateStatusConfirm = true"
class="flex items-center justify-center px-2 py-1 text-sm text-green-600 transition-colors duration-150 rounded-md hover:bg-green-100 dark:hover:bg-green-900"
title="Mark as Paid"
>
@@ -235,7 +235,7 @@
</button>
<button
x-show="invoice.status !== 'cancelled' && invoice.status !== 'paid'"
@click="updateStatus(invoice, 'cancelled')"
@click="pendingStatusInvoice = invoice; pendingNewStatus = 'cancelled'; showUpdateStatusConfirm = true"
class="flex items-center justify-center px-2 py-1 text-sm text-red-600 transition-colors duration-150 rounded-md hover:bg-red-100 dark:hover:bg-red-900"
title="Cancel Invoice"
>
@@ -467,6 +467,10 @@
</div>
</div>
<!-- Create Invoice Modal -->
<!-- Update Invoice Status Confirm Modal -->
{{ confirm_modal_dynamic('updateStatusConfirm', 'Update Invoice Status', "'Are you sure you want to ' + ({'issued': 'mark as issued', 'paid': 'mark as paid', 'cancelled': 'cancel'}[pendingNewStatus] || pendingNewStatus) + ' this invoice?'", 'updateStatus(pendingStatusInvoice, pendingNewStatus)', 'showUpdateStatusConfirm', 'Confirm', 'Cancel', 'warning') }}
<!-- Create Invoice Modal -->
{% call form_modal('createInvoiceModal', 'Create Invoice', show_var='showCreateModal', submit_action='createInvoice()', submit_text='Create Invoice', loading_var='creatingInvoice', loading_text='Creating...', size='sm') %}
<div class="mb-4">