131 lines
3.9 KiB
JavaScript
131 lines
3.9 KiB
JavaScript
function sfWebDebugGetElementsByClassName(strClass, strTag, objContElm)
|
|
{
|
|
// http://muffinresearch.co.uk/archives/2006/04/29/getelementsbyclassname-deluxe-edition/
|
|
strTag = strTag || "*";
|
|
objContElm = objContElm || document;
|
|
var objColl = (strTag == '*' && document.all) ? document.all : objContElm.getElementsByTagName(strTag);
|
|
var arr = new Array();
|
|
var delim = strClass.indexOf('|') != -1 ? '|' : ' ';
|
|
var arrClass = strClass.split(delim);
|
|
var j = objColl.length;
|
|
for (var i = 0; i < j; i++) {
|
|
if(objColl[i].className == undefined) continue;
|
|
var arrObjClass = objColl[i].className.split(' ');
|
|
if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
|
|
var c = 0;
|
|
comparisonLoop:
|
|
{
|
|
var l = arrObjClass.length;
|
|
for (var k = 0; k < l; k++) {
|
|
var n = arrClass.length;
|
|
for (var m = 0; m < n; m++) {
|
|
if (arrClass[m] == arrObjClass[k]) c++;
|
|
if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
|
|
arr.push(objColl[i]);
|
|
break comparisonLoop;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return arr;
|
|
}
|
|
|
|
function sfWebDebugToggleMenu()
|
|
{
|
|
var element = document.getElementById('sfWebDebugDetails');
|
|
|
|
var cacheElements = sfWebDebugGetElementsByClassName('sfWebDebugCache');
|
|
var mainCacheElements = sfWebDebugGetElementsByClassName('sfWebDebugActionCache');
|
|
|
|
if (element.style.display != 'none')
|
|
{
|
|
document.getElementById('sfWebDebugLog').style.display = 'none';
|
|
document.getElementById('sfWebDebugConfig').style.display = 'none';
|
|
document.getElementById('sfWebDebugDatabaseDetails').style.display = 'none';
|
|
document.getElementById('sfWebDebugTimeDetails').style.display = 'none';
|
|
|
|
// hide all cache information
|
|
for (var i = 0; i < cacheElements.length; ++i)
|
|
{
|
|
cacheElements[i].style.display = 'none';
|
|
}
|
|
for (var i = 0; i < mainCacheElements.length; ++i)
|
|
{
|
|
mainCacheElements[i].style.border = 'none';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (var i = 0; i < cacheElements.length; ++i)
|
|
{
|
|
cacheElements[i].style.display = '';
|
|
}
|
|
for (var i = 0; i < mainCacheElements.length; ++i)
|
|
{
|
|
mainCacheElements[i].style.border = '1px solid #f00';
|
|
}
|
|
}
|
|
|
|
sfWebDebugToggle('sfWebDebugDetails');
|
|
sfWebDebugToggle('sfWebDebugShowMenu');
|
|
sfWebDebugToggle('sfWebDebugHideMenu');
|
|
}
|
|
|
|
function sfWebDebugShowDetailsFor(element)
|
|
{
|
|
if (element != 'sfWebDebugLog') document.getElementById('sfWebDebugLog').style.display='none';
|
|
if (element != 'sfWebDebugConfig') document.getElementById('sfWebDebugConfig').style.display='none';
|
|
if (element != 'sfWebDebugDatabaseDetails') document.getElementById('sfWebDebugDatabaseDetails').style.display='none';
|
|
if (element != 'sfWebDebugTimeDetails') document.getElementById('sfWebDebugTimeDetails').style.display='none';
|
|
|
|
sfWebDebugToggle(element);
|
|
}
|
|
|
|
function sfWebDebugToggle(element)
|
|
{
|
|
if (typeof element == 'string')
|
|
element = document.getElementById(element);
|
|
|
|
if (element)
|
|
element.style.display = element.style.display == 'none' ? '' : 'none';
|
|
}
|
|
|
|
function sfWebDebugToggleMessages(klass)
|
|
{
|
|
var elements = sfWebDebugGetElementsByClassName(klass);
|
|
|
|
var x = elements.length;
|
|
for (var i = 0; i < x; ++i)
|
|
{
|
|
sfWebDebugToggle(elements[i]);
|
|
}
|
|
}
|
|
|
|
function sfWebDebugToggleAllLogLines(show, klass)
|
|
{
|
|
var elements = sfWebDebugGetElementsByClassName(klass);
|
|
var x = elements.length;
|
|
for (var i = 0; i < x; ++i)
|
|
{
|
|
elements[i].style.display = show ? '' : 'none';
|
|
}
|
|
}
|
|
|
|
function sfWebDebugShowOnlyLogLines(type)
|
|
{
|
|
var types = new Array();
|
|
types[0] = 'info';
|
|
types[1] = 'warning';
|
|
types[2] = 'error';
|
|
for (klass in types)
|
|
{
|
|
var elements = sfWebDebugGetElementsByClassName('sfWebDebug' + types[klass].substring(0, 1).toUpperCase() + types[klass].substring(1, types[klass].length));
|
|
var x = elements.length;
|
|
for (var i = 0; i < x; ++i)
|
|
{
|
|
elements[i].style.display = (type == types[klass]) ? '' : 'none';
|
|
}
|
|
}
|
|
}
|