diff --git a/searchPages/find/searchAll.component.html b/searchPages/find/searchAll.component.html
index 35293df2..f602f3f7 100644
--- a/searchPages/find/searchAll.component.html
+++ b/searchPages/find/searchAll.component.html
@@ -19,7 +19,7 @@
[simpleView]="true" [formPlaceholderText]="formPlaceholderText"
[selectedFields]="selectedFields"
- [fieldIdsMap]="fieldIdsMap" [fieldIds]="fieldIds"
+ [fieldIdsMap]="fieldIdsMap" [fieldIds]="fieldIds" [entitiesSelection]="true"
>
diff --git a/searchPages/searchUtils/advancedSearchForm.component.html b/searchPages/searchUtils/advancedSearchForm.component.html
index 9788091c..1c01a4e6 100644
--- a/searchPages/searchUtils/advancedSearchForm.component.html
+++ b/searchPages/searchUtils/advancedSearchForm.component.html
@@ -32,7 +32,7 @@
- |
Add rule
diff --git a/searchPages/searchUtils/dateFilter.component.ts b/searchPages/searchUtils/dateFilter.component.ts
index 2be681db..66528d91 100644
--- a/searchPages/searchUtils/dateFilter.component.ts
+++ b/searchPages/searchUtils/dateFilter.component.ts
@@ -18,28 +18,28 @@ import {MatDatepickerInputEvent} from "@angular/material";
-
+ |
|
-
- From
- |
-
-
- -->
+
+
+
+
+
|
-
- To
- |
-
-
- -->
+
+
+
+
+
diff --git a/searchPages/searchUtils/entitiesSelection.component.ts b/searchPages/searchUtils/entitiesSelection.component.ts
index 15a40c88..302a3cd2 100644
--- a/searchPages/searchUtils/entitiesSelection.component.ts
+++ b/searchPages/searchUtils/entitiesSelection.component.ts
@@ -25,7 +25,6 @@ import {Router} from "@angular/router";
Organizations
-->
-
diff --git a/searchPages/searchUtils/newSearchPage.component.ts b/searchPages/searchUtils/newSearchPage.component.ts
index 1a257606..e5b17b41 100644
--- a/searchPages/searchUtils/newSearchPage.component.ts
+++ b/searchPages/searchUtils/newSearchPage.component.ts
@@ -528,14 +528,60 @@ export class NewSearchPageComponent {
* Build advanced search Filters based on the URL parameters
* @param params
*/
- createAdvancedSearchSelectedFiltersFromURLParameters(params) {
- for (var i = 0; i < this.fieldIds.length; i++) {
+ createAdvancedSearchSelectedFiltersFromNewURLParameters(params) {
+ for (let i = 0; i < Object.keys(params).length; i++) {
+ if(params["f"+i] && params["fv"+i] ) {
+ let fieldId = params["f" + i].split(",")[0];
+ let operator = (params["f" + i].split(",").length >1 )?params["f" + i].split(",")[1]:"and";
+ let fieldparam = (this.fieldIdsMap[fieldId]) ? this.fieldIdsMap[fieldId].param : "";
+ if (!this.fieldIdsMap[fieldId]) {
+ console.error("Field: " + fieldId + " not found in fieldIds map");
+ continue;
+ }
+ let value: string = StringUtils.URIDecode(params["fv"+i]);
+ if (this.fieldIdsMap[fieldId].type == "date") {
+ let validDates: boolean = true;
+ let dateField: AdvancedField = new AdvancedField(fieldId, fieldparam, this.fieldIdsMap[fieldId].name, this.fieldIdsMap[fieldId].type, value, operator);
+ if (value.indexOf("range") != -1) {
+ dateField.dateValue.type = "range";
+ if (value.length < 26) {
+ validDates = false;
+ } else {
+ if (!Dates.isValidDate(value.substring(5, 15)) || !Dates.isValidDate(value.substring(16, 26))) {
+ validDates = false;
+ } else {
+ dateField.dateValue.from = Dates.getDateFromString(value.substring(5, 15));
+ dateField.dateValue.to = Dates.getDateFromString(value.substring(16, 26));
+ }
+ }
+ // "rangeYYYY-MM-DD:YYYY-MM-DD"
+ } else {
+ dateField.dateValue.setDatesByType(value);
+ }
+ if (validDates) {
+ this.selectedFields.push(dateField);
+ }
+
+ } else {
+ this.selectedFields.push(new AdvancedField(fieldId, fieldparam, this.fieldIdsMap[fieldId].name, this.fieldIdsMap[fieldId].type,value, operator));
+ }
+
+ }
+ }
+ }
+ /**
+ * Build advanced search Filters based on the URL parameters
+ * @param params
+ */
+ createAdvancedSearchSelectedFiltersFromURLParameters(params) {
+ this.createAdvancedSearchSelectedFiltersFromNewURLParameters(params);
+ for (var i = 0; i < this.fieldIds.length; i++) {
var fieldId = this.fieldIds[i];
var fieldparam = (this.fieldIdsMap[fieldId]) ? this.fieldIdsMap[fieldId].param : "";
if (!this.fieldIdsMap[fieldId]) {
-
console.error("Field: " + fieldId + " not found in fieldIds map");
+ continue;
}
var operatorId = this.getOperatorParameter(fieldparam);
@@ -569,7 +615,7 @@ export class NewSearchPageComponent {
}
} else {
- this.selectedFields.push(new AdvancedField(fieldId, fieldparam, this.fieldIdsMap[fieldId].name, this.fieldIdsMap[fieldId].type, StringUtils.unquote(values[j]), operators[j]));
+ this.selectedFields.push(new AdvancedField(fieldId, fieldparam, this.fieldIdsMap[fieldId].name, this.fieldIdsMap[fieldId].type, values[j], operators[j]));
}
}
}
@@ -600,6 +646,7 @@ export class NewSearchPageComponent {
}
} else {
if (this.selectedFields[i].id == "q") {
+ console.log(this.selectedFields[i].value)
var op = "";
var doisParams = "";
if ((this.entityType == 'publication' || this.entityType == 'dataset' || this.entityType == 'software' || this.entityType == 'other' || this.entityType == "result")) {
@@ -636,8 +683,8 @@ export class NewSearchPageComponent {
if (this.customFilter) {
params += (countParams == 0 ? "" : " and ") + this.customFilter.queryFieldName + " exact " + StringUtils.quote((this.customFilter.valueId));
}
- // console.log("ParameterS:")
- // console.log(params)
+ console.log("ParameterS:")
+ console.log(params)
return params;
}
@@ -911,33 +958,22 @@ export class NewSearchPageComponent {
buildPageURLParameters(filters:Filter[], rangeFilters: RangeFilter[], includePage: boolean) {
this.parameterNames.splice(0, this.parameterNames.length);
this.parameterValues.splice(0, this.parameterValues.length);
- var fields: { [key: string]: { values: string[], operators: string[] } } = {};
for (var i = 0; i < this.selectedFields.length; i++) {
- if (this.fieldIdsMap[this.selectedFields[i].id] != undefined && (this.selectedFields[i].value.length > 0 || this.selectedFields[i].type == "date")) {
- if (!fields[this.selectedFields[i].id]) {
- fields[this.selectedFields[i].id] = {values: [], operators: []};
- fields[this.selectedFields[i].id].values = [];
- fields[this.selectedFields[i].id].operators = [];
- }
- if (this.selectedFields[i].type == "date") {
- if (this.selectedFields[i].dateValue.type == "range") {
- fields[this.selectedFields[i].id].values.push(StringUtils.quote(StringUtils.URIEncode("range" + Dates.getDateToString(this.selectedFields[i].dateValue.from) + ":" + Dates.getDateToString(this.selectedFields[i].dateValue.to))));
- } else {
- fields[this.selectedFields[i].id].values.push(StringUtils.quote(StringUtils.URIEncode(this.selectedFields[i].dateValue.type)));
- }
- } else {
- fields[this.selectedFields[i].id].values.push(StringUtils.quote(StringUtils.URIEncode(this.selectedFields[i].value)));
- }
- fields[this.selectedFields[i].id].operators.push(this.selectedFields[i].operatorId);
+ //default operator is and
+ this.parameterNames.push("f"+i);
+ this.parameterValues.push(this.selectedFields[i].id + (this.selectedFields[i].operatorId!='and'?(","+this.selectedFields[i].operatorId):''));
+ this.parameterNames.push("fv"+i);
+ if (this.selectedFields[i].type == "date") {
- }
- }
- for (var i = 0; i < this.fieldIds.length; i++) {
- if (fields[this.fieldIds[i]]) {
- this.parameterNames.push(this.fieldIdsMap[this.fieldIds[i]].param);
- this.parameterValues.push(fields[this.fieldIds[i]].values.join());
- this.parameterNames.push(this.fieldIdsMap[this.fieldIds[i]].operator);
- this.parameterValues.push(fields[this.fieldIds[i]].operators.join());
+ if (this.selectedFields[i].dateValue.type == "range") {
+ this.parameterValues.push(StringUtils.URIEncode("range" + Dates.getDateToString(this.selectedFields[i].dateValue.from) + ":" + Dates.getDateToString(this.selectedFields[i].dateValue.to)));
+ } else {
+ this.parameterValues.push(StringUtils.URIEncode(this.selectedFields[i].dateValue.type));
+ }
+
+ } else {
+ console.log(this.selectedFields[i].value +" " + StringUtils.URIEncode(this.selectedFields[i].value))
+ this.parameterValues.push(StringUtils.URIEncode(this.selectedFields[i].value));
}
}
if (includePage && this.searchUtils.page != 1) {
diff --git a/searchPages/searchUtils/quick-selections.component.ts b/searchPages/searchUtils/quick-selections.component.ts
index 4479f3e3..e41d6914 100644
--- a/searchPages/searchUtils/quick-selections.component.ts
+++ b/searchPages/searchUtils/quick-selections.component.ts
@@ -18,9 +18,9 @@ import {ConfigurationService} from "../../utils/configuration/configuration.serv
Include:
Publications
- Research Data
+ Research data
Software
- Other Research outcomes
+ Other research outcomes
diff --git a/services/refineFieldResults.service.ts b/services/refineFieldResults.service.ts
index e3450563..59fb2fa6 100644
--- a/services/refineFieldResults.service.ts
+++ b/services/refineFieldResults.service.ts
@@ -77,6 +77,8 @@ export class RefineFieldResultsService {
suffix="datasources/";
}else if(entityType == "person"){
suffix="people/";
+ }else if(entityType == "result"){
+ suffix="publications/";
}
return suffix;
}
diff --git a/services/searchResearchResults.service.ts b/services/searchResearchResults.service.ts
index 52348dd3..c0555a32 100644
--- a/services/searchResearchResults.service.ts
+++ b/services/searchResearchResults.service.ts
@@ -390,7 +390,7 @@ export class SearchResearchResultsService {
if(doisParams.length > 0){
url += "&"+doisParams;
}else{
- url += "&q=" + StringUtils.URIEncode(params);
+ url += "&query=" + StringUtils.URIEncode(params);
}
}
diff --git a/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts b/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts
index a58e31c6..2457b469 100644
--- a/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts
+++ b/utils/entitiesAutoComplete/entitiesAutoComplete.component.ts
@@ -259,7 +259,7 @@ export class EntitiesAutocompleteComponent {
this.showInput = true;
if(this.selectedValue && this.selectedValue.length > 0 ){
-
+ console.log(this.selectedValue+" "+this.entityType )
this.sub = this._search.fetchByType(this.selectedValue,this.entityType, this.properties).subscribe(
data => {
this.selected.push( data[0]);
diff --git a/utils/properties/searchFields.ts b/utils/properties/searchFields.ts
index 71ae04cd..477d2f11 100644
--- a/utils/properties/searchFields.ts
+++ b/utils/properties/searchFields.ts
@@ -40,7 +40,7 @@ export class SearchFields {
["relfundinglevel1_id"]:{name:"Funding Substream level 1", type:"refine", param:"funderlv1", operator: "fn1", equalityOperator: " exact ", filterType: "checkbox"},
["relfundinglevel2_id"]:{name:"Funding Substream level 2", type:"refine", param:"funderlv2", operator: "fn0", equalityOperator: " exact ", filterType: "checkbox"},
["resultacceptanceyear"]:{name:"Publication Date", type:"keyword", param:"year", operator: "ya", equalityOperator: " = ", filterType: null},
- ["resultdateofacceptance"]:{name:"Publication Date", type:"date", param:"date", operator: "dt", equalityOperator: " exact ", filterType: null},
+ ["resultdateofacceptance"]:{name:"Publication Date", type:"date", param:"date", operator: "dt", equalityOperator: " within ", filterType: null},
["resultacceptanceyear-range-resultacceptanceyear"]:{name:"Year range", type:"keyword", param:"year", operator: "ya", equalityOperator: " within ", filterType: "range"},
["resultbestaccessright"]:{name:"Access Mode", type:"vocabulary", param:"access", operator: "ac", equalityOperator: " exact ", filterType: "radio"},
["collectedfrom"]:{name:"Collected From", type:"refine", param:"datasource", operator: "cl", equalityOperator: " exact ", filterType: "checkbox"},
| | | |