From 449b8e25b34173ffe5ecfbe8627c72c6fa3991d9 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Mon, 15 Jan 2018 10:34:06 +0000 Subject: [PATCH] SSDM-3250 : Piping pagination information from Search Grid to Sample Form SVN: 39097 --- .../AdvancedSearch/AdvancedSearchView.js | 58 ++++++++++++++++--- 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchView.js index 9fdbf30e08e..71573066433 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/AdvancedSearch/AdvancedSearchView.js @@ -563,14 +563,18 @@ function AdvancedSearchView(advancedSearchController, advancedSearchModel) { } this._getGridForResults = function(criteria, isGlobalSearch) { - - var getLinkOnClick = function(code, data) { + var _this = this; + + var getLinkOnClick = function(code, data, paginationInfo) { + if(data.entityKind !== "Sample") { + paginationInfo = null; // TODO - Only supported for samples for now + } switch(data.entityKind) { case "Experiment": - return FormUtil.getFormLink(code, data.entityKind, data.identifier); + return FormUtil.getFormLink(code, data.entityKind, data.identifier, paginationInfo); break; default: - return FormUtil.getFormLink(code, data.entityKind, data.permId); + return FormUtil.getFormLink(code, data.entityKind, data.permId, paginationInfo); break; } } @@ -611,16 +615,54 @@ function AdvancedSearchView(advancedSearchController, advancedSearchModel) { property : 'code', isExportable: true, sortable : !isGlobalSearch, - render : function(data) { - return getLinkOnClick(data.code, data); + render : function(data, grid) { + var paginationInfo = null; + if(!isGlobalSearch) { + var indexFound = null; + for(var idx = 0; idx < grid.lastReceivedData.objects.length; idx++) { + if(grid.lastReceivedData.objects[idx].permId === data.permId) { + indexFound = idx + (grid.lastUsedOptions.pageIndex * grid.lastUsedOptions.pageSize); + break; + } + } + + if(indexFound !== null) { + paginationInfo = { + pagFunction : _this._advancedSearchController.searchWithPagination(_this._advancedSearchModel.criteria, false), + pagOptions : grid.lastUsedOptions, + currentIndex : indexFound, + totalCount : grid.lastReceivedData.totalCount + } + } + } + return getLinkOnClick(data.code, data, paginationInfo); } }, { label : 'Identifier', property : 'identifier', isExportable: true, sortable : !isGlobalSearch, - render : function(data) { - return getLinkOnClick(data.identifier, data); + render : function(data, grid) { + var paginationInfo = null; + if(!isGlobalSearch) { + var indexFound = null; + for(var idx = 0; idx < grid.lastReceivedData.objects.length; idx++) { + if(grid.lastReceivedData.objects[idx].permId === data.permId) { + indexFound = idx + (grid.lastUsedOptions.pageIndex * grid.lastUsedOptions.pageSize); + break; + } + } + + if(indexFound !== null) { + paginationInfo = { + pagFunction : _this._advancedSearchController.searchWithPagination(_this._advancedSearchModel.criteria, false), + pagOptions : grid.lastUsedOptions, + currentIndex : indexFound, + totalCount : grid.lastReceivedData.totalCount + } + } + } + return getLinkOnClick(data.identifier, data, paginationInfo); } }, { label : ELNDictionary.ExperimentELN + '/' + ELNDictionary.ExperimentInventory, -- GitLab