Skip to content

Commit 9630b76

Browse files
Added settings and exceptions to for ajax update
1 parent d1d00b1 commit 9630b76

File tree

5 files changed

+33
-26
lines changed

5 files changed

+33
-26
lines changed

debug_toolbar/middleware.py

100644100755
Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
from django.conf import settings
99
from django.http import HttpResponseRedirect
1010
from django.shortcuts import render_to_response
11+
from django.utils import simplejson
1112
from django.utils.encoding import smart_unicode
1213
from django.utils.importlib import import_module
13-
1414
import debug_toolbar.urls
1515
from debug_toolbar.toolbar.loader import DebugToolbar
1616

17+
1718
_HTML_TYPES = ('text/html', 'application/xhtml+xml')
1819

1920

@@ -121,18 +122,26 @@ def process_response(self, request, response):
121122
toolbar = self.__class__.debug_toolbars.get(ident)
122123

123124
if not toolbar or request.is_ajax():
124-
for panel in toolbar.panels:
125-
panel.process_response(request, response)
126125

127-
rendered = toolbar.render_toolbar()
128-
from django.utils import simplejson
129-
rendered = simplejson.dumps({'rendered':rendered})
126+
if settings.DEBUG_TOOLBAR_CONFIG['ACCEPT_AJAX']:
127+
128+
try:
129+
simplejson.loads(response.content)
130+
except simplejson.JSONDecodeError:
131+
return response
132+
for panel in toolbar.panels:
133+
panel.process_response(request, response)
134+
135+
rendered = toolbar.render_toolbar()
136+
137+
rendered = simplejson.dumps({'rendered':rendered})
138+
139+
if '{replace}' not in response.content:
140+
if response.content[-1] == '}':
141+
response.content = response.content[:-1] + ', "replace":"{replace}"}'
130142

131-
if '{replace}' not in response.content:
132-
if response.content[-1] == '}':
133-
response.content = response.content[:-1] + ', "replace":"{replace}"}'
143+
response.content = response.content.replace('"{replace}"', rendered)
134144

135-
response.content = response.content.replace('"{replace}"', rendered)
136145
return response
137146
if isinstance(response, HttpResponseRedirect):
138147
if not toolbar.config['INTERCEPT_REDIRECTS']:

debug_toolbar/templates/debug_toolbar/base.html

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77

88
<script type="text/javascript">
9+
{% if inject_ajax_processor %}
910
window.total_time_first_run = true;
1011
window.total_time = 0.0;
1112
window.toolbars = [];
@@ -47,20 +48,15 @@
4748

4849
$(document).ready(function() {
4950
$(document).ajaxSuccess(function(e, xhr, settings) {
50-
console.log('e');
51-
console.log(e);
52-
console.log('xhr');
53-
console.log(xhr);
5451
var data;
5552
if (xhr.responseText.length > 5){
5653
data = $.parseJSON(xhr.responseText);
5754
}
5855
window.refreshDjdt(data, e, xhr, settings);
59-
60-
console.log(settings);
61-
console.log(settings.url);
6256
});
6357
});
58+
59+
{% endif %}
6460
/*!
6561
* jQuery JavaScript Library v1.7.1
6662
* http://jquery.com/
@@ -156,13 +152,10 @@ <h3>{{ panel.title|safe }}</h3>
156152

157153
<script type="text/javascript">
158154

155+
{% if inject_ajax_processor %}
159156
window.refreshDjdt = function(ajax_data, e, xhr, settings){
160-
console.log('refreshing');
161157
console.log(ajax_data);
162158

163-
if (ajax_data == 'OK'){
164-
return false;
165-
}
166159
if (ajax_data == undefined){
167160
return false;
168161
}
@@ -209,5 +202,5 @@ <h3>{{ panel.title|safe }}</h3>
209202
}
210203
}
211204

212-
205+
{% endif %}
213206
</script>

debug_toolbar/templates/debug_toolbar/panels/history.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
</colgroup>
77
<thead>
88
<tr>
9-
<th>{% trans "Resource" %}</th>
10-
<th>{% trans "Value" %}</th>
11-
<th>{% trans "Elapsed Time(ms)" %}</th>
9+
<th>{% trans "Resource" %} | </th>
10+
<th>{% trans "Display Link" %} |</th>
11+
<th>{% trans "Elapsed Time(ms)" %} |</th>
1212
</tr>
1313
</thead>
1414
<tbody id='history_panel_body'>

debug_toolbar/toolbar/__init__.py

100644100755
File mode changed.

debug_toolbar/toolbar/loader.py

100644100755
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ def __init__(self, request):
2828
'DEBUG_TOOLBAR_MEDIA_URL': self.config.get('MEDIA_URL'),
2929
'STATIC_URL': settings.STATIC_URL,
3030
}
31+
if settings.DEBUG_TOOLBAR_CONFIG['ACCEPT_AJAX']:
32+
self.template_context['inject_ajax_processor'] = True
3133

3234
self.load_panels()
3335
self.stats = {}
@@ -56,11 +58,13 @@ def render_toolbar(self):
5658
"""
5759
Renders the overall Toolbar with panels inside.
5860
"""
61+
5962
context = self.template_context.copy()
63+
print context
6064
context.update({
6165
'panels': self.panels,
6266
})
63-
67+
#print render_to_string('debug_toolbar/base.html', context)
6468
return render_to_string('debug_toolbar/base.html', context)
6569

6670

@@ -83,6 +87,7 @@ def load_panel_classes():
8387
'debug_toolbar.panels.cache.CacheDebugPanel',
8488
'debug_toolbar.panels.signals.SignalDebugPanel',
8589
'debug_toolbar.panels.logger.LoggingPanel',
90+
'debug_toolbar.panels.history.AjaxHistoryPanel',
8691
))
8792
for panel_path in panels:
8893
try:

0 commit comments

Comments
 (0)