From 6d52799e0eac0444c8cde58cb781cae45c4ba476 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Thu, 16 Mar 2017 09:23:08 +0000 Subject: [PATCH] SSDM-4184 : Range queries for Registration Date and Modification Date SVN: 37916 --- .../eln-lims/html/js/server/ServerFacade.js | 44 +++++++++++++++---- .../AdvancedSearch/AdvancedSearchView.js | 17 +++++-- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js index 1a82bad8267..f48356bafb7 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/server/ServerFacade.js @@ -899,7 +899,7 @@ function ServerFacade(openbisServer) { } } - var setAttributeCriteria = function(criteria, attributeName, attributeValue) { + var setAttributeCriteria = function(criteria, attributeName, attributeValue, comparisonOperator) { switch(attributeName) { //Used by all entities case "CODE": @@ -912,10 +912,36 @@ function ServerFacade(openbisServer) { criteria.withTag().withCode().thatEquals(attributeValue); //TO-DO To Test, currently not supported by ELN UI break; case "REGISTRATION_DATE": //Must be a string object with format 2009-08-18 - criteria.withRegistrationDate().thatEquals(attributeValue); + if(comparisonOperator) { + switch(comparisonOperator) { + case "thatEqualsDate": + criteria.withRegistrationDate().thatEquals(attributeValue); + case "thatIsLaterThanOrEqualToDate": + criteria.withRegistrationDate().thatIsLaterThanOrEqualTo(attributeValue); + break; + case "thatIsEarlierThanOrEqualToDate": + criteria.withRegistrationDate().thatIsEarlierThanOrEqualTo(attributeValue); + break; + } + } else { + criteria.withRegistrationDate().thatEquals(attributeValue); + } break; case "MODIFICATION_DATE": //Must be a string object with format 2009-08-18 - criteria.withModificationDate().thatEquals(attributeValue); + if(comparisonOperator) { + switch(comparisonOperator) { + case "thatEqualsDate": + criteria.withModificationDate().thatEquals(attributeValue); + case "thatIsLaterThanOrEqualToDate": + criteria.withModificationDate().thatIsLaterThanOrEqualTo(attributeValue); + break; + case "thatIsEarlierThanOrEqualToDate": + criteria.withModificationDate().thatIsEarlierThanOrEqualTo(attributeValue); + break; + } + } else { + criteria.withModificationDate().thatEquals(attributeValue); + } break; case "SAMPLE_TYPE": case "EXPERIMENT_TYPE": @@ -949,7 +975,7 @@ function ServerFacade(openbisServer) { setPropertyCriteria(setOperator(searchCriteria, advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "Attribute": - setAttributeCriteria(setOperator(searchCriteria, advancedSearchCriteria.logicalOperator), fieldName, fieldValue); + setAttributeCriteria(setOperator(searchCriteria, advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "Property/Attribute": switch(fieldNameType) { @@ -957,7 +983,7 @@ function ServerFacade(openbisServer) { setPropertyCriteria(setOperator(searchCriteria, advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "ATTR": - setAttributeCriteria(setOperator(searchCriteria, advancedSearchCriteria.logicalOperator), fieldName, fieldValue); + setAttributeCriteria(setOperator(searchCriteria, advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; } break; @@ -967,7 +993,7 @@ function ServerFacade(openbisServer) { setPropertyCriteria(setOperator(searchCriteria.withSample(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "ATTR": - setAttributeCriteria(setOperator(searchCriteria.withSample(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue); + setAttributeCriteria(setOperator(searchCriteria.withSample(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "NULL": searchCriteria.withoutSample(); @@ -980,7 +1006,7 @@ function ServerFacade(openbisServer) { setPropertyCriteria(setOperator(searchCriteria.withExperiment(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "ATTR": - setAttributeCriteria(setOperator(searchCriteria.withExperiment(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue); + setAttributeCriteria(setOperator(searchCriteria.withExperiment(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "NULL": searchCriteria.withoutExperiment(); @@ -993,7 +1019,7 @@ function ServerFacade(openbisServer) { setPropertyCriteria(setOperator(searchCriteria.withParents(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "ATTR": - setAttributeCriteria(setOperator(searchCriteria.withParents(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue); + setAttributeCriteria(setOperator(searchCriteria.withParents(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; } break; @@ -1003,7 +1029,7 @@ function ServerFacade(openbisServer) { setPropertyCriteria(setOperator(searchCriteria.withChildren(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; case "ATTR": - setAttributeCriteria(setOperator(searchCriteria.withChildren(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue); + setAttributeCriteria(setOperator(searchCriteria.withChildren(),advancedSearchCriteria.logicalOperator), fieldName, fieldValue, fieldOperator); break; } break; 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 3a5553fec55..bfab1bb8c65 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 @@ -319,13 +319,22 @@ function AdvancedSearchView(advancedSearchController, advancedSearchModel) { $newFieldOperatorContainer.empty(); delete _this._advancedSearchModel.criteria.rules[uuid].operator; - if(selectedValue && selectedValue.startsWith("PROP.")) { + var dataType = null; + + if(selectedValue && + (selectedValue === "ATTR.REGISTRATION_DATE" || + selectedValue === "ATTR.MODIFICATION_DATE")) { + dataType = "TIMESTAMP"; + } else if(selectedValue && selectedValue.startsWith("PROP.")) { var propertyTypeCode = selectedValue.substring(5); var propertyType = profile.getPropertyType(propertyTypeCode); - + dataType = propertyType.dataType; + } + + if(dataType) { var operatorOptions = null; - if (propertyType.dataType === "INTEGER" || propertyType.dataType === "NUMBER") { + if (dataType === "INTEGER" || dataType === "NUMBER") { operatorOptions = [ { value : "thatEqualsNumber", label : "thatEquals (Number)", selected : true }, { value : "thatIsLessThanNumber", label : "thatIsLessThan (Number)" }, @@ -333,7 +342,7 @@ function AdvancedSearchView(advancedSearchController, advancedSearchModel) { { value : "thatIsGreaterThanNumber", label : "thatIsGreaterThan (Number)" }, { value : "thatIsGreaterThanOrEqualToNumber", label : "thatIsGreaterThanOrEqualTo (Number)" } ]; - } else if(propertyType.dataType === "TIMESTAMP") { + } else if(dataType === "TIMESTAMP") { operatorOptions = [ { value : "thatEqualsDate", label : "thatEquals (Date)", selected : true }, { value : "thatIsLaterThanOrEqualToDate", label : "thatIsLaterThanOrEqualTo (Date)" }, -- GitLab