diff options
author | Timo Besenreuther <timo.besenreuther@gmail.com> | 2014-02-07 18:17:20 +0400 |
---|---|---|
committer | Timo Besenreuther <timo.besenreuther@gmail.com> | 2014-02-07 18:17:20 +0400 |
commit | 88aaf3f0aae367cd0659a81c0bb4d44adc706a3c (patch) | |
tree | 6b246f57345585ea7c2340ee01b55b3e0e7da8ff /plugins/Actions/javascripts | |
parent | f35e9d2a52421ccf9a078453803a5690e9932990 (diff) |
refs #4536 improved striping for action data tables: when subtables are opened or closed, reset the odd/even labels. otherwise, two subsequent odd or even rows are possible.
Diffstat (limited to 'plugins/Actions/javascripts')
-rw-r--r-- | plugins/Actions/javascripts/actionsDataTable.js | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/plugins/Actions/javascripts/actionsDataTable.js b/plugins/Actions/javascripts/actionsDataTable.js index 38a4c2db90..627e0bc9d0 100644 --- a/plugins/Actions/javascripts/actionsDataTable.js +++ b/plugins/Actions/javascripts/actionsDataTable.js @@ -133,15 +133,23 @@ $(this).prop('parent', function () { return self.parentAttributeParent + ' ' + self.parentId; }); - - // Add some styles on the cells even/odd - // label (first column of a data row) or not - $("td:first-child:odd", this).addClass('label labeleven'); - $("td:first-child:even", this).addClass('label labelodd'); - $("tr:odd td", domElem).slice(1).addClass('column columnodd'); - $("tr:even td", domElem).slice(1).addClass('column columneven'); }); + + self.addOddAndEvenClasses(domElem); }, + + addOddAndEvenClasses: function(domElem) { + // Add some styles on the cells even/odd + // label (first column of a data row) or not + $("tr:not(.hidden):odd td:first-child", domElem) + .removeClass('labeleven').addClass('label labelodd'); + $("tr:not(.hidden):even td:first-child", domElem) + .removeClass('labelodd').addClass('label labeleven'); + $("tr:not(.hidden):odd td", domElem).slice(1) + .removeClass('columneven').addClass('column columnodd'); + $("tr:not(.hidden):even td", domElem).slice(1) + .removeClass('columnodd').addClass('column columneven'); + }, handleRowActions: function (domElem, rows) { this.doHandleRowActions(rows); @@ -204,15 +212,17 @@ // else we toggle all these rows else { var plusDetected = $('td img.plusMinus', domElem).attr('src').indexOf('plus') >= 0; - + var stripingNeeded = false; + $(domElem).siblings().each(function () { var parents = $(this).prop('parent').split(' '); if (parents) { if (parents.indexOf(idSubTable) >= 0 || parents.indexOf('subDataTable_' + idSubTable) >= 0) { if (plusDetected) { - $(this).css('display', ''); - + $(this).css('display', '').removeClass('hidden'); + stripingNeeded = !stripingNeeded; + //unroll everything and display '-' sign //if the row is already opened var NextStyle = $(this).next().attr('class'); @@ -225,12 +235,21 @@ setImageMinus(this); } else { - $(this).css('display', 'none'); + $(this).css('display', 'none').addClass('hidden'); + stripingNeeded = !stripingNeeded; } self.repositionRowActions($(domElem)); } } }); + + var table = $(domElem); + if (!table.hasClass('dataTable')) { + table = table.closest('.dataTable'); + } + if (stripingNeeded) { + self.addOddAndEvenClasses(table); + } } // toggle the +/- image |