[SPIP Zone] Selecteur générique jquery.ui en 3.2

Bonjour,

Depuis la mise a jour de jquery.ui, l’affichage des autocomplete est un peut “cassé”, on se retrouve avec le tag <strong> pour les titres des objets dans les listes renvoyées.

A priori jquery.ui.autocomplete ne permet (apparement…) plus l’insertion d’un tag html dans le label, on doit passer par l’utilisation de custom datas :

http://jqueryui.com/autocomplete/#custom-data

J’ai contourné le problème en ajoutant donc aux labels d’objet un prefix : ** label

dans generique.php


// On ajoute le titre de l'objet
            $resultats[] = array(
                'label' => "**"._T($desc['texte_objets']),
                'value' => ' ',
            );

qui permet ensuite de reconnaitre les label d’objet et de modifier la liste retournée en faisant un match/replace

dans selecteur_generique_fonctions.js


.autocomplete( "instance" )._renderItem = function( ul, item ) {
                     var regex = /\*\*/s ;
                     if(item.label.match(regex)){
                             label = "<strong>" + item.label.replace(regex, '') + "</strong>";
                        }    else {
                            label = item.label;
                        }
                        return $( "<li>" )
                            .append(label)
                            .appendTo( ul );
            };

Avec quelques modifications css en plus on rétabli le design précédent.

ma question :

vous en pensez quoi ^^ niveau méthode ? des suggestions ?

Dans le php ce serait pas plus simple d’utiliser une fonction de SPIP pour supprimer tous les tags ? Avec textebrut ou supprimer_tags.

Hop,

Le 13/10/2018 à 11:33, Mist. GraphX a écrit :

Bonjour,

Depuis la mise a jour de jquery.ui, l’affichage des autocomplete est un peut “cassé”, on se retrouve avec le tag |<strong>| pour les titres des objets dans les listes renvoyées.

Depuis quelle mise à jour exactement ?

A priori jquery.ui.autocomplete ne permet (apparement…) plus l’insertion d’un tag html dans le label, on doit passer par l’utilisation de custom datas :

C'est le cas depuis un moment, cf :

http://www.arctickiwi.com/blog/jquery-autocomplete-labels-escape-html-tags

Mais en lisant ta proposition de patch, je crois comprendre que tu parles du plugin sélecteur générique (/me fort en devinettes ^^). Et ce plugin utilise justement un script pour palier à ce problème, cf :

https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/selecteur_generique/trunk/javascript/ui/autocomplete.html.js

Si cela ne fonctionne plus, c'est que :

- ce script n'est plus inséré
- ou qu'il n'est plus compatible avec jQuery UI

Donc, amha, la bonne piste est de rétablir le fonctionnement du script en question dans le plugin sélecteur générique :slight_smile:

++
b_b

Le 13/10/2018 à 14:43, Bruno Bergot a écrit :

Hop,

Le 13/10/2018 à 11:33, Mist. GraphX a écrit :

Bonjour,

Depuis la mise a jour de jquery.ui, l’affichage des autocomplete est un peut “cassé”, on se retrouve avec le tag |<strong>| pour les titres des objets dans les listes renvoyées.

Depuis quelle mise à jour exactement ?

A priori jquery.ui.autocomplete ne permet (apparement…) plus l’insertion d’un tag html dans le label, on doit passer par l’utilisation de custom datas :

C'est le cas depuis un moment, cf :

http://www.arctickiwi.com/blog/jquery-autocomplete-labels-escape-html-tags

Mais en lisant ta proposition de patch, je crois comprendre que tu parles du plugin sélecteur générique (/me fort en devinettes ^^).

oui
https://www.google.com/search?q=selecteurs+generique&oq=selecteurs+generique&aqs=chrome..69i57j0.5326j0j4&sourceid=chrome&ie=UTF-8

Et ce plugin utilise justement un script pour palier à ce problème, cf :

https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/selecteur_generique/trunk/javascript/ui/autocomplete.html.js

bien vu !!

effectivement quand on le rajoute dans la fonction inserer_javascript ça fonctionne beaucoup mieux !!

reste a retrouver les css

Si cela ne fonctionne plus, c'est que :

- ce script n'est plus inséré
- ou qu'il n'est plus compatible avec jQuery UI

Donc, amha, la bonne piste est de rétablir le fonctionnement du script en question dans le plugin sélecteur générique :slight_smile:

merci pour la piste :wink:

--
Bonne journée
Arnaud B. (Mist. GraphX)

Hop,

Le 14/10/2018 à 10:33, Mist. GraphX a écrit :

merci pour la piste :wink:

De rien :slight_smile:

Je pense que du coup cette ligne est inutile :

https://zone.spip.net/trac/spip-zone/browser/spip-zone/_plugins_/selecteur_generique/trunk/selecteurgenerique_pipelines.php?rev=111985#L18

Suite au changement de comportement de jqueryui en 3.2 cf :

https://zone.spip.net/trac/spip-zone/changeset/101681/spip-zone

++
b_b