aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Gaynor2008-09-20 21:18:48 -0400
committerAlex Gaynor2008-09-20 21:18:48 -0400
commit335cbb58f1681268eb61a04205b6a18f09f0a03a (patch)
treefe83305a8653373d2bc2f560ebc621693b6bf140
parenta6abeef6a5a734ad28178f939560dd127c363544 (diff)
downloaddjango-debug-toolbar-335cbb58f1681268eb61a04205b6a18f09f0a03a.tar.bz2
jquery now optional
-rw-r--r--debug_toolbar/middleware.py6
-rw-r--r--debug_toolbar/templates/debug_toolbar/base.html1
-rw-r--r--debug_toolbar/toolbar/loader.py3
3 files changed, 6 insertions, 4 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py
index 9c8581c..bb8dbbc 100644
--- a/debug_toolbar/middleware.py
+++ b/debug_toolbar/middleware.py
@@ -12,6 +12,7 @@ _HTML_TYPES = ('text/html', 'application/xhtml+xml')
_END_HEAD_RE = re.compile(r'</head>', re.IGNORECASE)
_START_BODY_RE = re.compile(r'<body([^<]*)>', re.IGNORECASE)
_END_BODY_RE = re.compile(r'</body>', re.IGNORECASE)
+_CONTAINS_JQUERY_RE = re.compile("src=(?:(\"(.*?)jquery(.*?)\.js\")|('(.*?)jquery(.*?)\.js'))", re.IGNORECASE)
class DebugToolbarMiddleware(object):
"""
@@ -53,8 +54,11 @@ class DebugToolbarMiddleware(object):
return response
if self.show_toolbar(request):
if response['Content-Type'].split(';')[0] in _HTML_TYPES:
+ script_loc = request.META.get('SCRIPT_NAME', '')
# Saving this here in case we ever need to inject into <head>
#response.content = _END_HEAD_RE.sub(smart_str(self.debug_toolbar.render_styles() + "%s" % match.group()), response.content)
response.content = _START_BODY_RE.sub(smart_str('<body\\1>' + self.debug_toolbar.render_toolbar()), response.content)
- response.content = _END_BODY_RE.sub(smart_str('<script src="' + request.META.get('SCRIPT_NAME', '') + '/__debug__/m/toolbar.js" type="text/javascript" charset="utf-8"></script></body>'), response.content)
+ if not _CONTAINS_JQUERY_RE.search(response.content):
+ response.content = _END_BODY_RE.sub(smart_str('<script src="%s/__debug__/m/jquery.js" type="text/javascript" charset="utf-8"></script></body>' % script_loc), response.content)
+ response.content = _END_BODY_RE.sub(smart_str('<script src="%s/__debug__/m/toolbar.js" type="text/javascript" charset="utf-8"></script></body>' % script_loc), response.content)
return response
diff --git a/debug_toolbar/templates/debug_toolbar/base.html b/debug_toolbar/templates/debug_toolbar/base.html
index e1d66c5..ba13294 100644
--- a/debug_toolbar/templates/debug_toolbar/base.html
+++ b/debug_toolbar/templates/debug_toolbar/base.html
@@ -1,4 +1,3 @@
-<script src="{{ BASE_URL }}/__debug__/m/jquery.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
@import url({{ BASE_URL }}/__debug__/m/toolbar.css);
</style>
diff --git a/debug_toolbar/toolbar/loader.py b/debug_toolbar/toolbar/loader.py
index 935f45c..f45cbda 100644
--- a/debug_toolbar/toolbar/loader.py
+++ b/debug_toolbar/toolbar/loader.py
@@ -59,6 +59,5 @@ class DebugToolbar(object):
Renders the overall Toolbar with panels inside.
"""
return render_to_string('debug_toolbar/base.html', {
- 'panels': self.panels,
- 'BASE_URL': self.request.META.get('SCRIPT_NAME', '')
+ 'panels': self.panels
})