1
0
mirror of synced 2024-12-17 00:18:42 +03:00
doctrine2/website/web/sf/sf_web_debug/js/main.js
2007-09-06 17:20:49 +00:00

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';
}
}
}