[Profiler] Buid a common infrastructure
This commit is contained in:
parent
aa1676c7b5
commit
762d90d859
@ -450,3 +450,9 @@ td.main, td.menu {
|
||||
#collector_content .routing tr.almost td {
|
||||
background-color: #fa0;
|
||||
}
|
||||
|
||||
.loading {
|
||||
background: transparent url(../images/profiler/spinner.gif) scroll no-repeat 50% 50%;
|
||||
height: 30px;
|
||||
display: none;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1 @@
|
||||
{% block panel '' %}
|
@ -0,0 +1,72 @@
|
||||
<script type="text/javascript">/*<![CDATA[*/
|
||||
Sfjs = (function() {
|
||||
"use strict";
|
||||
|
||||
var noop = function() {},
|
||||
request = function(url, onSuccess, onError, payload, options) {
|
||||
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
|
||||
options = options || {};
|
||||
xhr.open(options.method || 'GET', url, true);
|
||||
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
||||
xhr.onreadystatechange = function(state) {
|
||||
if (4 === xhr.readyState && 200 === xhr.status) {
|
||||
(onSuccess || noop)(xhr);
|
||||
} else if (4 === xhr.readyState && xhr.status != 200) {
|
||||
(onError || noop)(xhr);
|
||||
}
|
||||
};
|
||||
xhr.send(payload || '');
|
||||
},
|
||||
hasClass = function(el, klass) {
|
||||
return el.className.match(new RegExp('\\b' + klass + '\\b'));
|
||||
},
|
||||
removeClass = function(el, klass) {
|
||||
el.className = el.className.replace(new RegExp('\\b' + klass + '\\b'), ' ');
|
||||
},
|
||||
addClass = function(el, klass) {
|
||||
if (!hasClass(el, klass)) { el.className += " " + klass; }
|
||||
};
|
||||
|
||||
return {
|
||||
hasClass: hasClass,
|
||||
removeClass: removeClass,
|
||||
addClass: addClass,
|
||||
request: request,
|
||||
load: function(selector, url, onSuccess, onError, options) {
|
||||
var el = document.querySelector(selector);
|
||||
if (el && el.getAttribute('data-sfurl') !== url) {
|
||||
request(
|
||||
url,
|
||||
function(xhr) {
|
||||
el.innerHTML = xhr.responseText;
|
||||
el.setAttribute('data-sfurl', url);
|
||||
removeClass(el, 'loading');
|
||||
(onSuccess || noop)(xhr, el);
|
||||
},
|
||||
function(xhr) { (onError || noop)(xhr, el); },
|
||||
options
|
||||
);
|
||||
}
|
||||
return this;
|
||||
},
|
||||
toggle: function(selector, elOn, elOff) {
|
||||
var i,
|
||||
style,
|
||||
tmp = elOn.style.display,
|
||||
els = document.querySelectorAll(selector);
|
||||
|
||||
elOn.style.display = elOff.style.display;
|
||||
elOff.style.display = tmp;
|
||||
|
||||
if (els.length) {
|
||||
style = 'none' === tmp ? 'none' : 'block';
|
||||
for (i = els.length - 1; i >= 0; --i) {
|
||||
els[i].style.display = style;
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
})();
|
||||
/*]]>*/</script>
|
@ -27,6 +27,7 @@
|
||||
{% endif %}
|
||||
|
||||
<div id="collector_content">
|
||||
{% include 'WebProfilerBundle:Profiler:base_js.html.twig' %}
|
||||
{% block panel '' %}
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user