Bug #28991
code JQuery du manager: le remplacement d'éléments cibles dans la fonction update_content ne doit prendre qu'un élément en entrée
0%
Description
Cf les spécs de la fonction JQuery.replaceWith(). On peut remplacer plusieurs éléments, en revanche le contenu à remplacement ne doit être qu'un élément du DOM, un chaîne HTML, etc, mais pas plusieurs.
Or dans le code js du manager, on fait un
var $content = $response.find('#content .content'); // ... var $container = $('#content .content'); // ... $container.replaceWith($content);
Si dans la page response
appelée par ce code, il y plusieurs éléments dont l'id ou la class vaut "content", alors ça ne marche pas.
Fichiers
Demandes liées
Historique
Mis à jour par Paul Marillonnet il y a plus de 5 ans
- Fichier 0001-manager.js-jquery-replacewith-function-take-one-sour.patch 0001-manager.js-jquery-replacewith-function-take-one-sour.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Paul Marillonnet il y a plus de 5 ans
- Lié à Development #20695: Avoir sur les objets un journal des modifications et sur les utilisateurs, en plus, un journal des actions ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 5 ans
Mais dans ton code pagination pourquoi tu as plusieurs #content (c'est très mal), ou .content (c'est moins mal mais c'est pas prévu), dans le template de base du manager j'ai un <div class="content"></content>
qui normalement est unique (je ne sais plus pourquoi j'ai fait ça).
Mis à jour par Paul Marillonnet il y a plus de 5 ans
- Fichier 0001-manager.js-jquery-replacewith-function-take-one-sour.patch 0001-manager.js-jquery-replacewith-function-take-one-sour.patch ajouté
Au temps pour moi, je croyais avoir un .content dans la page, mais ce n'est pas le cas.
Toujours est-il qu'avec le patch ça fonctionne de nouveau. Peut-être un $response.find('#content .content')
renvoie quelque chose du genre [<élément du DOM>, <null>]
au lieu d'un élément unitaire que l'on pourrait passer en entrée de replaceWith ?
HS :
Une maladresse de nommage des variables dans mon précédent patch (les variables récupérant des éléments par ID doivent s'appeler $idcont{ent,ainer}, et non pas $divcont{ent,ainer}). Corrigé dans ce nouveau patch.
Mis à jour par Benjamin Dauvergne il y a environ 5 ans
- Statut changé de Solution proposée à En cours
Je ne sais toujours pas si ça corrige un problème qui existe ou pas.