Projet

Général

Profil

Development #23380

Nanterre: paiement : griser le bouton après un clic

Ajouté par Brice Mallet il y a presque 6 ans. Mis à jour il y a presque 6 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
24 avril 2018
Echéance:
27 avril 2018
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Ticket pour EO, développeur


Fichiers

Révisions associées

Révision 69ac7b1e (diff)
Ajouté par Thomas Noël il y a presque 6 ans

nanterre: disable invoice button on submit (#23380)

Historique

#2

Mis à jour par Thomas Noël il y a presque 6 ans

#3

Mis à jour par Frédéric Péters il y a presque 6 ans

Remplacer les <input type=submit> par des <button>, comme partout ailleurs ? Et comme ça simplement pouvoir poser la classe "disabeld-during-submit" sur le formulaire ?

#4

Mis à jour par Thomas Noël il y a presque 6 ans

J'ai donc tenté ce qui suit, mais ça ne marche pas, le bouton n'est pas désactivé et on peut double cliquer :

diff --git a/templates/variants/nanterre/combo/json/rsu-frontoffice-factures.html b/templates/variants/nanterre/combo/json/rsu-frontoffice-factures.html
index cd5b1dd..68349a6 100644
--- a/templates/variants/nanterre/combo/json/rsu-frontoffice-factures.html
+++ b/templates/variants/nanterre/combo/json/rsu-frontoffice-factures.html
@@ -95,7 +95,7 @@

         {% if parameters.paiement_actif %}
         {# Adresse pour paiement : <input type="email" name="email" value="{{ request.user.email }}"/> #}
-        <input type="submit" value="Payer les factures sélectionnées"/ disabled="disabled">
+        <button name="submit" value="Payer les factures sélectionnées" disabled="disabled">Payer les factures sélectionnées</button>
         </form>

         <script>
@@ -108,15 +108,20 @@
             });
             $("span#totalamount").text(sum.toFixed(2).replace('.', ','));
             if (sum > 0.0) {
-              $("input:submit").attr("disabled", null);
+              $("button[name=submit]").attr("disabled", null);
             } else {
-              $("input:submit").attr("disabled", "disabled");
+              $("button[name=submit]").attr("disabled", "disabled");
             }
           });
           $("input#checkall").on('click', function (event) {
             event.preventDefault();
             $("input[name='num_factures']").click();
           });
+          // on évite les double-clic en désactivant le bouton au premier clic
+          $('form').on('submit', function(event) {
+            var $form = $(this);
+            $form.addClass('disabled-during-submit');
+          });
         });
         </script>
         {% endif %}
#5

Mis à jour par Frédéric Péters il y a presque 6 ans

Il y a une URL ? En-dehors de tout javascript, ça donne quoi comme résultat en mettant la classe sur le <form> ?

#7

Mis à jour par Thomas Noël il y a presque 6 ans

Frédéric Péters a écrit :

En-dehors de tout javascript, ça donne quoi comme résultat en mettant la classe sur le <form> ?

Ça fait rien du tout (et je m'interroge intérieurement, comment une class css pourrait désactiver un formulaire, j'ai vraiment du mal avec ces logiques)

#8

Mis à jour par Frédéric Péters il y a presque 6 ans

<div class="buttons"> autour du bouton. (là-dessus il sera dit que ça ajoute trop de marge au-dessus, div.invoices div.buttons { margin: 0 0 1ex 1ex; } et ça arrangera aussi l'état actuel qui colle le bouton aux bords).

#10

Mis à jour par Thomas Noël il y a presque 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 69ac7b1e20c154e9bc523fc40215361998107337
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Thu Apr 26 14:54:35 2018 +0200

    nanterre: disable invoice button on submit (#23380)

#11

Mis à jour par Brice Mallet il y a presque 6 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF