Refactoring
This commit is contained in:
1 parent
af40881847
commit
a7274d3cfd
5075 files changed
+238202
-16291
No files matched your search
@@ -0,0 +1,550 @@
|
||||
body {
|
||||
font: 12px "Helvetica Neue", helvetica, arial, sans-serif;
|
||||
color: #131313;
|
||||
background: #eeeeee;
|
||||
padding:0;
|
||||
margin: 0;
|
||||
max-height: 100%;
|
||||
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.panel {
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
margin: 0;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.branding {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 20px;
|
||||
color: #777777;
|
||||
font-size: 10px;
|
||||
z-index: 100;
|
||||
}
|
||||
.branding a {
|
||||
color: #e95353;
|
||||
}
|
||||
|
||||
header {
|
||||
color: white;
|
||||
box-sizing: border-box;
|
||||
background-color: #2a2a2a;
|
||||
padding: 35px 40px;
|
||||
max-height: 180px;
|
||||
overflow: hidden;
|
||||
transition: 0.5s;
|
||||
}
|
||||
|
||||
header.header-expand {
|
||||
max-height: 1000px;
|
||||
}
|
||||
|
||||
.exc-title {
|
||||
margin: 0;
|
||||
color: #bebebe;
|
||||
font-size: 14px;
|
||||
}
|
||||
.exc-title-primary {
|
||||
color: #e95353;
|
||||
}
|
||||
|
||||
.exc-message {
|
||||
font-size: 20px;
|
||||
word-wrap: break-word;
|
||||
margin: 4px 0 0 0;
|
||||
color: white;
|
||||
}
|
||||
.exc-message span {
|
||||
display: block;
|
||||
}
|
||||
.exc-message-empty-notice {
|
||||
color: #a29d9d;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
.details-container {
|
||||
left: 30%;
|
||||
width: 70%;
|
||||
background: #fafafa;
|
||||
}
|
||||
.details {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.details-heading {
|
||||
color: #4288CE;
|
||||
font-weight: 300;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
.details pre.sf-dump {
|
||||
white-space: pre;
|
||||
word-wrap: inherit;
|
||||
}
|
||||
|
||||
.details pre.sf-dump,
|
||||
.details pre.sf-dump .sf-dump-num,
|
||||
.details pre.sf-dump .sf-dump-const,
|
||||
.details pre.sf-dump .sf-dump-str,
|
||||
.details pre.sf-dump .sf-dump-note,
|
||||
.details pre.sf-dump .sf-dump-ref,
|
||||
.details pre.sf-dump .sf-dump-public,
|
||||
.details pre.sf-dump .sf-dump-protected,
|
||||
.details pre.sf-dump .sf-dump-private,
|
||||
.details pre.sf-dump .sf-dump-meta,
|
||||
.details pre.sf-dump .sf-dump-key,
|
||||
.details pre.sf-dump .sf-dump-index {
|
||||
color: #463C54;
|
||||
}
|
||||
|
||||
.left-panel {
|
||||
width: 30%;
|
||||
background: #ded8d8;
|
||||
}
|
||||
|
||||
.frames-description {
|
||||
background: rgba(0, 0, 0, .05);
|
||||
padding: 8px 15px;
|
||||
color: #a29d9d;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.frames-description.frames-description-application {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
}
|
||||
.frames-container.frames-container-application .frame:not(.frame-application) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.frames-tab {
|
||||
color: #a29d9d;
|
||||
display: inline-block;
|
||||
padding: 4px 8px;
|
||||
margin: 0 2px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.frames-tab.frames-tab-active {
|
||||
background-color: #2a2a2a;
|
||||
color: #bebebe;
|
||||
}
|
||||
|
||||
.frame {
|
||||
padding: 14px;
|
||||
cursor: pointer;
|
||||
transition: all 0.1s ease;
|
||||
background: #eeeeee;
|
||||
}
|
||||
.frame:not(:last-child) {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, .05);
|
||||
}
|
||||
|
||||
.frame.active {
|
||||
box-shadow: inset -5px 0 0 0 #4288CE;
|
||||
color: #4288CE;
|
||||
}
|
||||
|
||||
.frame:not(.active):hover {
|
||||
background: #BEE9EA;
|
||||
}
|
||||
|
||||
.frame-method-info {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.frame-class, .frame-function, .frame-index {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.frame-index {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.frame-method-info {
|
||||
margin-left: 24px;
|
||||
}
|
||||
|
||||
.frame-index {
|
||||
font-size: 11px;
|
||||
color: #a29d9d;
|
||||
background-color: rgba(0, 0, 0, .05);
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
line-height: 18px;
|
||||
border-radius: 5px;
|
||||
padding: 0 1px 0 1px;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.frame-application .frame-index {
|
||||
background-color: #2a2a2a;
|
||||
color: #bebebe;
|
||||
}
|
||||
|
||||
.frame-file {
|
||||
font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
|
||||
color: #a29d9d;
|
||||
}
|
||||
|
||||
.frame-file .editor-link {
|
||||
color: #a29d9d;
|
||||
}
|
||||
|
||||
.frame-line {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.frame-line:before {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
.frame-code {
|
||||
padding: 5px;
|
||||
background: #303030;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.frame-code.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.frame-code .frame-file {
|
||||
color: #a29d9d;
|
||||
padding: 12px 6px;
|
||||
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.code-block {
|
||||
max-height: 345px;
|
||||
overflow: hidden;
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 3px 0 rgba(0, 0, 0, .05),
|
||||
0 10px 30px rgba(0, 0, 0, .05),
|
||||
inset 0 0 1px 0 rgba(255, 255, 255, .07);
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
}
|
||||
|
||||
.linenums {
|
||||
margin: 0;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.frame-comments {
|
||||
border-top: none;
|
||||
margin-top: 15px;
|
||||
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.frame-comments.empty {
|
||||
}
|
||||
|
||||
.frame-comments.empty:before {
|
||||
content: "No comments for this stack frame.";
|
||||
font-weight: 300;
|
||||
color: #a29d9d;
|
||||
}
|
||||
|
||||
.frame-comment {
|
||||
padding: 10px;
|
||||
color: #e3e3e3;
|
||||
border-radius: 6px;
|
||||
background-color: rgba(255, 255, 255, .05);
|
||||
}
|
||||
.frame-comment a {
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
.frame-comment a:hover {
|
||||
color: #4bb1b1;
|
||||
}
|
||||
|
||||
.frame-comment:not(:last-child) {
|
||||
border-bottom: 1px dotted rgba(0, 0, 0, .3);
|
||||
}
|
||||
|
||||
.frame-comment-context {
|
||||
font-size: 10px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.delimiter {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.data-table-container label {
|
||||
font-size: 16px;
|
||||
color: #303030;
|
||||
font-weight: bold;
|
||||
margin: 10px 0;
|
||||
|
||||
display: block;
|
||||
|
||||
margin-bottom: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.data-table {
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.data-table tbody {
|
||||
font: 13px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
|
||||
}
|
||||
|
||||
.data-table thead {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.data-table tr {
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
.data-table td:first-child {
|
||||
width: 20%;
|
||||
min-width: 130px;
|
||||
overflow: hidden;
|
||||
font-weight: bold;
|
||||
color: #463C54;
|
||||
padding-right: 5px;
|
||||
|
||||
}
|
||||
|
||||
.data-table td:last-child {
|
||||
width: 80%;
|
||||
-ms-word-break: break-all;
|
||||
word-break: break-all;
|
||||
word-break: break-word;
|
||||
-webkit-hyphens: auto;
|
||||
-moz-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.data-table span.empty {
|
||||
color: rgba(0, 0, 0, .3);
|
||||
font-weight: 300;
|
||||
}
|
||||
.data-table label.empty {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.handler {
|
||||
padding: 4px 0;
|
||||
font: 14px "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
|
||||
}
|
||||
|
||||
/* prettify code style
|
||||
Uses the Doxy theme as a base */
|
||||
pre .str, code .str { color: #BCD42A; } /* string */
|
||||
pre .kwd, code .kwd { color: #4bb1b1; font-weight: bold; } /* keyword*/
|
||||
pre .com, code .com { color: #888; font-weight: bold; } /* comment */
|
||||
pre .typ, code .typ { color: #ef7c61; } /* type */
|
||||
pre .lit, code .lit { color: #BCD42A; } /* literal */
|
||||
pre .pun, code .pun { color: #fff; font-weight: bold; } /* punctuation */
|
||||
pre .pln, code .pln { color: #e9e4e5; } /* plaintext */
|
||||
pre .tag, code .tag { color: #4bb1b1; } /* html/xml tag */
|
||||
pre .htm, code .htm { color: #dda0dd; } /* html tag */
|
||||
pre .xsl, code .xsl { color: #d0a0d0; } /* xslt tag */
|
||||
pre .atn, code .atn { color: #ef7c61; font-weight: normal;} /* html/xml attribute name */
|
||||
pre .atv, code .atv { color: #bcd42a; } /* html/xml attribute value */
|
||||
pre .dec, code .dec { color: #606; } /* decimal */
|
||||
pre.code-block, code.code-block, .frame-args.code-block, .frame-args.code-block samp {
|
||||
font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
|
||||
background: #333;
|
||||
color: #e9e4e5;
|
||||
}
|
||||
pre.code-block {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
pre.code-block a, code.code-block a {
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
.linenums li {
|
||||
color: #A5A5A5;
|
||||
}
|
||||
|
||||
.linenums li.current{
|
||||
background: rgba(255, 100, 100, .07);
|
||||
padding-top: 4px;
|
||||
padding-left: 1px;
|
||||
}
|
||||
.linenums li.current.active {
|
||||
background: rgba(255, 100, 100, .17);
|
||||
}
|
||||
|
||||
#plain-exception {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#copy-button {
|
||||
cursor: pointer;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.clipboard {
|
||||
opacity: .8;
|
||||
background: none;
|
||||
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);
|
||||
|
||||
border-radius: 3px;
|
||||
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
.clipboard:hover {
|
||||
box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.3);
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
|
||||
/* inspired by githubs kbd styles */
|
||||
kbd {
|
||||
-moz-border-bottom-colors: none;
|
||||
-moz-border-left-colors: none;
|
||||
-moz-border-right-colors: none;
|
||||
-moz-border-top-colors: none;
|
||||
background-color: #fcfcfc;
|
||||
border-color: #ccc #ccc #bbb;
|
||||
border-image: none;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
color: #555;
|
||||
display: inline-block;
|
||||
font-size: 11px;
|
||||
line-height: 10px;
|
||||
padding: 3px 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
/* == Media queries */
|
||||
|
||||
/* Expand the spacing in the details section */
|
||||
@media (min-width: 1000px) {
|
||||
.details, .frame-code {
|
||||
padding: 20px 40px;
|
||||
}
|
||||
|
||||
.details-container {
|
||||
left: 32%;
|
||||
width: 68%;
|
||||
}
|
||||
|
||||
.frames-container {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.left-panel {
|
||||
width: 32%;
|
||||
}
|
||||
}
|
||||
|
||||
.tooltipped {
|
||||
position: relative
|
||||
}
|
||||
.tooltipped:after {
|
||||
position: absolute;
|
||||
z-index: 1000000;
|
||||
display: none;
|
||||
padding: 5px 8px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-shadow: none;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: break-word;
|
||||
white-space: pre;
|
||||
pointer-events: none;
|
||||
content: attr(aria-label);
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
border-radius: 3px;
|
||||
-webkit-font-smoothing: subpixel-antialiased
|
||||
}
|
||||
.tooltipped:before {
|
||||
position: absolute;
|
||||
z-index: 1000001;
|
||||
display: none;
|
||||
width: 0;
|
||||
height: 0;
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
pointer-events: none;
|
||||
content: "";
|
||||
border: 5px solid transparent
|
||||
}
|
||||
.tooltipped:hover:before,
|
||||
.tooltipped:hover:after,
|
||||
.tooltipped:active:before,
|
||||
.tooltipped:active:after,
|
||||
.tooltipped:focus:before,
|
||||
.tooltipped:focus:after {
|
||||
display: inline-block;
|
||||
text-decoration: none
|
||||
}
|
||||
.tooltipped-s:after {
|
||||
top: 100%;
|
||||
right: 50%;
|
||||
margin-top: 5px
|
||||
}
|
||||
.tooltipped-s:before {
|
||||
top: auto;
|
||||
right: 50%;
|
||||
bottom: -5px;
|
||||
margin-right: -5px;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.8)
|
||||
}
|
||||
|
||||
pre.sf-dump {
|
||||
padding: 0px !important;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.search-for-help {
|
||||
width: 85%;
|
||||
padding: 0;
|
||||
margin: 10px 0;
|
||||
list-style-type: none;
|
||||
display: inline-block;
|
||||
}
|
||||
.search-for-help li {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.search-for-help li:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
.search-for-help li a {
|
||||
|
||||
}
|
||||
.search-for-help li a i {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
.search-for-help li a svg {
|
||||
fill: #fff;
|
||||
}
|
||||
.search-for-help li a svg path {
|
||||
background-size: contain;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* clipboard.js v1.5.3
|
||||
* https://zenorocha.github.io/clipboard.js
|
||||
*
|
||||
* Licensed MIT © Zeno Rocha
|
||||
*/
|
||||
!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,r){function o(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(i)return i(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=n[a]={exports:{}};e[a][0].call(l.exports,function(t){var n=e[a][1][t];return o(n?n:t)},l,l.exports,t,e,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(t,e,n){var r=t("matches-selector");e.exports=function(t,e,n){for(var o=n?t:t.parentNode;o&&o!==document;){if(r(o,e))return o;o=o.parentNode}}},{"matches-selector":2}],2:[function(t,e,n){function r(t,e){if(i)return i.call(t,e);for(var n=t.parentNode.querySelectorAll(e),r=0;r<n.length;++r)if(n[r]==t)return!0;return!1}var o=Element.prototype,i=o.matchesSelector||o.webkitMatchesSelector||o.mozMatchesSelector||o.msMatchesSelector||o.oMatchesSelector;e.exports=r},{}],3:[function(t,e,n){function r(t,e,n,r){var i=o.apply(this,arguments);return t.addEventListener(n,i),{destroy:function(){t.removeEventListener(n,i)}}}function o(t,e,n,r){return function(n){var o=i(n.target,e,!0);o&&(Object.defineProperty(n,"target",{value:o}),r.call(t,n))}}var i=t("closest");e.exports=r},{closest:1}],4:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.function=function(t){var e=Object.prototype.toString.call(t);return"[object Function]"===e}},{}],5:[function(t,e,n){function r(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.function(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return o(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function o(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return s(document.body,t,e,n)}var c=t("./is"),s=t("delegate");e.exports=r},{"./is":4,delegate:3}],6:[function(t,e,n){function r(t){var e;if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName)t.select(),e=t.value;else{var n=window.getSelection(),r=document.createRange();r.selectNodeContents(t),n.removeAllRanges(),n.addRange(r),e=n.toString()}return e}e.exports=r},{}],7:[function(t,e,n){function r(){}r.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function r(){o.off(t,r),e.apply(n,arguments)}var o=this;return r._=e,this.on(t,r,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,o=n.length;for(r;o>r;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],o=[];if(r&&e)for(var i=0,a=r.length;a>i;i++)r[i].fn!==e&&r[i].fn._!==e&&o.push(r[i]);return o.length?n[t]=o:delete n[t],this}},e.exports=r},{}],8:[function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),a=t("select"),c=r(a),s=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return t.prototype.resolveOptions=function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},t.prototype.initSelection=function t(){if(this.text&&this.target)throw new Error('Multiple attributes declared, use either "target" or "text"');if(this.text)this.selectFake();else{if(!this.target)throw new Error('Missing required attributes, use either "target" or "text"');this.selectTarget()}},t.prototype.selectFake=function t(){var e=this;this.removeFake(),this.fakeHandler=document.body.addEventListener("click",function(){return e.removeFake()}),this.fakeElem=document.createElement("textarea"),this.fakeElem.stylLine truncated
|
||||
@@ -0,0 +1,218 @@
|
||||
Zepto(function($) {
|
||||
|
||||
// a jQuery.getScript() equivalent to asyncronously load javascript files
|
||||
// credits to http://stackoverflow.com/a/8812950/1597388
|
||||
var getScript = function(src, func) {
|
||||
var script = document.createElement('script');
|
||||
script.async = 'async';
|
||||
script.src = src;
|
||||
if (func) {
|
||||
script.onload = func;
|
||||
}
|
||||
document.getElementsByTagName('head')[0].appendChild( script );
|
||||
};
|
||||
|
||||
var $leftPanel = $('.left-panel');
|
||||
var $frameContainer = $('.frames-container');
|
||||
var $appFramesTab = $('#application-frames-tab');
|
||||
var $allFramesTab = $('#all-frames-tab');
|
||||
var $container = $('.details-container');
|
||||
var $activeLine = $frameContainer.find('.frame.active');
|
||||
var $activeFrame = $container.find('.frame-code.active');
|
||||
var $ajaxEditors = $('.editor-link[data-ajax]');
|
||||
var $header = $('header');
|
||||
|
||||
$header.on('mouseenter', function () {
|
||||
if ($header.find('.exception').height() >= 145) {
|
||||
$header.addClass('header-expand');
|
||||
}
|
||||
});
|
||||
$header.on('mouseleave', function () {
|
||||
$header.removeClass('header-expand');
|
||||
});
|
||||
|
||||
// load prettify asyncronously to speed up page rendering
|
||||
getScript('//cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.js', function () {
|
||||
renderCurrentCodeblock();
|
||||
});
|
||||
|
||||
/*
|
||||
* add prettyprint classes to our current active codeblock
|
||||
* run prettyPrint() to highlight the active code
|
||||
* scroll to the line when prettyprint is done
|
||||
* highlight the current line
|
||||
*/
|
||||
var renderCurrentCodeblock = function(id) {
|
||||
|
||||
// remove previous codeblocks so we only render the active one
|
||||
$('.code-block').removeClass('prettyprint');
|
||||
|
||||
// pass the id in when we can for speed
|
||||
if (typeof(id) === 'undefined' || typeof(id) === 'object') {
|
||||
var id = /frame\-line\-([\d]*)/.exec($activeLine.attr('id'))[1];
|
||||
}
|
||||
|
||||
$('#frame-code-linenums-' + id).addClass('prettyprint');
|
||||
$('#frame-code-args-' + id).addClass('prettyprint');
|
||||
|
||||
prettyPrint(highlightCurrentLine);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Highlight the active and neighboring lines for the current frame
|
||||
* Adjust the offset to make sure that line is veritcally centered
|
||||
*/
|
||||
|
||||
var highlightCurrentLine = function() {
|
||||
var activeLineNumber = +($activeLine.find('.frame-line').text());
|
||||
var $lines = $activeFrame.find('.linenums li');
|
||||
var firstLine = +($lines.first().val());
|
||||
|
||||
var $offset = $($lines[activeLineNumber - firstLine - 10]);
|
||||
if ($offset.length > 0) {
|
||||
$offset[0].scrollIntoView();
|
||||
}
|
||||
|
||||
$($lines[activeLineNumber - firstLine - 1]).addClass('current');
|
||||
$($lines[activeLineNumber - firstLine]).addClass('current active');
|
||||
$($lines[activeLineNumber - firstLine + 1]).addClass('current');
|
||||
|
||||
$container.scrollTop(0);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* click handler for loading codeblocks
|
||||
*/
|
||||
|
||||
$frameContainer.on('click', '.frame', function() {
|
||||
|
||||
var $this = $(this);
|
||||
var id = /frame\-line\-([\d]*)/.exec($this.attr('id'))[1];
|
||||
var $codeFrame = $('#frame-code-' + id);
|
||||
|
||||
if ($codeFrame) {
|
||||
|
||||
$activeLine.removeClass('active');
|
||||
$activeFrame.removeClass('active');
|
||||
|
||||
$this.addClass('active');
|
||||
$codeFrame.addClass('active');
|
||||
|
||||
$activeLine = $this;
|
||||
$activeFrame = $codeFrame;
|
||||
|
||||
renderCurrentCodeblock(id);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var clipboard = new Clipboard('.clipboard');
|
||||
var showTooltip = function(elem, msg) {
|
||||
elem.setAttribute('class', 'clipboard tooltipped tooltipped-s');
|
||||
elem.setAttribute('aria-label', msg);
|
||||
};
|
||||
|
||||
clipboard.on('success', function(e) {
|
||||
e.clearSelection();
|
||||
|
||||
showTooltip(e.trigger, 'Copied!');
|
||||
});
|
||||
|
||||
clipboard.on('error', function(e) {
|
||||
showTooltip(e.trigger, fallbackMessage(e.action));
|
||||
});
|
||||
|
||||
var btn = document.querySelector('.clipboard');
|
||||
|
||||
btn.addEventListener('mouseleave', function(e) {
|
||||
e.currentTarget.setAttribute('class', 'clipboard');
|
||||
e.currentTarget.removeAttribute('aria-label');
|
||||
});
|
||||
|
||||
function fallbackMessage(action) {
|
||||
var actionMsg = '';
|
||||
var actionKey = (action === 'cut' ? 'X' : 'C');
|
||||
|
||||
if (/Mac/i.test(navigator.userAgent)) {
|
||||
actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;
|
||||
} else {
|
||||
actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;
|
||||
}
|
||||
|
||||
return actionMsg;
|
||||
}
|
||||
|
||||
function scrollIntoView($node, $parent) {
|
||||
var nodeOffset = $node.offset();
|
||||
var nodeTop = nodeOffset.top;
|
||||
var nodeBottom = nodeTop + nodeOffset.height;
|
||||
var parentScrollTop = $parent.scrollTop();
|
||||
var parentHeight = $parent.height();
|
||||
|
||||
if (nodeTop < 0) {
|
||||
$parent.scrollTop(parentScrollTop + nodeTop);
|
||||
} else if (nodeBottom > parentHeight) {
|
||||
$parent.scrollTop(parentScrollTop + nodeBottom - parentHeight);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).on('keydown', function(e) {
|
||||
var applicationFrames = $frameContainer.hasClass('frames-container-application'),
|
||||
frameClass = applicationFrames ? '.frame.frame-application' : '.frame';
|
||||
|
||||
if(e.ctrlKey || e.which === 74 || e.which === 75) {
|
||||
// CTRL+Arrow-UP/k and Arrow-Down/j support:
|
||||
// 1) select the next/prev element
|
||||
// 2) make sure the newly selected element is within the view-scope
|
||||
// 3) focus the (right) container, so arrow-up/down (without ctrl) scroll the details
|
||||
if (e.which === 38 /* arrow up */ || e.which === 75 /* k */) {
|
||||
$activeLine.prev(frameClass).click();
|
||||
scrollIntoView($activeLine, $leftPanel);
|
||||
$container.focus();
|
||||
e.preventDefault();
|
||||
} else if (e.which === 40 /* arrow down */ || e.which === 74 /* j */) {
|
||||
$activeLine.next(frameClass).click();
|
||||
scrollIntoView($activeLine, $leftPanel);
|
||||
$container.focus();
|
||||
e.preventDefault();
|
||||
}
|
||||
} else if (e.which == 78 /* n */) {
|
||||
if ($appFramesTab.length) {
|
||||
setActiveFramesTab($('.frames-tab:not(.frames-tab-active)'));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Avoid to quit the page with some protocol (e.g. IntelliJ Platform REST API)
|
||||
$ajaxEditors.on('click', function(e){
|
||||
e.preventDefault();
|
||||
$.get(this.href);
|
||||
});
|
||||
|
||||
// Symfony VarDumper: Close the by default expanded objects
|
||||
$('.sf-dump-expanded')
|
||||
.removeClass('sf-dump-expanded')
|
||||
.addClass('sf-dump-compact');
|
||||
$('.sf-dump-toggle span').html('▶');
|
||||
|
||||
// Make the given frames-tab active
|
||||
function setActiveFramesTab($tab) {
|
||||
$tab.addClass('frames-tab-active');
|
||||
|
||||
if ($tab.attr('id') == 'application-frames-tab') {
|
||||
$frameContainer.addClass('frames-container-application');
|
||||
$allFramesTab.removeClass('frames-tab-active');
|
||||
} else {
|
||||
$frameContainer.removeClass('frames-container-application');
|
||||
$appFramesTab.removeClass('frames-tab-active');
|
||||
}
|
||||
}
|
||||
|
||||
$('a.frames-tab').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
setActiveFramesTab($(this));
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,2 @@
|
||||
/* Zepto v1.1.3 - zepto event ajax form ie - zeptojs.com/license */
|
||||
var Zepto=function(){function L(t){return null==t?String(t):j[T.call(t)]||"object"}function Z(t){return"function"==L(t)}function $(t){return null!=t&&t==t.window}function _(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function D(t){return"object"==L(t)}function R(t){return D(t)&&!$(t)&&Object.getPrototypeOf(t)==Object.prototype}function M(t){return"number"==typeof t.length}function k(t){return s.call(t,function(t){return null!=t})}function z(t){return t.length>0?n.fn.concat.apply([],t):t}function F(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||c[F(t)]?e:e+"px"}function I(t){var e,n;return u[t]||(e=a.createElement(t),a.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),u[t]=n),u[t]}function V(t){return"children"in t?o.call(t.children):n.map(t.childNodes,function(t){return 1==t.nodeType?t:void 0})}function U(n,i,r){for(e in i)r&&(R(i[e])||A(i[e]))?(R(i[e])&&!R(n[e])&&(n[e]={}),A(i[e])&&!A(n[e])&&(n[e]=[]),U(n[e],i[e],r)):i[e]!==t&&(n[e]=i[e])}function B(t,e){return null==e?n(t):n(t).filter(e)}function J(t,e,n,i){return Z(e)?e.call(t,n,i):e}function X(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function W(e,n){var i=e.className,r=i&&i.baseVal!==t;return n===t?r?i.baseVal:i:void(r?i.baseVal=n:e.className=n)}function Y(t){var e;try{return t?"true"==t||("false"==t?!1:"null"==t?null:/^0/.test(t)||isNaN(e=Number(t))?/^[\[\{]/.test(t)?n.parseJSON(t):t:e):t}catch(i){return t}}function G(t,e){e(t);for(var n in t.childNodes)G(t.childNodes[n],e)}var t,e,n,i,C,N,r=[],o=r.slice,s=r.filter,a=window.document,u={},f={},c={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,h=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,p=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,d=/^(?:body|html)$/i,m=/([A-Z])/g,g=["val","css","html","text","data","width","height","offset"],v=["after","prepend","before","append"],y=a.createElement("table"),x=a.createElement("tr"),b={tr:a.createElement("tbody"),tbody:y,thead:y,tfoot:y,td:x,th:x,"*":a.createElement("div")},w=/complete|loaded|interactive/,E=/^[\w-]*$/,j={},T=j.toString,S={},O=a.createElement("div"),P={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},A=Array.isArray||function(t){return t instanceof Array};return S.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,r=t.parentNode,o=!r;return o&&(r=O).appendChild(t),i=~S.qsa(r,e).indexOf(t),o&&O.removeChild(t),i},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return s.call(t,function(e,n){return t.indexOf(e)==n})},S.fragment=function(e,i,r){var s,u,f;return h.test(e)&&(s=n(a.createElement(RegExp.$1))),s||(e.replace&&(e=e.replace(p,"<$1></$2>")),i===t&&(i=l.test(e)&&RegExp.$1),i in b||(i="*"),f=b[i],f.innerHTML=""+e,s=n.each(o.call(f.childNodes),function(){f.removeChild(this)})),R(r)&&(u=n(s),n.each(r,function(t,e){g.indexOf(t)>-1?u[t](e):u.attr(t,e)})),s},S.Z=function(t,e){return t=t||[],t.__proto__=n.fn,t.selector=e||"",t},S.isZ=function(t){return t instanceof S.Z},S.init=function(e,i){var r;if(!e)return S.Z();if("string"==typeof e)if(e=e.trim(),"<"==e[0]&&l.test(e))r=S.fragment(e,RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}else{if(Z(e))return n(a).ready(e);if(S.isZ(e))return e;if(A(e))r=k(e);else if(D(e))r=[e],e=null;else if(l.test(e))r=S.fragment(e.trim(),RegExp.$1,i),e=null;else{if(i!==t)return n(i).find(e);r=S.qsa(a,e)}}return S.Z(r,e)},n=function(t,e){return S.init(t,e)},n.extend=function(t){var e,n=o.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){U(t,n,e)}),t},S.qsa=function(t,e){var n,i="#"==e[0],r=!i&&"."==e[0],s=i||r?e.slice(1):e,a=E.test(s);return _(t)&&a&&i?(n=t.getElementById(s))?[n]:[]:1!==t.nodeType&&9!==t.nodeType?[]:o.call(a&&!i?r?t.getElementsByClassName(s):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=function(t,e){return t!==e&&t.contains(e)},n.type=L,n.isFunction=Z,n.isWindow=$,n.isArray=A,n.isPlainObject=R,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.inArray=function(t,e,n){return r.indexOf.call(e,t,n)},n.camelCase=C,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.map=function(t,e){var n,r,o,i=[];if(M(t))for(r=0;r<t.length;r++)n=e(t[r],r),null!=n&&i.push(n);else for(o in t)n=e(t[o],o),null!=n&&i.push(n);return z(i)},n.each=fuLine truncated
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
<?php /* List data-table values, i.e: $_SERVER, $_GET, .... */ ?>
|
||||
<div class="details">
|
||||
<h2 class="details-heading">Environment & details:</h2>
|
||||
|
||||
<div class="data-table-container" id="data-tables">
|
||||
<?php foreach ($tables as $label => $data): ?>
|
||||
<div class="data-table" id="sg-<?php echo $tpl->escape($tpl->slug($label)) ?>">
|
||||
<?php if (!empty($data)): ?>
|
||||
<label><?php echo $tpl->escape($label) ?></label>
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="data-table-k">Key</td>
|
||||
<td class="data-table-v">Value</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php foreach ($data as $k => $value): ?>
|
||||
<tr>
|
||||
<td><?php echo $tpl->escape($k) ?></td>
|
||||
<td><?php echo $tpl->dump($value) ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<label class="empty"><?php echo $tpl->escape($label) ?></label>
|
||||
<span class="empty">empty</span>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
|
||||
<?php /* List registered handlers, in order of first to last registered */ ?>
|
||||
<div class="data-table-container" id="handlers">
|
||||
<label>Registered Handlers</label>
|
||||
<?php foreach ($handlers as $i => $handler): ?>
|
||||
<div class="handler <?php echo ($handler === $handler) ? 'active' : ''?>">
|
||||
<?php echo $i ?>. <?php echo $tpl->escape(get_class($handler)) ?>
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
<?php /* Display a code block for all frames in the stack.
|
||||
* @todo: This should PROBABLY be done on-demand, lest
|
||||
* we get 200 frames to process. */ ?>
|
||||
<div class="frame-code-container <?php echo (!$has_frames ? 'empty' : '') ?>">
|
||||
<?php foreach ($frames as $i => $frame): ?>
|
||||
<?php $line = $frame->getLine(); ?>
|
||||
<div class="frame-code <?php echo ($i == 0 ) ? 'active' : '' ?>" id="frame-code-<?php echo $i ?>">
|
||||
<div class="frame-file">
|
||||
<?php $filePath = $frame->getFile(); ?>
|
||||
<?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?>
|
||||
Open:
|
||||
<a href="<?php echo $editorHref ?>" class="editor-link"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>>
|
||||
<strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<?php
|
||||
// Do nothing if there's no line to work off
|
||||
if ($line !== null):
|
||||
|
||||
// the $line is 1-indexed, we nab -1 where needed to account for this
|
||||
$range = $frame->getFileLines($line - 20, 40);
|
||||
|
||||
// getFileLines can return null if there is no source code
|
||||
if ($range):
|
||||
$range = array_map(function ($line) { return empty($line) ? ' ' : $line;}, $range);
|
||||
$start = key($range) + 1;
|
||||
$code = join("\n", $range);
|
||||
?>
|
||||
<pre id="frame-code-linenums-<?=$i?>" class="code-block linenums:<?php echo $start ?>"><?php echo $tpl->escape($code) ?></pre>
|
||||
|
||||
<?php endif ?>
|
||||
<?php endif ?>
|
||||
|
||||
<?php $frameArgs = $tpl->dumpArgs($frame); ?>
|
||||
<?php if ($frameArgs): ?>
|
||||
<div class="frame-file">
|
||||
Arguments
|
||||
</div>
|
||||
<div id="frame-code-args-<?=$i?>" class="code-block frame-args">
|
||||
<?php echo $frameArgs; ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php
|
||||
// Append comments for this frame
|
||||
$comments = $frame->getComments();
|
||||
?>
|
||||
<div class="frame-comments <?php echo empty($comments) ? 'empty' : '' ?>">
|
||||
<?php foreach ($comments as $commentNo => $comment): ?>
|
||||
<?php extract($comment) ?>
|
||||
<div class="frame-comment" id="comment-<?php echo $i . '-' . $commentNo ?>">
|
||||
<span class="frame-comment-context"><?php echo $tpl->escape($context) ?></span>
|
||||
<?php echo $tpl->escapeButPreserveUris($comment) ?>
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
<?php /* List file names & line numbers for all stack frames;
|
||||
clicking these links/buttons will display the code view
|
||||
for that particular frame */ ?>
|
||||
<?php foreach ($frames as $i => $frame): ?>
|
||||
<div class="frame <?php echo ($i == 0 ? 'active' : '') ?> <?php echo ($frame->isApplication() ? 'frame-application' : '') ?>" id="frame-line-<?php echo $i ?>">
|
||||
<span class="frame-index"><?php echo (count($frames) - $i - 1) ?></span>
|
||||
<div class="frame-method-info">
|
||||
<span class="frame-class"><?php echo $tpl->breakOnDelimiter('\\', $tpl->escape($frame->getClass() ?: '')) ?></span>
|
||||
<span class="frame-function"><?php echo $tpl->breakOnDelimiter('\\', $tpl->escape($frame->getFunction() ?: '')) ?></span>
|
||||
</div>
|
||||
|
||||
<div class="frame-file">
|
||||
<?php echo $frame->getFile() ? $tpl->breakOnDelimiter('/', $tpl->shorten($tpl->escape($frame->getFile()))) : '<#unknown>' ?><!--
|
||||
--><span class="frame-line"><?php echo (int) $frame->getLine() ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<div class="frames-container <?php echo $active_frames_tab == 'application' ? 'frames-container-application' : '' ?>">
|
||||
<?php $tpl->render($frame_list) ?>
|
||||
</div>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
<div class="frames-description <?php echo $has_frames_tabs ? 'frames-description-application' : '' ?>">
|
||||
<?php if ($has_frames_tabs): ?>
|
||||
<?php if ($active_frames_tab == 'application'): ?>
|
||||
<a href="#" id="application-frames-tab" class="frames-tab frames-tab-active">
|
||||
Application frames (<?php echo $frames->countIsApplication() ?>)
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<span href="#" id="application-frames-tab" class="frames-tab">
|
||||
Application frames (<?php echo $frames->countIsApplication() ?>)
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
<a href="#" id="all-frames-tab" class="frames-tab <?php echo $active_frames_tab == 'all' ? 'frames-tab-active' : '' ?>">
|
||||
All frames (<?php echo count($frames) ?>)
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<span>
|
||||
Stack frames (<?php echo count($frames) ?>)
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -0,0 +1,74 @@
|
||||
<div class="exception">
|
||||
<div class="exc-title">
|
||||
<?php foreach ($name as $i => $nameSection): ?>
|
||||
<?php if ($i == count($name) - 1): ?>
|
||||
<span class="exc-title-primary"><?php echo $tpl->escape($nameSection) ?></span>
|
||||
<?php else: ?>
|
||||
<?php echo $tpl->escape($nameSection) . ' \\' ?>
|
||||
<?php endif ?>
|
||||
<?php endforeach ?>
|
||||
<?php if ($code): ?>
|
||||
<span title="Exception Code">(<?php echo $tpl->escape($code) ?>)</span>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
||||
<div class="exc-message">
|
||||
<?php if (!empty($message)): ?>
|
||||
<span><?php echo $tpl->escape($message) ?></span>
|
||||
<?php else: ?>
|
||||
<span class="exc-message-empty-notice">No message</span>
|
||||
<?php endif ?>
|
||||
|
||||
<ul class="search-for-help">
|
||||
<?php if (!empty($docref_url)): ?>
|
||||
<li>
|
||||
<a rel="noopener noreferrer" target="_blank" href="<?php echo $docref_url; ?>" title="Search for help in the PHP manual.">
|
||||
<!-- PHP icon by Icons Solid -->
|
||||
<!-- https://www.iconfinder.com/icons/322421/book_icon -->
|
||||
<!-- Free for commercial use -->
|
||||
<svg height="16px" id="Layer_1" style="enable-background:new 0 0 32 32;" version="1.1" viewBox="0 0 32 32" width="16px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g transform="translate(240 0)"><path d="M-211,4v26h-24c-1.104,0-2-0.895-2-2s0.896-2,2-2h22V0h-22c-2.209,0-4,1.791-4,4v24c0,2.209,1.791,4,4,4h26V4H-211z M-235,8V2h20v22h-20V8z M-219,6h-12V4h12V6z M-223,10h-8V8h8V10z M-227,14h-4v-2h4V14z"/></g></svg>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif ?>
|
||||
<li>
|
||||
<a rel="noopener noreferrer" target="_blank" href="https://google.com/search?q=<?php echo urlencode(implode('\\', $name).' '.$message) ?>" title="Search for help on Google.">
|
||||
<!-- Google icon by Alfredo H, from https://www.iconfinder.com/alfredoh -->
|
||||
<!-- Creative Commons (Attribution 3.0 Unported) -->
|
||||
<!-- http://creativecommons.org/licenses/by/3.0/ -->
|
||||
<svg class="google" height="16" viewBox="0 0 512 512" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M457.732 216.625c2.628 14.04 4.063 28.743 4.063 44.098C461.795 380.688 381.48 466 260.205 466c-116.024 0-210-93.977-210-210s93.976-210 210-210c56.703 0 104.076 20.867 140.44 54.73l-59.205 59.197v-.135c-22.046-21.002-50-31.762-81.236-31.762-69.297 0-125.604 58.537-125.604 127.84 0 69.29 56.306 127.97 125.604 127.97 62.87 0 105.653-35.966 114.46-85.313h-114.46v-81.902h197.528z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a rel="noopener noreferrer" target="_blank" href="https://duckduckgo.com/?q=<?php echo urlencode(implode('\\', $name).' '.$message) ?>" title="Search for help on DuckDuckGo.">
|
||||
<!-- DuckDuckGo icon by IconBaandar Team, from https://www.iconfinder.com/iconbaandar -->
|
||||
<!-- Creative Commons (Attribution 3.0 Unported) -->
|
||||
<!-- http://creativecommons.org/licenses/by/3.0/ -->
|
||||
<svg class="duckduckgo" height="16" viewBox="150 150 1675 1675" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1792 1024c0 204.364-80.472 398.56-224.955 543.04-144.483 144.48-338.68 224.95-543.044 224.95-204.36 0-398.56-80.47-543.04-224.95-144.48-144.482-224.95-338.676-224.95-543.04 0-204.365 80.47-398.562 224.96-543.045C625.44 336.47 819.64 256 1024 256c204.367 0 398.565 80.47 543.05 224.954C1711.532 625.437 1792 819.634 1792 1024zm-270.206 497.787C1654.256 1389.327 1728 1211.36 1728 1024c0-187.363-73.74-365.332-206.203-497.796C1389.332 393.74 1211.363 320 1024 320s-365.33 73.742-497.795 206.205C393.742 658.67 320 836.637 320 1024c0 187.36 73.744 365.326 206.206 497.787C658.67 1654.25 836.638 1727.99 1024 1727.99c187.362 0 365.33-73.74 497.794-206.203z"/>
|
||||
<path d="M1438.64 1177.41c0-.03-.005-.017-.01.004l.01-.004z"/>
|
||||
<path d="M1499.8 976.878c.03-.156-.024-.048-.11.107l.11-.107z"/>
|
||||
<path d="M1105.19 991.642zm-68.013-376.128c-8.087-10.14-18.028-19.965-29.89-29.408-13.29-10.582-29-20.76-47.223-30.443-35.07-18.624-74.482-31.61-115.265-38.046-39.78-6.28-80.84-6.256-120.39.917l1.37 31.562c1.8.164 7.7 3.9 14.36 8.32-20.68 5.94-39.77 14.447-39.48 39.683l.2 17.48 17.3-1.73c29.38-2.95 60.17-2.06 90.32 2.61 9.21 1.42 18.36 3.2 27.38 5.32l-4.33 1.15c-20.45 5.58-38.93 12.52-54.25 20.61-46.28 24.32-75.51 60.85-90.14 108.37-14.14 45.95-14.27 101.81-2.72 166.51l.06.06c15.14 84.57 64.16 316.39 104.11 505.39 19.78 93.59 37.38 176.83 47.14 224.4 3.26 15.84 5.03 31.02 5.52 45.52.3 9.08.09 17.96-.58 26.62-.45 5.8-1.11 11.51-1.96 17.112l31.62 4.75c.71-4.705 1.3-9.494 1.76-14.373 48.964 10.517 99.78 16.05 151.88 16.05 60.68 0 119.61-7.505 175.91-21.64 3.04 6.08 6.08 12.19 9.11 18.32l28.62-14.128c-2.11-4.27-4.235-8.55-6.37-12.84-23.005-46.124-47.498-93.01-68.67-133.534-15.39-29.466-29.01-55.53-39.046-75.58-26.826-53.618-53.637-119.47-68.28-182.368-8.78-37.705-13.128-74.098-10.308-105.627-15.31-6.28-26.69-11.8-31.968-15.59l-.01.015c-14.22-10.2-31.11-28.12-41.82-49.717-8.618-17.376-13.4-37.246-10.147-57.84 3.17-19.84 27.334-46.714 57.843-67.46v-.063c26.554-18.05 58.75-32.506 86.32-34.31 7.835-.51 16.31-1.008 23.99-1.45 33.45-1.95 50.243-2.93 84.475-11.42 10.88-2.697 26.19-6.56 43.53-11.09 2.364-40.7-5.947-87.596-21.04-133.234-22.004-66.53-58.68-131.25-97.627-170.21-12.543-12.55-28.17-22.79-45.9-30.933-16.88-7.753-35.64-13.615-55.436-17.782zm-10.658 178.553s6.77-42.485 58.39-33.977c27.96 4.654 37.89 29.833 37.89 29.833s-25.31-14.46-44.95-14.198c-40.33.53-51.35 18.342-51.35 18.342zm-240.45-18.802c48.49-19.853 72.11 11.298 72.11 11.298s-35.21-15.928-69.46 5.59c-34.19 21.477-32.92 43.452-32.92 43.452s-18.17-40.5 30.26-60.34zm296.5 95.4c0-6.677 2.68-12.694 7.01-17.02 4.37-4.37 10.42-7.074 17.1-7.074 6.73 0 12.79 2.7 17.15 7.05 4.33 4.33 7.01 10.36 7.01 17.05 0 6.74-2.7 12.81-7.07 17.18-4.33 4.33-10.37 7.01-17.1 7.01-6.68 0-12.72-2.69-17.05-7.03-4.36-4.37-7.07-10.43-7.07-17.16zm-268.42 51.27c0-8.535 3.41-16.22 8.93-21.738 5.55-5.55 13.25-8.982 21.81-8.982 8.51 0 16.18 3.415 21.7 8.934 5.55 5.55 8.98 13.25 8.98 21.78 0 8.53-3.44 16.23-8.98 21.79-5.52 5.52-13.19 8.93-21.71 8.93-8.55 0-16.26-3.43-21.82-8.99-5.52-5.52-8.93-13.2-8.93-21.74z"/>
|
||||
<path d="M1102.48 986.34zm390.074-64.347c-28.917-11.34-74.89-12.68-93.32-3.778-11.5 5.567-35.743 13.483-63.565 21.707-25.75 7.606-53.9 15.296-78.15 21.702-17.69 4.67-33.3 8.66-44.4 11.435-34.92 8.76-52.05 9.77-86.17 11.78-7.84.46-16.48.97-24.48 1.5-28.12 1.86-60.97 16.77-88.05 35.4v.06c-31.12 21.4-55.77 49.12-59.01 69.59-3.32 21.24 1.56 41.74 10.35 59.67 10.92 22.28 28.15 40.77 42.66 51.29l.01-.02c5.38 3.9 16.98 9.6 32.6 16.08 26.03 10.79 63.2 23.76 101.25 34.23 43.6 11.99 89.11 21.05 121.69 20.41 34.26-.69 77.73-10.52 114.54-24.67 22.15-8.52 42.21-18.71 56.88-29.58 17.85-13.22 28.7-28.42 28.4-44.74-.07-3.89-.72-7.63-1.97-11.21l-.02.01c-11.6-33.06-50.37-23.59-105.53-10.12-46.86 11.445-107.94 26.365-169.01 20.434-32.56-3.167-54.45-10.61-67.88-20.133-5.96-4.224-9.93-8.67-12.18-13.11-1.96-3.865-2.68-7.84-2.33-11.714.39-4.42 2.17-9.048 5.1-13.57l-.05-.03c7.86-12.118 23.082-9.72 43.93-6.43 25.91 4.08 58.2 9.172 99.013-3.61 39.63-12.378 87.76-29.9 131.184-47.39 42.405-17.08 80.08-34.078 100.74-46.18 25.46-14.87 37.57-29.428 40.59-42.866 2.725-12.152-.89-22.48-8.903-31.07-5.87-6.29-14.254-11.31-23.956-15.115z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a rel="noopener noreferrer" target="_blank" href="https://stackoverflow.com/search?q=<?php echo urlencode(implode('\\', $name).' '.$message) ?>" title="Search for help on Stack Overflow.">
|
||||
<!-- Stack Overflow icon by Picons.me, from https://www.iconfinder.com/Picons -->
|
||||
<!-- Free for commercial use -->
|
||||
<svg class="stackoverflow" height="16" viewBox="-1163 1657.697 56.693 56.693" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M-1126.04 1689.533l-16.577-9.778 2.088-3.54 16.578 9.778zM-1127.386 1694.635l-18.586-4.996 1.068-3.97 18.586 4.995zM-1127.824 1700.137l-19.165-1.767.378-4.093 19.165 1.767zM-1147.263 1701.293h19.247v4.11h-19.247z"/>
|
||||
<path d="M-1121.458 1710.947s0 .96-.032.96v.016h-30.796s-.96 0-.96-.016h-.032v-20.03h3.288v16.805h25.244v-16.804h3.288v19.07zM-1130.667 1667.04l10.844 15.903-3.396 2.316-10.843-15.903zM-1118.313 1663.044l3.29 18.963-4.05.703-3.29-18.963z"/>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<span id="plain-exception"><?php echo $tpl->escape($plain_exception) ?></span>
|
||||
<button id="copy-button" class="clipboard" data-clipboard-text="<?php echo $tpl->escape($plain_exception) ?>" title="Copy exception details to clipboard">
|
||||
COPY
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<header>
|
||||
<?php $tpl->render($header) ?>
|
||||
</header>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Layout template file for Whoops's pretty error output.
|
||||
*/
|
||||
?>
|
||||
<!DOCTYPE html><?php echo $preface; ?>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><?php echo $tpl->escape($page_title) ?></title>
|
||||
|
||||
<style><?php echo $stylesheet ?></style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="Whoops container">
|
||||
<div class="stack-container">
|
||||
|
||||
<?php $tpl->render($panel_left_outer) ?>
|
||||
|
||||
<?php $tpl->render($panel_details_outer) ?>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script><?php echo $zepto ?></script>
|
||||
<script><?php echo $clipboard ?></script>
|
||||
<script><?php echo $javascript ?></script>
|
||||
</body>
|
||||
</html>
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
<?php $tpl->render($frame_code) ?>
|
||||
<?php $tpl->render($env_details) ?>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<div class="panel details-container cf">
|
||||
<?php $tpl->render($panel_details) ?>
|
||||
</div>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<?php $tpl->render($header_outer) ?>
|
||||
<?php $tpl->render($frames_description) ?>
|
||||
<?php $tpl->render($frames_container) ?>
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
<div class="panel left-panel cf <?php echo (!$has_frames ? 'empty' : '') ?>">
|
||||
<?php $tpl->render($panel_left) ?>
|
||||
</div>
|
||||
Reference in new issue
Block a user