From c8255e1ef6428f0987cae493197f78d359c6e768 Mon Sep 17 00:00:00 2001 From: Thomas Steur Date: Thu, 14 May 2015 09:29:47 +1200 Subject: [PATCH] refs #7891 if only one subtable is given in a table, expand it automatically --- .../Actions/javascripts/actionsDataTable.js | 34 ++++++++++++++++++- tests/UI/specs/ActionsDataTable_spec.js | 10 +++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/plugins/Actions/javascripts/actionsDataTable.js b/plugins/Actions/javascripts/actionsDataTable.js index acc81b87095..29d56fd3120 100644 --- a/plugins/Actions/javascripts/actionsDataTable.js +++ b/plugins/Actions/javascripts/actionsDataTable.js @@ -91,6 +91,36 @@ self.handleExpandFooter(domElem); self.setFixWidthToMakeEllipsisWork(domElem); self.handleSummaryRow(domElem); + self.openSubtableFromLevel0IfOnlyOneSubtableGiven(domElem); + }, + + openSubtableFromLevel0IfOnlyOneSubtableGiven: function (domElem) { + var $subtables = domElem.find('.subDataTable'); + var hasOnlyOneSubtable = $subtables.length === 1; + + if (hasOnlyOneSubtable) { + var hasOnlyOneRow = domElem.find('tbody tr.level0').length === 1; + + if (hasOnlyOneRow) { + var $labels = $subtables.find('.label'); + if ($labels.length) { + $labels.first().click(); + } + } + } + }, + + openSubtableFromSubtableIfOnlyOneSubtableGiven: function (domElem) { + var hasOnlyOneRow = domElem.length === 1 + var hasOnlyOneSubtable = domElem.hasClass('subDataTable'); + + if (hasOnlyOneRow && hasOnlyOneSubtable) { + // when subtable is loaded + var $labels = domElem.find('.label'); + if ($labels.length) { + $labels.first().click(); + } + } }, //see dataTable::applyCosmetics @@ -323,7 +353,9 @@ function () { self.onClickActionSubDataTable(this) }); + + self.openSubtableFromSubtableIfOnlyOneSubtableGiven(response); } }); -})(jQuery, require); \ No newline at end of file +})(jQuery, require); diff --git a/tests/UI/specs/ActionsDataTable_spec.js b/tests/UI/specs/ActionsDataTable_spec.js index 7f4874b37e2..b4a4deecb1f 100644 --- a/tests/UI/specs/ActionsDataTable_spec.js +++ b/tests/UI/specs/ActionsDataTable_spec.js @@ -91,4 +91,12 @@ describe("ActionsDataTable", function () { page.click('.dataTableSearchPattern>input[type=submit]'); }, done); }); -}); \ No newline at end of file + + it("should automatically expand subtables if it contains only one folder", function (done) { + expect.screenshot('auto_expand').to.be.capture(function (page) { + page.load(url + '&viewDataTable=table'); + page.click('tr .value:contains("blog")'); + page.click('tr .value:contains("2012")'); + }, done); + }); +});