From 33c3e21e32934ac916fc56187c6bb0ddf2ec753b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Reuiller?= Date: Wed, 5 Feb 2025 15:05:54 +0100 Subject: [PATCH] use Alpine component to fix modals on every browsers --- lemarche/static/js/siae_user_modals.js | 81 +++++++------------ lemarche/templates/dashboard/siae_users.html | 37 +++++---- .../siaes/_siae_user_delete_modal.html | 28 ++++--- .../_siae_user_request_cancel_modal.html | 31 +++---- .../_siae_user_request_confirm_modal.html | 31 +++---- 5 files changed, 102 insertions(+), 106 deletions(-) diff --git a/lemarche/static/js/siae_user_modals.js b/lemarche/static/js/siae_user_modals.js index 637e386ae..39f5b057d 100644 --- a/lemarche/static/js/siae_user_modals.js +++ b/lemarche/static/js/siae_user_modals.js @@ -1,52 +1,33 @@ -document.addEventListener("DOMContentLoaded", function() { - document.getElementById('siae_user_request_confirm_modal').addEventListener('dsfr.disclose', (event) => { - // Button that triggered the modal - var button = event.explicitOriginalTarget; - var siaeSlug = button.dataset["siaeSlug"]; - var initiatorFullName = button.dataset["initiatorFullName"]; - var siaeUserRequestId = button.dataset["siaeUserRequestId"]; +document.addEventListener('alpine:init', function () { + Alpine.data('siaeUserModals', () => ({ + siaeSlug: null, + id: null, + fullName: null, - // Update the modal's content - // - siae user full name - // - edit the form action url - var modal = document.querySelector('#siae_user_request_confirm_modal'); - modal.querySelector('#initiator-full-name-to-replace').textContent = initiatorFullName; - var modalForm = modal.querySelector('form'); - var formActionUrl = modalForm.getAttribute('action'); - modalForm.setAttribute('action', formActionUrl.replace('siae-slug-to-replace', siaeSlug).replace('siae-user-request-id-to-replace', siaeUserRequestId)); - }); - - document.getElementById('siae_user_request_cancel_modal').addEventListener('dsfr.disclose', (event) => { - // Button that triggered the modal - var button = event.explicitOriginalTarget; - var siaeSlug = button.dataset["siaeSlug"]; - var initiatorFullName = button.dataset["initiatorFullName"]; - var siaeUserRequestId = button.dataset["siaeUserRequestId"]; - - // Update the modal's content - // - siae user full name - // - edit the form action url - var modal = document.querySelector('#siae_user_request_cancel_modal'); - modal.querySelector('#initiator-full-name-to-replace').textContent = initiatorFullName; - var modalForm = modal.querySelector('form'); - var formActionUrl = modalForm.getAttribute('action'); - modalForm.setAttribute('action', formActionUrl.replace('siae-slug-to-replace', siaeSlug).replace('siae-user-request-id-to-replace', siaeUserRequestId)); - }); - - document.getElementById('siae_user_delete_modal').addEventListener('dsfr.disclose', (event) => { - // Button that triggered the modal - var button = event.explicitOriginalTarget; - var siaeSlug = button.dataset["siaeSlug"]; - var userFullName = button.dataset["userFullName"]; - var siaeUserId = button.dataset["siaeUserId"]; - - // Update the modal's content - // - siae user full name - // - edit the form action url - var modal = document.querySelector('#siae_user_delete_modal'); - modal.querySelector('#user-full-name-to-replace').textContent = userFullName; - var modalForm = modal.querySelector('form'); - var formActionUrl = modalForm.getAttribute('action'); - modalForm.setAttribute('action', formActionUrl.replace('siae-slug-to-replace', siaeSlug).replace('siae-user-id-to-replace', siaeUserId)); - }); + initOptions(siaeSlug, fullName, id) { + this.siaeSlug = siaeSlug; + this.fullName = fullName; + this.id = id; + }, + openModal(modalID, replaceIdSelector) { + // Update the modal's content + // - edit the form action url + // - open the modal + let modal = document.querySelector(`#${modalID}`); + let modalForm = modal.querySelector('form'); + let formActionUrl = modalForm.getAttribute('data-action'); + modal.querySelector('#full-name-to-replace').textContent = this.fullName; + modalForm.setAttribute('action', formActionUrl.replace('siae-slug-to-replace', this.siaeSlug).replace(replaceIdSelector, this.id)); + dsfr(modal).modal.disclose(); + }, + confirmUserRequest() { + this.openModal('siae_user_request_confirm_modal', 'siae-user-request-id-to-replace'); + }, + cancelUserRequest() { + this.openModal('siae_user_request_cancel_modal', 'siae-user-request-id-to-replace'); + }, + deleteUser() { + this.openModal('siae_user_delete_modal', 'siae-user-id-to-replace'); + } + })); }); diff --git a/lemarche/templates/dashboard/siae_users.html b/lemarche/templates/dashboard/siae_users.html index 24f512898..75408a314 100644 --- a/lemarche/templates/dashboard/siae_users.html +++ b/lemarche/templates/dashboard/siae_users.html @@ -25,6 +25,16 @@

Mes collaborateurs

+ + + + {% if siae.siaeuserrequest_set.pending.count %}
@@ -56,22 +66,18 @@

{{ siaeuserrequest.initiator.full_n
@@ -103,11 +109,9 @@

{{ siaeuser.user.full_name }}

  • @@ -139,5 +143,8 @@

    {% include "siaes/_siae_user_delete_modal.html" %} {% endblock modals %} {% block extra_js %} + {% endblock extra_js %} diff --git a/lemarche/templates/siaes/_siae_user_delete_modal.html b/lemarche/templates/siaes/_siae_user_delete_modal.html index c09e0c400..cf38bec5a 100644 --- a/lemarche/templates/siaes/_siae_user_delete_modal.html +++ b/lemarche/templates/siaes/_siae_user_delete_modal.html @@ -1,4 +1,7 @@ - +
    @@ -7,22 +10,21 @@
    -

    - Supprimer le collaborateur -

    -

    ne sera plus rattaché à cette structure.

    +

    Supprimer le collaborateur

    +

    + ne sera plus rattaché à cette structure. +

    diff --git a/lemarche/templates/siaes/_siae_user_request_cancel_modal.html b/lemarche/templates/siaes/_siae_user_request_cancel_modal.html index cb56a4ce0..a85ae8ea3 100644 --- a/lemarche/templates/siaes/_siae_user_request_cancel_modal.html +++ b/lemarche/templates/siaes/_siae_user_request_cancel_modal.html @@ -1,28 +1,31 @@ - +
    - +
    -

    - Refuser la demande -

    -

    Souhaitez vous refuser comme collaborateur sur votre structure ?

    +

    Refuser la demande

    +

    + Souhaitez vous refuser comme collaborateur sur votre structure ? +

    diff --git a/lemarche/templates/siaes/_siae_user_request_confirm_modal.html b/lemarche/templates/siaes/_siae_user_request_confirm_modal.html index 4e64e5b5f..11605a0dd 100644 --- a/lemarche/templates/siaes/_siae_user_request_confirm_modal.html +++ b/lemarche/templates/siaes/_siae_user_request_confirm_modal.html @@ -1,28 +1,31 @@ - +
    - +
    -

    - Accepter la demande -

    -

    pourra accéder à votre structure et modifier le contenu de sa fiche commerciale.

    +

    Accepter la demande

    +

    + pourra accéder à votre structure et modifier le contenu de sa fiche commerciale. +