Projet

Général

Profil

Bug #36734

erreur d'affichage des boutons d'actions en masse pour une fonction comportant des tirets dans le slug

Ajouté par Serghei Mihai (congés, retour 15/05) il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
07 octobre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Problème constaté dans #36713.

L'action globale est disponible pour le rôle ayant le slug "debug-et-assistance".

Cela donne donc un bouton avec le HTML suivant:

<button data-visible_for__debug-et-assistance="true" value="Mise à jour des données (Demande traitée)" name="button-action-9">Mise à jour des données (Demande traitée)</button>

Dans la fonction Javascript les cases à cocher des demandes correspondant à cette action sont recherchées par le bout:

        for (var key in $(elem).first().data()) {
          if (key == 'visible_for_all') {
            visible = true;
            break;
          }
          if ($('input[type=checkbox][data-is-' + key.substr(12) + ']:checked').length) {
            visible = true;
            break;
          }
        }

Or key a la valeur: debugEtAssistance, comme retourné par $(elem).first().data().


Fichiers

Révisions associées

Révision d3eb54b8 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

backoffice: fix display of mass actions set to functions with dashes (#36734)

Function slugs are used in data attributes but those are normalized,

The name of a custom data attribute in JavaScript is the name of the
same HTML attribute but in camelCase and with no dashes, dots, etc.
-- https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/dataset

Prevent that by turning all dashes into underscores.

Historique

#1

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 4 ans

Je propose que la recherche se fasse en utilisant également data:

if ($('#listing input[type=checkbox]:checked').data('is-', key.substr(12)).length) {
  ...
}
#3

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Assigné à mis à Frédéric Péters

Pas fan de l'idée, dont la lecture ne me donne même pas l'impression d'un truc qui fonctionne. (et donc même si ça fonctionne ça ne va pas).

Je vais regarder davantage du code pour proposer quelque chose.

#4

Mis à jour par Frédéric Péters il y a plus de 4 ans

Simplement faire du Python.

#5

Mis à jour par Nicolas Roche il y a plus de 4 ans

A priori les 2 approches corrigent le bug.
(que je reproduit en local en utilisant les fonctions à la place des rôles dans les déclencheurs des actions globales.)
Désolé, je ne suis pas inspiré pour écrire le test qui va bien.
Serghei, je te laisse valider stp (je n'ai pas tout pigé).

#6

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée
#7

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit d3eb54b88c0410f23eacdb10aff7671dfe593c24
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Oct 8 09:48:20 2019 +0200

    backoffice: fix display of mass actions set to functions with dashes (#36734)

    Function slugs are used in data attributes but those are normalized,

      The name of a custom data attribute in JavaScript is the name of the
      same HTML attribute but in camelCase and with no dashes, dots, etc.

      -- https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/dataset

    Prevent that by turning all dashes into underscores.
#8

Mis à jour par Frédéric Péters il y a plus de 4 ans

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

Formats disponibles : Atom PDF