Commit 88a27abe authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

AjaxModalListener (unicaen.js) : déclenchement d'un événement lors du clic sur...

AjaxModalListener (unicaen.js) : déclenchement d'un événement lors du clic sur le lien et d'un autre lorsque la modale est ouverte (noms à transmettre via les attributs 'data-event-modal-loading' et 'data-event-modal-opened' du lien).
parent 0184263f
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@ CHANGELOG
- Doctrine ORM : support de la fonction coalesce(), y compris dans un order by.
- AjaxModalListener (unicaen.js) : une erreur explicite est émise si le formulaire n'a pas l'attribut requis 'action'.
- AjaxModalListener (unicaen.js) : ajout de la classe CSS 'loading' sur le 'body' lors du clic sur le lien puis retrait lorsque la modale est ouverte.
- AjaxModalListener (unicaen.js) : déclenchement d'un événement lors du clic sur le lien et d'un autre lorsque la modale est ouverte 
  (noms à transmettre via les attributs 'data-event-modal-loading' et 'data-event-modal-opened' du lien).
- [FIX] FormElementCollection : corrections complémentaires pour que SearchAndSelect fonctionne.

6.0.14
+17 −0
Original line number Diff line number Diff line
@@ -499,12 +499,29 @@ function AjaxModalListener(dialogDivId)
            modalDialog.data('a', anchor);
            this.modalEventName = anchor.data('event');

            // déclenchement d'un événement dont le nom est fourni par le lien cliqué (via un attribut "data-xxxx")
            var eventName = anchor.data('event-modal-loading');
            if (eventName) {
                var event = jQuery.Event(eventName, {div: modalDialog, a: modalDialog.data('a')});
                // console.log("Triggering '" + event.type + "' event...");
                // console.log("Event object : ", event);
                this.eventListener.trigger(event);
            }

            // requête AJAX pour obtenir le nouveau contenu de la fenêtre modale
            $.get(url, {modal: 1}, $.proxy(function (data)
            {
                // remplacement du contenu de la fenêtre modale
                $(".modal-content", modalDialog.modal('show')).html(this.extractNewModalContent(data));

                // déclenchement d'un événement dont le nom est fourni par le lien cliqué (via un attribut "data-xxxx")
                var eventName = anchor.data('event-modal-opened');
                if (eventName) {
                    var event = jQuery.Event(eventName, {div: modalDialog, a: modalDialog.data('a')});
                    console.log("Triggering '" + event.type + "' event...");
                    console.log("Event object : ", event);
                    this.eventListener.trigger(event);
                }

                $("body").removeClass('loading');
            }, this));