[Debian/PMB] Javascript/Ajax bloqué côté gestion

Une babiole bien embêtante est apparue depuis juin ou juillet 2011. Elle vient du serveur Apache sous Debian ou de PMB, selon vos préférences ;-)

Les boutons [+] dans l’espace de gestion du catalogue sont bloqués.

Si vous regardez la page d’accueil de notre catalogue où tout va bien (ou presque), bibliolibre.eu.org, vous allez voir ces boutons [+].

Vous en trouvez par exemple sous le titre « Dernières acquisitions » (vers le milieu de page). Ils sont verts. Si vous cliquez sur l’un d’eux, la notice complète de l’ouvrage se déplie.

Juste au-dessus, de petits boutons [+] et [-] sur fond blanc sont là pour ouvrir d’un coup toutes les notices ou les refermer. Quand on survole ces boutons sur fond blanc, on voit le lien dans un bout de barre en bas de fenêtre de Firefox: Javascript Ajax.

Ces boutons se retrouvent dans l’espace d’admin (de gestion du catalogue) mais là rien ne s’ouvre. Tout est bloqué.

Boutons liste de notices

Boutons +: liste de notices

Bien sûr, on peut cliquer sur le lien du livre pour ouvrir la notice. Mais ce blocage de Javascript/Ajax va plus loin.

Les paramètres, par exemple, sont indépliables, car ils sont tous repliés sous ces boutons [+]. Tout est bloqué et il est donc impossible de modifier ces paramètres sans aller dans la base de données elle-même.

Le pire pour nous, c’est que les boutons […] permettant de remplir ou de modifier certains champs des notices à l’aide des index (auteurs, éditeurs, collections, indexation décimale…) sont aussi bloqués. Normalement, un clic ouvre une petite fenêtre où l’on peut rechercher un auteur par exemple ou faire une nouvelle entrée pour un auteur. Cette fonction bien commode est inaccessible. Voici une copie d’un bout d’écran:

Image Bouton dans modification notice

Bouton … : modification de notice

Pas la faute à Firefox

Il ne s’agit pas d’un défaut de Firefox car j’ai vérifié avec Firefox 7 beta et Midori qui est un navigateur libre tout à fait différent. Dans les préférences de FF, j’ai autorisé les popups pour le site et le javascript est autorisé par défaut dans FF.

Tout va bien en local, Apache sous Ubuntu Maverick

J’ai installé le même PMB en local, et j’ai restauré le dump de Tuxfamily. Tout va bien. Depuis j’ai mis PMB à jour et tout va toujours bien.

Javascript, PMB et Debian

Ce qui est bizarre, c’est que Javascript/Ajax marche sur le site public mais pas dans l’espace de gestion.

J’ai trouvé ceci sur la liste PMB-Devel:

la plateforme d’hébergement « L’autre-net » vient de migrer en PHP 5.3.
Depuis, il apparaît impossible d’utiliser les fonctionnalités ajax de « déroulé » de menu (clic sur les [+] et [-]) dans quelque page d’admin ou d’utilisation que ce soit (…)

Voici la réponse donnée par Gaetan Ryckeboer, fin juillet 2011:

Le souci d’ajax/javascript ne vient pas du client.

En fait, il vient du serveur.

Les dernières versions des paquetages Apache2 pour linux debian stable (utilisé chez «l’autre net» (notamment) ajoutent un «alias» /javascript/ dans la configuration du système.
Les fichiers .js n’étaient donc pas trouvés sur l’un des deux frontal.

La configuration côté «l’autre net» est corrigée, mais tous les administrateurs utilisant debian risquent d’être confrontés à ce souci.
Deux solutions:

  • pmb change le dossier /javascript en autre chose ;
  • debian change son alias /javascript

Quand aux raisons… je ne suis pas dans le secret des dieux, mais il faudrait leur poser la question, ou faire un rapport de bug.

Si rien n’est fait, la question reviendra immanquablement sur cette liste, ou sur PMBuser.

Qui va faire un effort pour que Debian et PMB marchent ensemble? C’est piquant de penser que PMB est développé sous GNU/Linux et que là, ça coince. Il faut dire que les bibliothèques semblent en majorité être sous de pseudo serveurs comme EasyPHP (totalement obsolète) sous Windoz ou sous des serveurs Windows. C’est bien dommage.

S’il n’y a que PMB qui bloque dans le nouvel Apache de Debian, je ne vois pas pourquoi ce serait Debian qui devrait être modifié mais ce serait peut-être une bonne chose. Tout dépend de savoir si le défaut est plus évidemment un bug ou un mauvais choix chez Debian ou chez PMB.

Vers une solution

Sur la liste PMB-user, un des développeurs de PMB, Florent, nous indique deux solutions possibles, au choix:

  • Supprimer l’alias dans la configuration d’Apache (ça c’est du ressort de TuxFamily)
  • Mettre le dossier PMB à la racine du site, au lieu de mettre le contenu du répertoire à la racine du site, comme nous le faisons chez TuxFamily.

Nous allons soumettre ces solutions sur le forum de TuxFamily pour voir ce qui est faisable aisément. Je pense que mettre le répertoire PMB à la racine ne devrait pas être très compliqué: juste tout supprimer puis tout télécharger de nouveau sur le serveur (sur notre portion de serveur) et sans doute modifier le fichier .htaccess.

Je n’ai pas envie d’avoir un lien à rallonge:
http://bibliolibre.eu.org/pmb/opac_css/

Il est déjà assez long à l’heure actuelle:
http://bibliolibre.eu.org/

À suivre…

En attendant, j’ai compris pourquoi ça marche en local: tout simplement parce que c’est le répertoire PMB qui est à la racine du site. Le lien est alors http://localhost/pmb/

Conclusion: Hébergez votre PMB

Il est bien commode d’héberger soi-même son PMB, même si c’est du boulot, que ce soit un serveur dédié ou votre propre serveur. Ainsi, un tour dans la configuration d’Apache et vous réglez vous-même le problème en deux secondes.

En revanche, si vous êtes, comme nous hébergés, par un tiers, même si c’est l’excellentissime TuxFamily, il ne vous reste plus qu’à supprimer tous les répertoires et fichiers de PMB et à tout télécharger de nouveau sur la portion de serveur qui vous est dévolu. :twisted:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *