Skip to content

Commit

Permalink
Add stack frame toggling for vendor frames.
Browse files Browse the repository at this point in the history
  • Loading branch information
markstory committed Dec 4, 2014
1 parent a70c899 commit 2c6fce6
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 7 deletions.
2 changes: 1 addition & 1 deletion src/Template/Element/exception_stack_trace.ctp
Expand Up @@ -43,7 +43,7 @@ foreach ($error->getTrace() as $i => $stack):
?>
<div id="stack-frame-<?= $i ?>" style="display:none;" class="stack-details">
<span class="stack-frame-file"><?= h($file) ?></span>
<a href="#" class="stack-frame-args" data-target="stack-args-<?= $i ?>">toggle arguments</a>
<a href="#" class="toggle-link stack-frame-args" data-target="stack-args-<?= $i ?>">toggle arguments</a>

<table class="code-excerpt" cellspacing="0" cellpadding="0">
<?php $lineno = isset($stack['line']) ? $stack['line'] - 4 : 0 ?>
Expand Down
5 changes: 4 additions & 1 deletion src/Template/Element/exception_stack_trace_nav.ctp
Expand Up @@ -14,9 +14,12 @@
*/
use Cake\Error\Debugger;
?>
<a href="#" class="toggle-link toggle-vendor-frames">toggle vendor stack frames</a>

<ul class="stack-trace">
<?php foreach ($error->getTrace() as $i => $stack): ?>
<li class="stack-frame">
<?php $class = (isset($stack['file']) && strpos(APP, $stack['file']) === false) ? 'vendor-frame' : 'app-frame'; ?>
<li class="stack-frame <?= $class ?>">
<?php if (isset($stack['file']) && isset($stack['line'])): ?>
<a href="#" data-target="stack-frame-<?= $i ?>">
<?php if (!isset($stack['class'])): ?>
Expand Down
33 changes: 28 additions & 5 deletions src/Template/Layout/dev_error.ctp
Expand Up @@ -83,16 +83,16 @@ function each(els, cb) {
}

window.addEventListener('load', function() {
bindEvent('.stack-frame-args', 'click', function() {
bindEvent('.stack-frame-args', 'click', function(event) {
var target = this.dataset['target'];
var el = document.getElementById(target);
toggleElement(el);
return false;
event.preventDefault();
});

var details = document.querySelectorAll('.stack-details');
var frames = document.querySelectorAll('.stack-frame');
bindEvent('.stack-frame a', 'click', function() {
bindEvent('.stack-frame a', 'click', function(event) {
each(frames, function(el) {
el.classList.remove('active');
});
Expand All @@ -104,7 +104,16 @@ window.addEventListener('load', function() {

var target = document.getElementById(this.dataset['target']);
toggleElement(target);
return false;
event.preventDefault();
});

bindEvent('.toggle-vendor-frames', 'click', function(event) {
each(frames, function(el) {
if (el.classList.contains('vendor-frame')) {
toggleElement(el);
}
});
event.preventDefault();
});
});
</script>
Expand All @@ -113,12 +122,13 @@ window.addEventListener('load', function() {
body {
font: 14px helvetica, arial, sans-serif;
color: #222;
background-color: #fff;
background-color: #f8f8f8;
padding:0;
margin: 0;
max-height: 100%;
}

.code-dump,
pre {
background: #fefefe;
border: 1px solid #ddd;
Expand Down Expand Up @@ -231,6 +241,19 @@ header {
float: right;
}

.toggle-link {
color: #1798A5;
text-decoration: none;
}
.toggle-link:hover {
text-decoration: underline;
}
.toggle-vendor-frames {
padding: 5px;
display: block;
text-align: center;
}

.code-excerpt {
width: 100%;
margin: 5px 0;
Expand Down

0 comments on commit 2c6fce6

Please sign in to comment.