From 90628e6ab0d3ca4c1c4eb6cff4a32c703ada4704 Mon Sep 17 00:00:00 2001 From: jamessspanggg Date: Mon, 20 Jan 2020 22:21:37 +0800 Subject: [PATCH 1/4] Add fill down and blank down operations for all columns --- .../views/data-table/data-table-view.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js index 3132b23819b7..3b172a768562 100644 --- a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js +++ b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js @@ -760,6 +760,39 @@ DataTableView.prototype._createMenuForAllColumns = function(elmt) { click: function() { new ColumnReorderingDialog(); } + }, + {}, + { + label: $.i18n('core-views/fill-down'), + id: "core/fill-down", + click: function() { + for (var i = 0; i < theProject.columnModel.columns.length; i++) { + Refine.postCoreProcess( + "fill-down", + { + columnName: theProject.columnModel.columns[i].name + }, + null, + { modelsChanged: true } + ); + } + } + }, + { + label: $.i18n('core-views/blank-down'), + id: "core/blank-down", + click: function() { + for (var i = 0; i < theProject.columnModel.columns.length; i++) { + Refine.postCoreProcess( + "blank-down", + { + columnName: theProject.columnModel.columns[i].name + }, + null, + { modelsChanged: true } + ); + } + } } ] }, From 73936183bb88c446c512f8161307a3912b52d5e9 Mon Sep 17 00:00:00 2001 From: jamessspanggg Date: Mon, 20 Jan 2020 23:20:14 +0800 Subject: [PATCH 2/4] Refactor to individual functions --- .../views/data-table/data-table-view.js | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js index 3b172a768562..7e5d6a6fb55d 100644 --- a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js +++ b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js @@ -765,34 +765,12 @@ DataTableView.prototype._createMenuForAllColumns = function(elmt) { { label: $.i18n('core-views/fill-down'), id: "core/fill-down", - click: function() { - for (var i = 0; i < theProject.columnModel.columns.length; i++) { - Refine.postCoreProcess( - "fill-down", - { - columnName: theProject.columnModel.columns[i].name - }, - null, - { modelsChanged: true } - ); - } - } + click: doAllFillDown }, { label: $.i18n('core-views/blank-down'), id: "core/blank-down", - click: function() { - for (var i = 0; i < theProject.columnModel.columns.length; i++) { - Refine.postCoreProcess( - "blank-down", - { - columnName: theProject.columnModel.columns[i].name - }, - null, - { modelsChanged: true } - ); - } - } + click: doAllBlankDown } ] }, @@ -896,6 +874,32 @@ DataTableView.prototype._createSortingMenu = function(elmt) { MenuSystem.createAndShowStandardMenu(items, elmt, { horizontal: false }); }; +var doAllFillDown = function() { + for (var i = 0; i < theProject.columnModel.columns.length; i++) { + Refine.postCoreProcess( + "fill-down", + { + columnName: theProject.columnModel.columns[i].name + }, + null, + { modelsChanged: true } + ); + } +}; + +var doAllBlankDown = function() { + for (var i = 0; i < theProject.columnModel.columns.length; i++) { + Refine.postCoreProcess( + "blank-down", + { + columnName: theProject.columnModel.columns[i].name + }, + null, + { modelsChanged: true } + ); + } +}; + DataTableView.prototype._updateCell = function(rowIndex, cellIndex, cell) { var rows = theProject.rowModel.rows; From d7d4731f80c7a25de4bd8a4af8a4b7c634cbe957 Mon Sep 17 00:00:00 2001 From: jamessspanggg Date: Tue, 21 Jan 2020 01:56:03 +0800 Subject: [PATCH 3/4] Utilise callbacks to chain fill/blank down operations --- .../views/data-table/data-table-view.js | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js index 7e5d6a6fb55d..ab31a4c27155 100644 --- a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js +++ b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js @@ -875,27 +875,45 @@ DataTableView.prototype._createSortingMenu = function(elmt) { }; var doAllFillDown = function() { - for (var i = 0; i < theProject.columnModel.columns.length; i++) { + doFillDown(0); +}; + +var doFillDown = function(colIndex) { + if (colIndex < theProject.columnModel.columns.length) { Refine.postCoreProcess( "fill-down", { - columnName: theProject.columnModel.columns[i].name + columnName: theProject.columnModel.columns[colIndex].name }, null, - { modelsChanged: true } + {modelsChanged: true}, + { + onDone: function() { + doFillDown(++colIndex); + } + } ); } }; var doAllBlankDown = function() { - for (var i = 0; i < theProject.columnModel.columns.length; i++) { + doBlankDown(0); +}; + +var doBlankDown = function(colIndex) { + if (colIndex < theProject.columnModel.columns.length) { Refine.postCoreProcess( "blank-down", { - columnName: theProject.columnModel.columns[i].name + columnName: theProject.columnModel.columns[colIndex].name }, null, - { modelsChanged: true } + { modelsChanged: true }, + { + onDone: function() { + doBlankDown(++colIndex); + } + } ); } }; From a19f859d2e94eb7d337d15e2cfcf34999f2cb521 Mon Sep 17 00:00:00 2001 From: jamessspanggg Date: Mon, 27 Jan 2020 17:14:57 +0800 Subject: [PATCH 4/4] Reverse order of fill down operation --- .../core/scripts/views/data-table/data-table-view.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js index ab31a4c27155..935b9a3e4adf 100644 --- a/main/webapp/modules/core/scripts/views/data-table/data-table-view.js +++ b/main/webapp/modules/core/scripts/views/data-table/data-table-view.js @@ -875,11 +875,11 @@ DataTableView.prototype._createSortingMenu = function(elmt) { }; var doAllFillDown = function() { - doFillDown(0); + doFillDown(theProject.columnModel.columns.length - 1); }; var doFillDown = function(colIndex) { - if (colIndex < theProject.columnModel.columns.length) { + if (colIndex >= 0) { Refine.postCoreProcess( "fill-down", { @@ -889,7 +889,7 @@ var doFillDown = function(colIndex) { {modelsChanged: true}, { onDone: function() { - doFillDown(++colIndex); + doFillDown(--colIndex); } } );