4573b98621715cc5459c9d48e345ee985847f123

Author: Mark Story

Date: 2009-11-23 23:33:00 -0500

Fixing broken history panel javascript.

diff --git a/views/elements/history_panel.ctp b/views/elements/history_panel.ctp index 4f08eb4..3b0d2ae 100644 --- a/views/elements/history_panel.ctp +++ b/views/elements/history_panel.ctp @@ -53,23 +53,48 @@ DEBUGKIT.historyPanel = function () { alert('Could not convert JSON response'); return false; } - - for (var i in historyLinks) { + + var i = historyLinks.length; + while (i--) { Element.removeClass(historyLinks[i], 'loading'); } + for (var id in toolbar.panels) { var panel = toolbar.panels[id]; if (panel.content === undefined || responseJson[id] === undefined) { continue; } - var panelDivs = panel.content.childNodes; - for (var i in panelDivs) { + var panelDivs = panel.content.childNodes, + i = panelDivs.length, + regionDiv; + + while (i--) { + var panelRegion = panelDivs[i]; + if (panelRegion.nodeType != 1) { + continue; + } + if ( + panelRegion.nodeName && + panelRegion.nodeName.toUpperCase() == 'DIV' && + Element.hasClass(panelRegion, 'panel-resize-region') + ) { + regionDiv = panelRegion; + break; + } + } + if (!regionDiv) continue; + + var regionDivs = regionDiv.childNodes, + i = regionDivs.length; + + while (i--) { //toggle history element, hide current request one. - var panelContent = panelDivs[i], + var panelContent = regionDivs[i], tag = panelContent.nodeName ? panelContent.nodeName.toUpperCase() : false; - if (tag === 'DIV' && Element.hasClass(panelContent, 'panel-content-history')) { + + if (tag === 'DIV' && Element.hasClass(panelContent, 'panel-history')) { var panelId = panelContent.id.replace('-history', ''); if (responseJson[panelId]) { panelContent.innerHTML = responseJson[panelId]; @@ -102,11 +127,34 @@ DEBUGKIT.historyPanel = function () { if (panel.content === undefined) { continue; } - var panelDivs = panel.content.childNodes; - for (i in panelDivs) { - panelContent = panelDivs[i]; + + var panelDivs = panel.content.childNodes, + i = panelDivs.length, + regionDiv; + + while (i--) { + var panelRegion = panelDivs[i]; + if (panelRegion.nodeType != 1) { + continue; + } + if ( + panelRegion.nodeName && + panelRegion.nodeName.toUpperCase() == 'DIV' && + Element.hasClass(panelRegion, 'panel-resize-region') + ) { + regionDiv = panelRegion; + break; + } + } + if (!regionDiv) continue; + + var regionDivs = regionDiv.childNodes, + i = regionDivs.length; + + while (i--) { + panelContent = regionDivs[i]; tag = panelContent.nodeName ? panelContent.nodeName.toUpperCase() : false; - if (tag === 'DIV' && Element.hasClass(panelContent, 'panel-content-history')) { + if (tag === 'DIV' && Element.hasClass(panelContent, 'panel-history')) { Element.hide(panelContent); } else if (tag === 'DIV') { Element.show(panelContent);