Project

General

Profile

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

Added by Paul Marillonnet 4 months ago. Updated 3 months ago.

Status:
En cours
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
13 Dec 2018
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

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.

0001-manager.js-jquery-replacewith-function-take-one-sour.patch View (1.57 KB) Paul Marillonnet, 13 Dec 2018 05:58 PM

0001-manager.js-jquery-replacewith-function-take-one-sour.patch View (1.56 KB) Paul Marillonnet, 14 Dec 2018 11:36 AM


Related issues

Related to Authentic 2 - Development #20695: Avoir sur les objets un journal des modifications et sur les utilisateurs, en plus, un journal des actions En cours 14 Dec 2017

History

#1 Updated by Paul Marillonnet 4 months ago

#2 Updated by Paul Marillonnet 4 months ago

  • Related to Development #20695: Avoir sur les objets un journal des modifications et sur les utilisateurs, en plus, un journal des actions added

#3 Updated by Benjamin Dauvergne 4 months ago

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).

#4 Updated by Paul Marillonnet 4 months ago

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.

#5 Updated by Benjamin Dauvergne 3 months ago

  • Status changed from Solution proposée to En cours

Je ne sais toujours pas si ça corrige un problème qui existe ou pas.

Also available in: Atom PDF