Tue, 29 Oct 2024 18:15:06 +0100
use cx_array_add() instead of reimplementing the magic
function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); var summary = $('#'+base+'-summary'); var content = $('#'+base+'-content'); var trigger = $('#'+base+'-trigger'); var src=$(trigger).attr('src'); if (content.is(':visible')===true) { content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; } function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } function toggleLevel(level) { $('table.directory tr').each(function() { var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l<level+1) { i.removeClass('iconfopen iconfclosed').addClass('iconfopen'); a.html('▼'); $(this).show(); } else if (l==level+1) { i.removeClass('iconfclosed iconfopen').addClass('iconfclosed'); a.html('►'); $(this).show(); } else { $(this).hide(); } }); updateStripes(); } function toggleFolder(id) { // the clicked row var currentRow = $('#row_'+id); // all rows after the clicked row var rows = currentRow.nextAll("tr"); var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub // only match elements AFTER this one (can't hide elements before) var childRows = rows.filter(function() { return this.id.match(re); }); // first row is visible we are HIDING if (childRows.filter(':first').is(':visible')===true) { // replace down arrow by right arrow for current row var currentRowSpans = currentRow.find("span"); currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); currentRowSpans.filter(".arrow").html('►'); rows.filter("[id^=row_"+id+"]").hide(); // hide all children } else { // we are SHOWING // replace right arrow by down arrow for current row var currentRowSpans = currentRow.find("span"); currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen"); currentRowSpans.filter(".arrow").html('▼'); // replace down arrows by right arrows for child rows var childRowsSpans = childRows.find("span"); childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed"); childRowsSpans.filter(".arrow").html('►'); childRows.show(); //show all children } updateStripes(); } function toggleInherit(id) { var rows = $('tr.inherit.'+id); var img = $('tr.inherit_header.'+id+' img'); var src = $(img).attr('src'); if (rows.filter(':first').is(':visible')===true) { rows.css('display','none'); $(img).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { rows.css('display','table-row'); // using show() causes jump in firefox $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } }