24
24
$('table.directory tr').
25
25
removeClass('even').filter(':visible:even').addClass('even');
27
28
function toggleLevel(level)
29
$('table.directory tr').each(function(){
30
$('table.directory tr').each(function() {
30
31
var l = this.id.split('_').length-1;
31
32
var i = $('#img'+this.id.substring(3));
32
33
var a = $('#arr'+this.id.substring(3));
34
i.attr('src','ftv2folderopen.png');
35
a.attr('src','ftv2mnode.png');
35
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
37
38
} else if (l==level+1) {
38
i.attr('src','ftv2folderclosed.png');
39
a.attr('src','ftv2pnode.png');
39
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
48
49
function toggleFolder(id)
51
52
var currentRow = $('#row_'+id);
52
var currentRowImages = currentRow.find("img");
54
//All rows after the clicked row
54
// all rows after the clicked row
55
55
var rows = currentRow.nextAll("tr");
57
//Only match elements AFTER this one (can't hide elements before)
58
var childRows = rows.filter(function() {
59
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
60
return this.id.match(re);
63
//First row is visible we are HIDING
57
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
59
// only match elements AFTER this one (can't hide elements before)
60
var childRows = rows.filter(function() { return this.id.match(re); });
62
// first row is visible we are HIDING
64
63
if (childRows.filter(':first').is(':visible')===true) {
65
currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
66
currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
67
rows.filter("[id^=row_"+id+"]").hide();
68
} else { //We are SHOWING
70
var childImages = childRows.find("img");
71
var childImg = childImages.filter("[id^=img]");
72
var childArr = childImages.filter("[id^=arr]");
74
currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
75
currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
76
childImg.attr('src','ftv2folderclosed.png'); //children closed
77
childArr.attr('src','ftv2pnode.png'); //children closed
64
// replace down arrow by right arrow for current row
65
var currentRowSpans = currentRow.find("span");
66
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
67
currentRowSpans.filter(".arrow").html('►');
68
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
69
} else { // we are SHOWING
70
// replace right arrow by down arrow for current row
71
var currentRowSpans = currentRow.find("span");
72
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
73
currentRowSpans.filter(".arrow").html('▼');
74
// replace down arrows by right arrows for child rows
75
var childRowsSpans = childRows.find("span");
76
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
77
childRowsSpans.filter(".arrow").html('►');
78
78
childRows.show(); //show all children