diff options
| author | Jannis Leidel <jannis@leidel.info> | 2010-04-13 10:28:24 +0000 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2010-04-13 10:28:24 +0000 |
| commit | 1fcf747b131308c5573de23858e6116f8630ee45 (patch) | |
| tree | f7f29fbb3ed0f1cfa7863305824fe0a052b8dde3 | |
| parent | 35f41507343e1ef60bf37be9f2d46606c4a0e1a3 (diff) | |
Fixed #12882 - Moved the admin's jQuery into our own namespace to lower the risk of a clash with third party apps that use jQuery.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12966 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/admin/helpers.py | 3 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/actions.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/actions.min.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/collapse.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/collapse.min.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/inlines.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/inlines.min.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/jquery.init.js | 4 | ||||
| -rw-r--r-- | django/contrib/admin/media/js/prepopulate.js | 2 | ||||
| -rw-r--r-- | django/contrib/admin/options.py | 4 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/change_list.html | 5 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/edit_inline/stacked.html | 2 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/edit_inline/tabular.html | 2 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/prepopulated_fields_js.html | 2 |
14 files changed, 21 insertions, 15 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index 52d01839cc..41c2c54145 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -76,7 +76,8 @@ class Fieldset(object): def _media(self): if 'collapse' in self.classes: - return forms.Media(js=['%sjs/collapse.min.js' % settings.ADMIN_MEDIA_PREFIX]) + js = ['js/jquery.min.js', 'js/jquery.init.js', 'js/collapse.min.js'] + return forms.Media(js=['%s%s' % (settings.ADMIN_MEDIA_PREFIX, url) for url in js]) return forms.Media() media = property(_media) diff --git a/django/contrib/admin/media/js/actions.js b/django/contrib/admin/media/js/actions.js index 1c78cb15e7..67881bb305 100644 --- a/django/contrib/admin/media/js/actions.js +++ b/django/contrib/admin/media/js/actions.js @@ -108,4 +108,4 @@ allToggle: "#action-toggle", selectedClass: "selected" } -})(jQuery); +})(django.jQuery); diff --git a/django/contrib/admin/media/js/actions.min.js b/django/contrib/admin/media/js/actions.min.js index 2ff8224890..39e5ba446f 100644 --- a/django/contrib/admin/media/js/actions.min.js +++ b/django/contrib/admin/media/js/actions.min.js @@ -2,4 +2,4 @@ a(b.allContainer).hide()};showClear=function(){a(b.acrossClears).show();a(b.acrossQuestions).hide();a(b.actionContainer).toggleClass(b.selectedClass);a(b.allContainer).show();a(b.counterContainer).hide()};reset=function(){a(b.acrossClears).hide();a(b.acrossQuestions).hide();a(b.allContainer).hide();a(b.counterContainer).show()};clearAcross=function(){reset();a(b.acrossInput).val(0);a(b.actionContainer).removeClass(b.selectedClass)};a(b.counterContainer).show();a(this).filter(":checked").each(function(){a(this).parent().parent().toggleClass(b.selectedClass); updateCounter();a(b.acrossInput).val()==1&&showClear()});a(b.allToggle).show().click(function(){checker(a(this).attr("checked"));updateCounter()});a("div.actions span.question a").click(function(c){c.preventDefault();a(b.acrossInput).val(1);showClear()});a("div.actions span.clear a").click(function(c){c.preventDefault();a(b.allToggle).attr("checked",false);clearAcross();checker(0);updateCounter()});lastChecked=null;a(e).click(function(c){if(!c)c=window.event;var d=c.target?c.target:c.srcElement;if(lastChecked&& a.data(lastChecked)!=a.data(d)&&c.shiftKey==true){var f=false;a(lastChecked).attr("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked);a(e).each(function(){if(a.data(this)==a.data(lastChecked)||a.data(this)==a.data(d))f=f?false:true;f&&a(this).attr("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked)})}a(d).parent().parent().toggleClass(b.selectedClass,d.checked);lastChecked=d;updateCounter()})};a.fn.actions.defaults={actionContainer:"div.actions", -counterContainer:"span.action-counter",allContainer:"div.actions span.all",acrossInput:"div.actions input.select-across",acrossQuestions:"div.actions span.question",acrossClears:"div.actions span.clear",allToggle:"#action-toggle",selectedClass:"selected"}})(jQuery); +counterContainer:"span.action-counter",allContainer:"div.actions span.all",acrossInput:"div.actions input.select-across",acrossQuestions:"div.actions span.question",acrossClears:"div.actions span.clear",allToggle:"#action-toggle",selectedClass:"selected"}})(django.jQuery); diff --git a/django/contrib/admin/media/js/collapse.js b/django/contrib/admin/media/js/collapse.js index a2a642b4c3..0a1e2d8893 100644 --- a/django/contrib/admin/media/js/collapse.js +++ b/django/contrib/admin/media/js/collapse.js @@ -24,4 +24,4 @@ } ); }); -})(jQuery); +})(django.jQuery); diff --git a/django/contrib/admin/media/js/collapse.min.js b/django/contrib/admin/media/js/collapse.min.js index 21f1b8b2f4..428984ee01 100644 --- a/django/contrib/admin/media/js/collapse.min.js +++ b/django/contrib/admin/media/js/collapse.min.js @@ -1,2 +1,2 @@ (function(a){a(document).ready(function(){a("fieldset.collapse").each(function(c,b){if(a(b).find("div.errors").length==0){a(b).addClass("collapsed");a(b).find("h2").first().append(' (<a id="fieldsetcollapser'+c+'" class="collapse-toggle" href="#">'+gettext("Show")+"</a>)")}});a("fieldset.collapse a.collapse-toggle").toggle(function(){a(this).text(gettext("Hide"));a(this).closest("fieldset").removeClass("collapsed");return false},function(){a(this).text(gettext("Show"));a(this).closest("fieldset").addClass("collapsed"); -return false})})})(jQuery); +return false})})})(django.jQuery); diff --git a/django/contrib/admin/media/js/inlines.js b/django/contrib/admin/media/js/inlines.js index 9decaae444..20bb16056c 100644 --- a/django/contrib/admin/media/js/inlines.js +++ b/django/contrib/admin/media/js/inlines.js @@ -145,4 +145,4 @@ added: null, // Function called each time a new form is added removed: null // Function called each time a form is deleted } -})(jQuery); +})(django.jQuery); diff --git a/django/contrib/admin/media/js/inlines.min.js b/django/contrib/admin/media/js/inlines.min.js index 891cc3fca5..ba8e6330ef 100644 --- a/django/contrib/admin/media/js/inlines.min.js +++ b/django/contrib/admin/media/js/inlines.min.js @@ -3,4 +3,4 @@ if(a(this).length&&g){var i;if(a(this).attr("tagName")=="TR"){g=this.eq(0).child j=a("#"+b.prefix+"-empty"),d=j.clone(true);d.removeClass(b.emptyCssClass).addClass(b.formCssClass).attr("id",b.prefix+f).insertBefore(a(j));d.find("*").filter(function(){var c=a(this);return c.attr("id")&&c.attr("id").search(/__prefix__/)>=0}).each(function(){var c=a(this);c.attr("id",c.attr("id").replace(/__prefix__/g,f))}).end().filter(function(){var c=a(this);return c.attr("name")&&c.attr("name").search(/__prefix__/)>=0}).each(function(){var c=a(this);c.attr("name",c.attr("name").replace(/__prefix__/g, f))});if(d.is("tr"))d.children(":last").append('<div><a class="'+b.deleteCssClass+'" href="javascript:void(0)">'+b.deleteText+"</a></div>");else d.is("ul")||d.is("ol")?d.append('<li><a class="'+b.deleteCssClass+'" href="javascript:void(0)">'+b.deleteText+"</a></li>"):d.children(":first").append('<span><a class="'+b.deleteCssClass+'" href="javascript:void(0)">'+b.deleteText+"</a></span>");d.find("input,select,textarea,label,a").each(function(){l(this,b.prefix,e.val())});a(e).val(f+1);h.val()!=""&& h.val()<=e.val()&&i.parent().hide();d.find("a."+b.deleteCssClass).click(function(){var c=a(this).parents("."+b.formCssClass);c.remove();b.removed&&b.removed(c);c=a("."+b.formCssClass);a("#id_"+b.prefix+"-TOTAL_FORMS").val(c.length);if(h.val()==""||h.val()>=c.length)i.parent().show();for(var k=0,m=c.length;k<m;k++)a(c.get(k)).find("input,select,textarea,label,a").each(function(){l(this,b.prefix,k)});return false});b.added&&b.added(d);return false})}return this};a.fn.formset.defaults={prefix:"form", -addText:"add another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",emptyCssClass:"empty-row",formCssClass:"dynamic-form",added:null,removed:null}})(jQuery); +addText:"add another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",emptyCssClass:"empty-row",formCssClass:"dynamic-form",added:null,removed:null}})(django.jQuery); diff --git a/django/contrib/admin/media/js/jquery.init.js b/django/contrib/admin/media/js/jquery.init.js new file mode 100644 index 0000000000..85a7973cf7 --- /dev/null +++ b/django/contrib/admin/media/js/jquery.init.js @@ -0,0 +1,4 @@ +// Puts the included jQuery into our own namespace +var django = { + "jQuery": jQuery.noConflict(true) +}; diff --git a/django/contrib/admin/media/js/prepopulate.js b/django/contrib/admin/media/js/prepopulate.js index 27375d4cd2..09483bbf04 100644 --- a/django/contrib/admin/media/js/prepopulate.js +++ b/django/contrib/admin/media/js/prepopulate.js @@ -31,4 +31,4 @@ dependencies.keyup(populate).change(populate).focus(populate); }); }; -})(jQuery.noConflict()); +})(django.jQuery); diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index ae90bce067..e46bd30193 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -271,7 +271,7 @@ class ModelAdmin(BaseModelAdmin): js = ['js/core.js', 'js/admin/RelatedObjectLookups.js'] if self.actions is not None: - js.extend(['js/jquery.min.js', 'js/actions.min.js']) + js.extend(['js/jquery.min.js', 'js/jquery.init.js', 'js/actions.min.js']) if self.prepopulated_fields: js.append('js/urlify.js') js.append('js/prepopulate.js') @@ -1199,7 +1199,7 @@ class InlineModelAdmin(BaseModelAdmin): def _media(self): from django.conf import settings - js = ['js/jquery.min.js', 'js/inlines.min.js'] + js = ['js/jquery.min.js', 'js/jquery.init.js', 'js/inlines.min.js'] if self.prepopulated_fields: js.append('js/urlify.js') js.append('js/prepopulate.js') diff --git a/django/contrib/admin/templates/admin/change_list.html b/django/contrib/admin/templates/admin/change_list.html index 5593128c05..591044b5fd 100644 --- a/django/contrib/admin/templates/admin/change_list.html +++ b/django/contrib/admin/templates/admin/change_list.html @@ -9,7 +9,7 @@ {% url admin:jsi18n as jsi18nurl %} <script type="text/javascript" src="{{ jsi18nurl|default:'../../jsi18n/' }}"></script> {% endif %} - {{ media }} + {{ media.css }} {% if not actions_on_top and not actions_on_bottom %} <style> #changelist table thead th:first-child {width: inherit} @@ -19,13 +19,14 @@ {% block extrahead %} {{ block.super }} +{{ media.js }} {% if action_form %}{% if actions_on_top or actions_on_bottom %} <script type="text/javascript"> (function($) { $(document).ready(function($) { $("tr input.action-select").actions(); }); -})(jQuery.noConflict()); +})(django.jQuery); </script> {% endif %}{% endif %} {% endblock %} diff --git a/django/contrib/admin/templates/admin/edit_inline/stacked.html b/django/contrib/admin/templates/admin/edit_inline/stacked.html index 6eb4492e49..eb22a5338d 100644 --- a/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ b/django/contrib/admin/templates/admin/edit_inline/stacked.html @@ -75,5 +75,5 @@ }) }); }); -})(jQuery.noConflict()); +})(django.jQuery); </script> diff --git a/django/contrib/admin/templates/admin/edit_inline/tabular.html b/django/contrib/admin/templates/admin/edit_inline/tabular.html index 48be38db5d..c68cc79d60 100644 --- a/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ b/django/contrib/admin/templates/admin/edit_inline/tabular.html @@ -121,5 +121,5 @@ }) }); }); -})(jQuery.noConflict()); +})(django.jQuery); </script> diff --git a/django/contrib/admin/templates/admin/prepopulated_fields_js.html b/django/contrib/admin/templates/admin/prepopulated_fields_js.html index f0eb471dfb..4aa6380313 100644 --- a/django/contrib/admin/templates/admin/prepopulated_fields_js.html +++ b/django/contrib/admin/templates/admin/prepopulated_fields_js.html @@ -19,5 +19,5 @@ $(field.id).data('dependency_list', field['dependency_list']) .prepopulate($(field['dependency_ids'].join(',')), field.maxLength); {% endfor %} -})(jQuery.noConflict()); +})(django.jQuery); </script> |
