diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/StandardProfile.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/StandardProfile.js index e0f6bd66b1e528b0b3ed947c63cc5ba7d6b9f1f9..d676f9258175c7d73ae3d76a10081ba51ecddae6 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/StandardProfile.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/config/StandardProfile.js @@ -412,7 +412,7 @@ $.extend(StandardProfile.prototype, DefaultProfile.prototype, { repTitle += " (as saved when ordered)" } - var orderSummary = new DataGridController(repTitle, columns, [], null, getDataRows, null, false, "ORDER_SUMMARY", false, 30); + var orderSummary = new DataGridController(repTitle, columns, [], null, getDataRows, null, false, "ORDER_SUMMARY", false, false, 30); orderSummary.init(orderSummaryContainer); var totalsByCurrencyContainer = $("<div>").append($("<br>")).append($("<legend>").append("Total:")); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js index 4cb7812153bb3d7b0828890c9265ec0d75909cfc..c177e7d734a3456eb7fcd67d70732e5dc3027970 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js @@ -1542,7 +1542,7 @@ function MainController(profile) { } } - var dataGrid = new DataGridController(searchDomainLabel + " Search Results", columns, [], null, getDataList, rowClick, true, "SEARCH_" + searchDomainLabel, false, 90); + var dataGrid = new DataGridController(searchDomainLabel + " Search Results", columns, [], null, getDataList, rowClick, true, "SEARCH_" + searchDomainLabel, false, false, 90); localReference.currentView = dataGrid; var content = localReference._getBackwardsCompatibleMainContainer(); dataGrid.init(content); @@ -1670,7 +1670,7 @@ function MainController(profile) { } } - var dataGrid = new DataGridController(searchDomainLabel + " Search Results", columns, [], null, getDataList, rowClick, true, "SEARCH_" + searchDomainLabel, false, 90); + var dataGrid = new DataGridController(searchDomainLabel + " Search Results", columns, [], null, getDataList, rowClick, true, "SEARCH_" + searchDomainLabel, false, false, 90); localReference.currentView = dataGrid; var content = localReference._getBackwardsCompatibleMainContainer(); dataGrid.init(content); @@ -1843,7 +1843,7 @@ function MainController(profile) { mainController.changeView('showViewSamplePageFromPermId', e.data.permId); } - var dataGrid = new DataGridController("Search Results", columns, [], null, getDataList, rowClick, true, "SEARCH_OPENBIS", false, 90); + var dataGrid = new DataGridController("Search Results", columns, [], null, getDataList, rowClick, true, "SEARCH_OPENBIS", false, false, 90); localReference.currentView = dataGrid; var content = localReference._getBackwardsCompatibleMainContainer(); dataGrid.init(content); 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 702d7b55b689b8c1fb1de190b63792ee35ade68d..3855177276d9379ed6ca5b9f71f036c92bdfb4d7 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 @@ -1292,7 +1292,7 @@ function AdvancedSearchView(advancedSearchController, advancedSearchModel) { var filterModes = isGlobalSearch ? [] : null var getDataRows = this._advancedSearchController.searchWithPagination(criteria, isGlobalSearch); - var dataGrid = new DataGridController(this.resultsTitle, this._filterColumns(columns), columnsLast, dynamicColumnsFunc, getDataRows, null, false, this.configKeyPrefix + this._advancedSearchModel.criteria.entityKind, isMultiselectable, 70, filterModes); + var dataGrid = new DataGridController(this.resultsTitle, this._filterColumns(columns), columnsLast, dynamicColumnsFunc, getDataRows, null, false, this.configKeyPrefix + this._advancedSearchModel.criteria.entityKind, isMultiselectable, false, 70, filterModes); return dataGrid; } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/DataGridController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/DataGridController.js index 9da148d5242b0a5d75fb7940cbc6ddd0020300da..f21fdfbb6e0c16765c14fec3d404ff67bff2990b 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/DataGridController.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/DataGridController.js @@ -24,6 +24,7 @@ function DataGridController( showAllColumns, configKey, isMultiselectable, + isExportable, heightPercentage, filterModes ) { @@ -50,7 +51,7 @@ function DataGridController( $container.empty().append($element) } - this.setId = function(id){ + this.setId = function (id) { this.id = id } @@ -73,6 +74,9 @@ function DataGridController( loadRows: _this._loadRows, onSettingsChange: _this._onSettingsChange, onRowClick: rowClickEventHandler, + exportable: isExportable, + scheduleExport: _this._scheduleExport, + loadExported: _this._loadExported, selectable: false, multiselectable: isMultiselectable, actions: _this._actions(extraOptions), @@ -155,12 +159,12 @@ function DataGridController( value = params.value } - if(value === null || value === undefined || value === ""){ + if (value === null || value === undefined || value === "") { return - }else{ - if(_.isString(value)){ + } else { + if (_.isString(value)) { $(params.container).empty().text(value) - }else{ + } else { $(params.container).empty().append(value) } } @@ -191,6 +195,7 @@ function DataGridController( index === columns.length - 1), configurable: !column.hide && !column.canNotBeHidden, exportable: column.isExportable, + exportableProperty: column.exportableProperty, truncate: column.truncate, metadata: column.metadata, } @@ -274,6 +279,25 @@ function DataGridController( mainController.serverFacade.setSetting(configKey, elnGridSettingsStr) } + this._scheduleExport = function (parameters) { + let serviceParameters = { + "method" : "export", + "file_name" : "test", + "ids" : parameters.exportedIds, + "export_referred" : true, + "export_properties" : parameters.exportedProperties, + "text_formatting" : parameters.exportedValues + } + + mainController.serverFacade.customASService(serviceParameters, function() { + alert("Export succeeded") + }, "xls-export", function(errorResult) { + Util.showError("Export failed: " + JSON.stringify(errorResult)); + }); + } + + this._loadExported = function () {} + this.refresh = function () { if (_this.controller) { _this.controller.load() diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/ExperimentDataGridUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/ExperimentDataGridUtil.js index 4dd22eb37e1a6a588d607eb08c8ce2a53ebe1679..e352201072e7de35951e7a88b0aece3f8861f452 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/ExperimentDataGridUtil.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/ExperimentDataGridUtil.js @@ -108,10 +108,14 @@ var ExperimentDataGridUtil = new function() { var entity = entities[sIdx]; var model = { 'id' : entity.permId, + 'exportableId' : { + exportable_kind: 'EXPERIMENT', + perm_id: entity.permId + }, 'code' : entity.code, 'identifier' : entity.identifier, 'permId' : entity.permId, - 'type' : entity.experimentTypeCode, + 'type' : entity.experimentTypeCode, 'registrator' : entity.registrationDetails.userId, 'registrationDate' : Util.getFormatedDate(new Date(entity.registrationDetails.registrationDate)), 'modifier' : entity.registrationDetails.modifierUserId, @@ -147,12 +151,22 @@ var ExperimentDataGridUtil = new function() { entityType: entity.type } })) + + propertyColumnsToSort.forEach(propertyColumn => { + propertyColumn.exportableProperty = { + code: propertyColumn.property, + types: { + "EXPERIMENT": Object.keys(foundExperimentTypes) + } + } + }) + return propertyColumnsToSort; } //Create and return a data grid controller var configKey = "EXPERIMENT_TABLE"; - var dataGridController = new DataGridController(null, columns, [], dynamicColumnsFunc, getDataList, rowClick, false, configKey, null, heightPercentage); + var dataGridController = new DataGridController(null, columns, [], dynamicColumnsFunc, getDataList, rowClick, false, configKey, null, true, heightPercentage); dataGridController.setId("experiment-grid") return dataGridController; } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js index 1f2968d4ed9423debe992457f52aae59892613a2..dbe49a7031a3619803af254689bc3ddc102317e7 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataGrid/SampleDataGridUtil.js @@ -128,7 +128,7 @@ var SampleDataGridUtil = new function() { } } - var propertyColumnsToSort = SampleDataGridUtil.createPropertyColumns(foundPropertyCodes); + var propertyColumnsToSort = SampleDataGridUtil.createPropertyColumns(foundPropertyCodes); FormUtil.sortPropertyColumns(propertyColumnsToSort, samples.map(function(sample){ return { entityKind: "SAMPLE", @@ -136,6 +136,15 @@ var SampleDataGridUtil = new function() { } })) + propertyColumnsToSort.forEach(propertyColumn => { + propertyColumn.exportableProperty = { + code: propertyColumn.property, + types: { + "SAMPLE": Object.keys(foundSampleTypes) + } + } + }) + return propertyColumnsToSort; } @@ -341,7 +350,7 @@ var SampleDataGridUtil = new function() { configKey += "_" + optionalConfigPostKey; } - var dataGridController = new DataGridController(null, columnsFirst, columnsLast, dynamicColumnsFunc, getDataList, rowClick, false, configKey, isMultiselectable, heightPercentage); + var dataGridController = new DataGridController(null, columnsFirst, columnsLast, dynamicColumnsFunc, getDataList, rowClick, false, configKey, isMultiselectable, true, heightPercentage); dataGridController.setId("sample-grid") return dataGridController; } @@ -415,8 +424,12 @@ var SampleDataGridUtil = new function() { modificationDate = Util.getFormatedDate(new Date(sample.registrationDetails.modificationDate)); } - var sampleModel = { + var sampleModel = { 'id' : sample.permId, + 'exportableId' : { + exportable_kind: 'SAMPLE', + perm_id: sample.permId + }, '$object' : sample, 'identifier' : sample.identifier, 'code' : sample.code, @@ -658,6 +671,10 @@ var SampleDataGridUtil = new function() { var sampleModel = { 'id' : sample.permId, + 'exportableId' : { + exportable_kind: 'SAMPLE', + perm_id: sample.permId + }, '$object' : sample, 'identifier' : sample.identifier, 'code' : sample.code, diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableView.js index f37cdca154e3487faa10f2b81c9c112ba3a78450..9f803fa6aa3ffada48660fdf9f773af1bdb42169 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/HierarchyTable/HierarchyTableView.js @@ -166,7 +166,7 @@ function HierarchyTableView(controller, model) { callback(filteredData); } - this._dataGrid = new DataGridController(null, columns, [], null, getDataList, null, false, this._model.entity["@type"] + "_HIERARCHY_TABLE", false, 90); + this._dataGrid = new DataGridController(null, columns, [], null, getDataList, null, false, this._model.entity["@type"] + "_HIERARCHY_TABLE", false, false, 90); this._dataGrid.init(this._container); this._container.prepend($("<legend>").append(" " + ELNDictionary.Sample + " Hierarchy")); } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryView.js index 35d5631110da9c8b50ac745cc70fe3d0c9195d03..44c6b9d2886f6e570861aea19d68a7e3f1ca8ee0 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/History/HistoryView.js @@ -119,6 +119,7 @@ function HistoryView(controller, model) { null, false, this._model.entity["@type"] + "_HISTORY", + false, false ) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js index 8a246b8291727a5c7ff26a7370c55c23f4171302..364e676d1d2b21c2cd8ff62c63434684ec279c5e 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js @@ -145,7 +145,7 @@ function StorageListView(storageListController, storageListModel) { }}); } - this._dataGrid = new DataGridController(null, columns, [], null, getDataList, rowClick, false, "STORAGE_WIDGET", isMultiselectable, 60); + this._dataGrid = new DataGridController(null, columns, [], null, getDataList, rowClick, false, "STORAGE_WIDGET", isMultiselectable, false, 60); var $dataGridContainer = $("<div>"); this._dataGrid.init($dataGridContainer, extraOptions); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/TrashManager/TrashManagerView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/TrashManager/TrashManagerView.js index e256e2119e790067d9e3ce9b90a98d89c0c851ce..a818988bf82fca8e5eff92be2ca89f61c38ab66f 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/TrashManager/TrashManagerView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/TrashManager/TrashManagerView.js @@ -209,7 +209,7 @@ function TrashManagerView(trashManagerController, trashManagerModel) { } var dataGridContainer = $("<div>").css("margin-top", "-10px").css("margin-left", "-10px"); - var dataGrid = new DataGridController(null, columns, [], null, getDataList, null, true, "TRASHCAN_TABLE", false, 90); + var dataGrid = new DataGridController(null, columns, [], null, getDataList, null, true, "TRASHCAN_TABLE", false, false, 90); dataGrid.init(dataGridContainer); $containerColumn.append(dataGridContainer); } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserManager/UserManagerView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserManager/UserManagerView.js index 3bcccbb61f656e3e5524e706a18e7bd64f74eb34..27c82ab75597241c3cb017e270a5d7258a3a3f61 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserManager/UserManagerView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/UserManager/UserManagerView.js @@ -124,7 +124,7 @@ function UserManagerView(userManagerController, userManagerModel) { callback(dataList); } - var dataGrid = new DataGridController(null, columns, [], null, getDataList, null, false, "USER_MANAGER_TABLE", false, 90); + var dataGrid = new DataGridController(null, columns, [], null, getDataList, null, false, "USER_MANAGER_TABLE", false, false, 90); dataGrid.setId("user-grid") dataGrid.init(dataGridContainer); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/VocabularyManager/VocabularyManagerView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/VocabularyManager/VocabularyManagerView.js index a37ca1064f2f12e2e466f30ab86156902ae156c0..a42c417fc559f715d49fec1b52649bca69032dba 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/VocabularyManager/VocabularyManagerView.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/VocabularyManager/VocabularyManagerView.js @@ -67,6 +67,10 @@ function VocabularyManagerView(vocabularyManagerController, vocabularyManagerMod var codeDiv = "<div id= " + id +">" + vocabulary.code + "</did>"; dataList.push({ id: vocabulary.code, + exportableId : { + exportable_kind: 'VOCABULARY', + perm_id: vocabulary.code + }, code : codeDiv, description : vocabulary.description, object : vocabulary @@ -79,7 +83,7 @@ function VocabularyManagerView(vocabularyManagerController, vocabularyManagerMod _this._showVocabulary(e.data.object) } - var dataGrid = new DataGridController(null, columns, [], null, getDataList, rowClick, true, "VOCABULARY_TABLE", false, 90); + var dataGrid = new DataGridController(null, columns, [], null, getDataList, rowClick, true, "VOCABULARY_TABLE", false, true, 90); dataGrid.setId("vocabulary-grid") dataGrid.init(this._dataGridContainer); @@ -121,7 +125,7 @@ function VocabularyManagerView(vocabularyManagerController, vocabularyManagerMod callback(dataList); } - var dataGrid = new DataGridController(null, columns, [], null, getDataList, null, true, "VOCABULARY_TERMS_TABLE", false, 90); + var dataGrid = new DataGridController(null, columns, [], null, getDataList, null, true, "VOCABULARY_TERMS_TABLE", false, false, 90); dataGrid.setId("vocabulary-terms-table") dataGrid.init(this._dataGridContainer); diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/plugins/bbb-hub/snakemake-table.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/plugins/bbb-hub/snakemake-table.js index 7dd2771de2e8aa5d7dec2737e06408613a28d7cd..3593dd1780c92112d9854d67767286900fb23358 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/plugins/bbb-hub/snakemake-table.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/plugins/bbb-hub/snakemake-table.js @@ -70,7 +70,7 @@ var SnakemakeTable = new function() { callback(dataList); }; - var dataGridController = new DataGridController(null, columns, [], null, getDataList, null, true, "ENTITY_TABLE_BBB", null, 90); + var dataGridController = new DataGridController(null, columns, [], null, getDataList, null, true, "ENTITY_TABLE_BBB", null, false, 90); dataGridController.init(container); }