|
1 | | -(function($) { |
| 1 | +(function() { |
2 | 2 | var parse = JSON.parse; |
3 | | - var data = $('#debug-toolbar-parse').data(); |
| 3 | + var djDebug = document.querySelector('#djDebug'); |
| 4 | + var djGraphiQLDebug = document.querySelector('#djGraphiQLDebug'); |
| 5 | + var render_panel_url = djGraphiQLDebug.getAttribute('data-render-panel-url'); |
4 | 6 |
|
5 | | - $('#djDebug').data('render-panel-url', data.renderPanelUrl); |
| 7 | + djDebug.setAttribute('data-render-panel-url', render_panel_url); |
6 | 8 |
|
7 | 9 | JSON.parse = function(response) { |
8 | 10 | var payload = parse(response); |
9 | 11 |
|
10 | | - if (payload && payload.hasOwnProperty('debugToolbar')) { |
11 | | - var debugToolbar = payload.debugToolbar; |
12 | | - var $debugPanelList = $('#djDebugPanelList'); |
| 12 | + if (payload === null || !payload.hasOwnProperty('debugToolbar')) return payload; |
13 | 13 |
|
14 | | - delete payload.debugToolbar; |
| 14 | + var debugToolbar = payload.debugToolbar; |
| 15 | + var djDebugPanelList = document.querySelector('#djDebugPanelList'); |
| 16 | + delete payload.debugToolbar; |
15 | 17 |
|
16 | | - $.each(debugToolbar.panels, function(id, panel) { |
17 | | - var $subtitle = $debugPanelList.find(`input[data-cookie="djdt${id}"]`).next().find('small'); |
| 18 | + for (var id in debugToolbar.panels) { |
| 19 | + var panel = debugToolbar.panels[id]; |
| 20 | + var djDebugButton = djDebugPanelList.querySelector('[data-cookie="djdt' + id + '"]'); |
| 21 | + var subtitle = djDebugButton.nextElementSibling.querySelector('small'); |
18 | 22 |
|
19 | | - if ($subtitle.text() != panel.subtitle) { |
20 | | - $subtitle.fadeOut(100, function() { |
21 | | - $(this).text(panel.subtitle).fadeIn(200); |
22 | | - }); |
23 | | - } |
| 23 | + if (subtitle !== null) subtitle.textContent = panel.subtitle; |
24 | 24 |
|
25 | | - if (panel.title !== null) { |
26 | | - var $panel = $(`#${id}`); |
27 | | - var $content = $panel.find('.djdt-scroll'); |
| 25 | + if (panel.title !== null) { |
| 26 | + var djDebugPanel = document.querySelector('#' + id); |
| 27 | + var djDebugContent = djDebugPanel.querySelector('.djdt-scroll'); |
28 | 28 |
|
29 | | - $panel.find('h3:first').html(panel.title); |
30 | | - $content.empty(); |
| 29 | + djDebugPanel.querySelector('h3').innerHTML = panel.title; |
| 30 | + djDebugContent.innerHTML = ''; |
31 | 31 |
|
32 | | - if (!$content.parent().find('img').length) { |
33 | | - $('<img />', { |
34 | | - src: data.loaderUrl, |
35 | | - alt: 'loading', |
36 | | - class: 'djdt-loader' |
37 | | - }).insertBefore($content); |
38 | | - } |
| 32 | + if (djDebugContent.parentNode.querySelector('img') === null) { |
| 33 | + var loader = document.createElement('img'); |
| 34 | + loader.src = djGraphiQLDebug.getAttribute('data-loader-url'); |
| 35 | + loader.className = 'djdt-loader'; |
| 36 | + loader.alt = 'loading'; |
| 37 | + djDebugContent.parentNode.insertBefore(loader, djDebugContent); |
39 | 38 | } |
40 | | - }); |
41 | | - $('#djDebug').data('store-id', debugToolbar.storeId); |
| 39 | + } |
42 | 40 | } |
| 41 | + // Support for django-debug-toolbar 1.8, 1.9, 1.9.1 |
| 42 | + if (djdt.hasOwnProperty('jQuery')) djdt.jQuery(djDebug).removeData('store-id'); |
| 43 | + |
| 44 | + djDebug.setAttribute('data-store-id', debugToolbar.storeId); |
43 | 45 | return payload; |
44 | 46 | } |
45 | | -})(djdt.jQuery); |
| 47 | +})(); |
0 commit comments