diff --git a/ui/scripts/ui/widgets/listView.js b/ui/scripts/ui/widgets/listView.js
index ce33eaf286a..99020af69e4 100644
--- a/ui/scripts/ui/widgets/listView.js
+++ b/ui/scripts/ui/widgets/listView.js
@@ -782,13 +782,37 @@
var $th = $('
').addClass(key).attr('colspan', colspan).appendTo($tr);
if ($th.index()) $th.addClass('reduced-hide');
if (colspan > 1) {
- $th.css({'border-right': '1px solid #C6C3C3', 'border-left': '1px solid #C6C3C3'});
- $th.addClass('collapsible-column');
+ $th.css({'border-right': 'none', 'border-left': '1px solid #C6C3C3'});
$('').html(_l(label)).appendTo($th);
- $('').html('»').css({'float': 'right'}).appendTo($th);
+
+ var karet = addColumnToTr($tr, 'collapsible-column', 1, '«');
+ karet.css({'border-right': '1px solid #C6C3C3', 'border-left': 'none', 'min-width': '10px', 'width': '10px', 'max-width': '10px'});
+ karet.click(function(event) {
+ event.stopPropagation();
+ var prevTh = $(this).prev('th');
+ var startIndex = 0;
+ prevTh.prevAll('th').each(function() {
+ startIndex += parseInt($(this).attr('colspan'));
+ });
+ var endIndex = startIndex + parseInt(prevTh.attr('colspan'));
+ prevTh.closest('table').find('tbody td').filter(function() {
+ return $(this).index() >= startIndex && $(this).index() < endIndex;
+ }).toggle();
+ prevTh.closest('table').find('thead tr:last th').filter(function() {
+ return $(this).index() >= startIndex && $(this).index() < endIndex;
+ }).toggle();
+ prevTh.toggle();
+ if (prevTh.is(':visible')) {
+ $(this).html('«');
+ } else {
+ $(this).html('»');
+ }
+ $tr.closest('.list-view').find('.no-split').dataTable('refresh');
+ });
} else {
$th.html(_l(label));
}
+ return $th;
};
if (groupableColumns) {
@@ -831,6 +855,9 @@
addColumnToTr($tr, key, 1, subfield.label);
return true;
});
+ var blankCell = addColumnToTr($tr, 'collapsible-column', 1, '');
+ blankCell.css({'border-right': '1px solid #C6C3C3', 'border-left': 'none', 'min-width': '10px', 'width': '10px', 'max-width': '10px'});
+ blankCell.prev('th').css({'border-right': 'none'});
} else {
addColumnToTr($tr, key, 1, field.label);
}
@@ -1123,12 +1150,15 @@
}
var reducedFields = {};
+ var idx = 0;
$.each(fields, function(key) {
var field = this;
if (field.columns) {
$.each(field.columns, function(innerKey) {
reducedFields[innerKey] = this;
});
+ reducedFields['blank-cell-' + idx] = {blankCell: true};
+ idx += 1;
} else {
reducedFields[key] = this;
}
@@ -1150,6 +1180,11 @@
$td.addClass('truncated');
}
+ if (field.blankCell) {
+ $td.css({'min-width': '10px', 'width': '10px', 'max-width': '10px', 'border-left': 'none'});
+ $td.prev('td').css({'border-right': 'none'});
+ }
+
if (field.indicator) {
$td.addClass('state').addClass(field.indicator[content]);
|