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 1a82bad8267d0eb116ff3b6e8ab34248c917c577..f48356bafb70f0ae07eefd8e54e2e9356ac1a1c7 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 3a5553fec55c403fd4a505f0e15353b268e53643..bfab1bb8c65120eedeecbf39df7961c85f8946ae 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)" },