Projet

Général

Profil

Development #7589

Permettre le fonctionnement avec django-debug-toolbar

Ajouté par Benjamin Dauvergne il y a presque 9 ans. Mis à jour il y a presque 9 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
17 juin 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

(J'utilise beaucoup django-debug-toolbar)

Pour son fonctionnement django-debug-toolbar charge une version à lui de jQuery (qu'on peut modifier1) en appelant jQuery.noConflict(true) le problème est qu'il le fait en fin de page alors que nos codes js à nous utilise la valeur globale du symbole $. Pour permettre à nos codes javascript de s'exécuter en toute circonstance il faudrait être un peu plus défensif et recopier la valeur de la variable jQuery dans un espace de nom privé à l'aide de la construction suivante:

(function () {
   var $ = jQuery;
   ... ici j'utilise $ sans me soucier de ce qu'il adviendra...
})();

Les deux patchs qui suivent adopte ce comportement dans gadjo.js et dans le bout de script dans root.html qui gère le fondu des messages Django.

.fn1

DEBUG_TOOLBAR_CONFIG = {
    'JQUERY_URL': '//static/xstatic/jquery.min.js',
}


Fichiers

Révisions associées

Révision a666d7d4 (diff)
Ajouté par Benjamin Dauvergne il y a presque 9 ans

gadjo.js: protect the $ symbol from overwriting (#7589)

By using a private namespace we protect ourself from call to
jQuery.noConflict(true) by django-debug-toolbar.

Révision 504b43a2 (diff)
Ajouté par Benjamin Dauvergne il y a presque 9 ans

root.html: protect $ symbol from overwriting (#7589)

$ can be overwritten by the jQuery loaded by django-debug-toolbar in the
messages fadeout callback, it prevents that.

Historique

#2

Mis à jour par Frédéric Péters il y a presque 9 ans

Dans la documentation de la django-debug-toolbar, à propos de JQUERY_URL, "Make it empty to rely on a version of jQuery that already exists on every page of your site.", pourquoi ne pas prendre cette option ?

#3

Mis à jour par Benjamin Dauvergne il y a presque 9 ans

  • Statut changé de Nouveau à Rejeté

Je suis passé à coté, ça marche. L'idée de coder défensivement nos codes JS pourra par contre avoir son intérêt sur d'autres projets je pense (intégration mandaye v2 en javascript). On en reparlera.

#4

Mis à jour par Benjamin Dauvergne il y a presque 9 ans

  • Statut changé de Rejeté à Fermé

Formats disponibles : Atom PDF