From ce739f052413e8ddcb5eeb9940d49ca791d8c854 Mon Sep 17 00:00:00 2001
From: juanf <juanf@bsse-bs-dock-dhcp-447.ethz.ch>
Date: Wed, 22 Aug 2018 15:24:30 +0200
Subject: [PATCH] SSDM-6971 : Search improvements

---
 .../webapps/eln-lims/html/js/server/ServerFacade.js  | 12 +++++++++++-
 .../widgets/AdvancedEntitySearchDropdown.js          | 12 ++++++------
 2 files changed, 17 insertions(+), 7 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 b02e4c132ca..1d660beb86c 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
@@ -1081,7 +1081,17 @@ function ServerFacade(openbisServer) {
 						switch(attributeName) {
 							//Used by all entities
 							case "CODE":
-								criteria.withCode().thatEquals(attributeValue);
+								if(!comparisonOperator) {
+									comparisonOperator = "thatEquals";
+								}
+								switch(comparisonOperator) {
+									case "thatEquals":
+											criteria.withCode().thatEquals(attributeValue);
+											break;
+									case "thatContains":
+											criteria.withCode().thatContains(attributeValue);
+											break;
+								}
 								break;
 							case "PERM_ID":
 								criteria.withPermId().thatEquals(attributeValue);
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js
index 4dce260bc81..4837e7e8355 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/widgets/AdvancedEntitySearchDropdown.js
@@ -171,7 +171,7 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 						entityKind : "PROJECT", 
 						logicalOperator : "OR", 
 						rules : {
-							"UUIDv4-2": { type: "Property/Attribute", 	name: "ATTR.CODE", value: storedParams.data.q }
+							"UUIDv4-2": { type: "Property/Attribute", 	name: "ATTR.CODE", operator : "thatContains", 		value: storedParams.data.q }
 						}
 					};
 		mainController.serverFacade.searchForProjectsAdvanced(criteria, null, function(results) { results.type = "Projects"; action(results) });
@@ -183,7 +183,7 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 						logicalOperator : "OR", 
 						rules : {
 							"UUIDv4-1": { type: "Property/Attribute", 	name: "PROP.NAME", operator : "thatContainsString", value: storedParams.data.q },
-							"UUIDv4-2": { type: "Property/Attribute", 	name: "ATTR.CODE", value: storedParams.data.q }
+							"UUIDv4-2": { type: "Property/Attribute", 	name: "ATTR.CODE", operator : "thatContains", 		value: storedParams.data.q }
 						}
 					};
 		mainController.serverFacade.searchForExperimentsAdvanced(criteria, null, function(results) { results.type = "Experiments"; action(results) });
@@ -195,7 +195,7 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 						logicalOperator : "OR", 
 						rules : {
 							"UUIDv4-1": { type: "Property/Attribute", 	name: "PROP.NAME", operator : "thatContainsString", value: storedParams.data.q },
-							"UUIDv4-2": { type: "Property/Attribute", 	name: "ATTR.CODE", value: storedParams.data.q }
+							"UUIDv4-2": { type: "Property/Attribute", 	name: "ATTR.CODE", operator : "thatContains", 		value: storedParams.data.q }
 						}
 					};
 		mainController.serverFacade.searchForSamplesAdvanced(criteria, null, function(results) { results.type = "Samples"; action(results) });
@@ -207,11 +207,11 @@ function AdvancedEntitySearchDropdown(	isMultiple,
 						logicalOperator : "OR", 
 						rules : {
 							"UUIDv4-1": { type: "Sample", 				name: "PROP.NAME", operator : "thatContainsString", value: storedParams.data.q },
-							"UUIDv4-2": { type: "Sample", 				name: "ATTR.CODE", value: storedParams.data.q },
+							"UUIDv4-2": { type: "Sample", 				name: "ATTR.CODE", operator : "thatContains",		value: storedParams.data.q },
 							"UUIDv4-3": { type: "Experiment", 			name: "PROP.NAME", operator : "thatContainsString", value: storedParams.data.q },
-							"UUIDv4-4": { type: "Experiment", 			name: "ATTR.CODE", value: storedParams.data.q },
+							"UUIDv4-4": { type: "Experiment", 			name: "ATTR.CODE", operator : "thatContains", 		value: storedParams.data.q },
 							"UUIDv4-5": { type: "Property/Attribute", 	name: "PROP.NAME", operator : "thatContainsString", value: storedParams.data.q },
-							"UUIDv4-6": { type: "Property/Attribute", 	name: "ATTR.CODE", value: storedParams.data.q }
+							"UUIDv4-6": { type: "Property/Attribute", 	name: "ATTR.CODE", operator : "thatContains", 		value: storedParams.data.q }
 						}
 					};
 		
-- 
GitLab