@@ -71,14 +79,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -173,14 +181,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -272,6 +280,16 @@
[loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils"
[type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults">
+
+
+
+
+ Table view
+
+
+
@@ -280,11 +298,18 @@
-
+ [showLoading]="true" [properties]=properties>
+
+
pagingLimit ? 'search-results' : ''" *ngIf="(searchUtils.page >= pagingLimit) && (searchUtils.totalResults > searchUtils.size*pagingLimit)">
@@ -300,7 +325,7 @@
-
Last index information
diff --git a/searchPages/searchUtils/newSearchPage.component.ts b/searchPages/searchUtils/newSearchPage.component.ts
index e5b17b41..b28e6d14 100644
--- a/searchPages/searchUtils/newSearchPage.component.ts
+++ b/searchPages/searchUtils/newSearchPage.component.ts
@@ -17,6 +17,7 @@ import {HelperService} from "../../utils/helper/helper.service";
import {SearchFields} from "../../utils/properties/searchFields";
import {RefineResultsUtils} from "../../services/servicesUtils/refineResults.class";
import {RangeFilter} from "../../utils/rangeFilter/rangeFilterHelperClasses.class";
+import {ZenodoInformationClass} from "../../deposit/utils/zenodoInformation.class";
@Component({
selector: 'new-search-page',
@@ -60,6 +61,8 @@ export class NewSearchPageComponent {
@Input() showRefine: boolean = true;
@Input() tableViewLink: string;
@Input() usedBy: string = "search";
+ @Input() public zenodoInformation: ZenodoInformationClass = new ZenodoInformationClass();
+ @Input() showLastIndex: boolean = true;
@Input() showResultCount: boolean = true;
@Input() showMoreFilterValuesInline: boolean = true;
@Input() filterValuesNum: number = 6;
@@ -663,14 +666,37 @@ export class NewSearchPageComponent {
}
}
if (doisParams.length > 0) {
- params += this.createQuotedKeywordQuery(this.selectedFields[i],countParams,true, true) + " or " + doisParams;
+ params += this.createQuotedKeywordQuery(this.selectedFields[i].value, this.selectedFields[i].id, this.selectedFields[i].operatorId ,countParams,true, true) + " or " + doisParams;
} else {
- params += this.createQuotedKeywordQuery(this.selectedFields[i],countParams,true);
+ params += this.createQuotedKeywordQuery(this.selectedFields[i].value, this.selectedFields[i].id, this.selectedFields[i].operatorId,countParams,true);
}
+ //TODO deposit case
+ console.log(this.usedBy)
+ console.log(this.keywordFields)
+
+ if(this.usedBy == "deposit") {
+
+ if(this.keywordFields.length > 0) {
+ params += " or ("
+ }
+ for(let j=0; j< this.keywordFields.length ; j++) {
+ if(j > 0) {
+ params += " or "
+ }
+ params += this.createQuotedKeywordQuery(this.selectedFields[i].value, this.keywordFields[j].name, " or ", countParams,false);
+ // let field = this.keywordFields[i];
+ //keywordQuery += field.name+field.equalityOperator+StringUtils.URIEncode(keyword);
+ // params += field.name+field.equalityOperator+StringUtils.quote(StringUtils.URIEncode(keyword));
+ }
+ if(this.keywordFields.length > 0) {
+ params += " ) "
+ }
+ }
+
} else if (countParams == 0 && this.selectedFields[i].operatorId == "not" && this.fieldIdsMap[this.selectedFields[i].id].equalityOperator != "=") {
params += " " + this.selectedFields[i].id + " <> " + '"' + StringUtils.URIEncode(this.selectedFields[i].value) + '"' + " ";
} else if(this.fieldIdsMap[this.selectedFields[i].id].equalityOperator == "=") {
- params+=this.createQuotedKeywordQuery(this.selectedFields[i], countParams, false);
+ params+=this.createQuotedKeywordQuery(this.selectedFields[i].value, this.selectedFields[i].id, this.selectedFields[i].operatorId, countParams, false);
}else{
params += (countParams == 0 ? "" : this.selectedFields[i].operatorId + " ") + this.selectedFields[i].id + this.fieldIdsMap[this.selectedFields[i].id].equalityOperator + '"' + encodeURIComponent(this.selectedFields[i].value) + '"' + " ";
@@ -688,26 +714,26 @@ export class NewSearchPageComponent {
return params;
}
- createQuotedKeywordQuery(field:AdvancedField, countParams:number, isSearchAll:boolean, forceQuotted:boolean=false){
+ createQuotedKeywordQuery(fieldValue, fieldId, fieldOperator, countParams:number, isSearchAll:boolean, forceQuotted:boolean=false){
let params = "";
- let quotedParts = (field.value)?field.value.match(/(["'])(.*?)*?\1/g):[];
- params+= (countParams == 0 ? "" : field.operatorId) + " (";
+ let quotedParts = (fieldValue)?fieldValue.match(/(["'])(.*?)*?\1/g):[];
+ params+= (countParams == 0 ? "" : fieldOperator) + " (";
if(forceQuotted){
- return this.getQuotedQueryPart(field.id, '"'+ field.value+'"',isSearchAll);
+ return this.getQuotedQueryPart(fieldId, '"'+ fieldValue+'"',isSearchAll);
}
- if(quotedParts && quotedParts.length == 1 && quotedParts[0] == field.value ){
- params+=this.getQuotedQueryPart(field.id, field.value,isSearchAll);
+ if(quotedParts && quotedParts.length == 1 && quotedParts[0] == fieldValue ){
+ params+=this.getQuotedQueryPart(fieldId, fieldValue,isSearchAll);
}else if( quotedParts && quotedParts.length > 0){
for(let i=0; i< quotedParts.length; i++){
params+=(i>0)?" and ":"";
- params+=this.getQuotedQueryPart(field.id, quotedParts[i],isSearchAll);
+ params+=this.getQuotedQueryPart(fieldId, quotedParts[i],isSearchAll);
}
let startPoint = 0;
let endPoint = 0;
for(let i=0; i< quotedParts.length; i++){
- let index = field.value.indexOf(quotedParts[i]);
- endPoint = (i+1
0) {
- params += " and " + this.getNoQuotedQueryPart(field.id, field.value.substring(startPoint, endPoint), isSearchAll);
+ if(decodeURIComponent(fieldValue.substring(startPoint,endPoint)).split(" ").join("").length > 0) {
+ params += " and " + this.getNoQuotedQueryPart(fieldId, fieldValue.substring(startPoint, endPoint), isSearchAll);
}
// console.log("For "+i+" " +params+" SP "+ startPoint+" EP: "+endPoint);
- // startPoint = (i+1 0){
- params+=" and " + this.getNoQuotedQueryPart(field.id, field.value.substring(startPoint,field.value.length),isSearchAll);
+ if(startPoint !=fieldValue.length && decodeURIComponent(fieldValue.substring(startPoint,fieldValue.length)).split(" ").join("").length > 0){
+ params+=" and " + this.getNoQuotedQueryPart(fieldId, fieldValue.substring(startPoint,fieldValue.length),isSearchAll);
}
}else{
- params+=this.getNoQuotedQueryPart(field.id, field.value,isSearchAll);
+ params+=this.getNoQuotedQueryPart(fieldId, fieldValue,isSearchAll);
}
params += " )";
return params;
}
private getQuotedQueryPart(fieldId:string, value:string, isSearchAll:boolean){
- return " ("+(isSearchAll?"__all":fieldId)+" exact "+StringUtils.URIEncode(value)+")";
+ return (isSearchAll?"__all":fieldId)+" exact "+StringUtils.URIEncode(value);
}
private getNoQuotedQueryPart(fieldId:string, value:string, isSearchAll:boolean){
if(isSearchAll){
- return " (" + value + ")"
+ return value ;
}else{
- return " ("+fieldId+"="+ StringUtils.URIEncode(value)+")";
+ return fieldId+"="+ StringUtils.URIEncode(value);
}
}
@@ -751,6 +777,7 @@ export class NewSearchPageComponent {
getSearchAPIQueryForRefineFields(URLparams, firstLoad: boolean) {
var allFqs = "";
+ console.log(this.refineFields)
for (var i = 0; i < this.refineFields.length; i++) {
var filterId = this.refineFields[i];
@@ -1246,12 +1273,15 @@ export class NewSearchPageComponent {
* @param fieldIds
* @param selectedFields
* @param refineFields
+ * @param rangeFields
* @param fieldIdsMap
* @param customFilter
* @param params
+ * @param entityType
+ * @param quickFilter
*/
prepareSearchPage(fieldIds, selectedFields, refineFields, rangeFields, fieldIdsMap, customFilter, params, entityType, quickFilter=null){
- //console.log("prepareSearchPage");
+ console.log(this.refineFields);
this.entityType = entityType;
this.fieldIds = fieldIds;
this.selectedFields = selectedFields;
diff --git a/searchPages/searchUtils/searchPageTableView.component.html b/searchPages/searchUtils/searchPageTableView.component.html
index 3717f3b4..8ab142b7 100644
--- a/searchPages/searchUtils/searchPageTableView.component.html
+++ b/searchPages/searchUtils/searchPageTableView.component.html
@@ -51,7 +51,7 @@