From 12c1febd11b7909c5c212406890c5a9aa65e8ccb Mon Sep 17 00:00:00 2001 From: larsborn Date: Sun, 15 Mar 2015 17:56:21 +0100 Subject: [PATCH] [VarDumper] implement expand all on ALT+click --- .../Component/VarDumper/Dumper/HtmlDumper.php | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) mode change 100644 => 100755 src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php diff --git a/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php b/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php old mode 100644 new mode 100755 index b76a3352c5..ccfb72e6e2 --- a/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php +++ b/src/Symfony/Component/VarDumper/Dumper/HtmlDumper.php @@ -119,7 +119,40 @@ var refStyle = doc.createElement('style'), doc.documentElement.firstChild.appendChild(refStyle); -function toggle(a) { +function expandAll(a) { + toggle(a, true); + var samp = a.nextSibling; + for (var i = 0; i < samp.children.length; i++) { + var child = samp.children[i]; + if (child.tagName !== 'A') { + continue; + } + if (! /\bsf-dump-compact\b/.test(child.nextSibling.className)) { + continue + } + expandAll(child); + } +} + +var altKeyPressed = false; +function keysPressed(e) { + if (e.keyCode === 18) { + altKeyPressed = true; + } +} +function keysReleased(e) { + if (e.keyCode === 18) { + altKeyPressed = false; + } +} +window.addEventListener('keydown', keysPressed, false); +window.addEventListener('keyup', keysReleased, false); + +function toggle(a, ignoreAltKey) { + if (! ignoreAltKey && altKeyPressed) { + expandAll(a); + return true; + } var s = a.nextSibling || {}; if ('sf-dump-compact' == s.className) { @@ -210,6 +243,7 @@ return function (root) { } else { a.innerHTML += ' '; } + a.title = 'hold ALT and click to expand all children'; a.innerHTML += ''; a.className += ' sf-dump-toggle'; if ('sf-dump' != elt.parentNode.className) {