Project

General

Profile

« Previous | Next » 

Revision 53937

1. Add 'sorting' option by 'relevance' or 'date' in advanced search pages for results (publications, datasets, software, orps).

View differences:

advancedSearchSoftware.component.ts
24 24
                 [disableForms]="disableForms"
25 25
                 [loadPaging]="loadPaging"
26 26
                 [oldTotalResults]="oldTotalResults" [(connectCommunityId)]=connectCommunityId [piwikSiteId]=piwikSiteId
27
                 searchFormClass="softwareSearchForm">
27
                 searchFormClass="softwareSearchForm"
28
                 [(sort)]=sort >
28 29
    </advanced-search-page>
29 30

  
30 31
    `
......
52 53
  public oldTotalResults: number = 0;
53 54
  public pagingLimit: number = 0;
54 55
  public isPiwikEnabled;
56
  public sort: boolean = true;
55 57
  properties:EnvProperties;
56 58

  
57 59
  constructor (private route: ActivatedRoute, private _searchSoftwareService: SearchSoftwareService ) {
......
86 88
      if(this.searchUtils.size != 5 && this.searchUtils.size != 10 && this.searchUtils.size != 20 && this.searchUtils.size != 50) {
87 89
        this.searchUtils.size = 10;
88 90
      }
89
      
91
      this.searchUtils.sortBy = (params['sortBy'])?params['sortBy']:'';
92
      if(this.searchUtils.sortBy && this.searchUtils.sortBy != "resultdateofacceptance,descending") {
93
        this.searchUtils.sortBy = "";
94
      }
95

  
90 96
      this.searchPage.fieldIds = this.fieldIds;
91 97
      this.selectedFields =[];
92 98
      this.searchPage.selectedFields = this.selectedFields;
93 99
      this.searchPage.fieldIdsMap = this.fieldIdsMap;
94 100
      this.searchPage.connectCommunityId = this.connectCommunityId;
95 101
      this.searchPage.getSelectedFiltersFromUrl(params);
96
      this.getResults(this.searchPage.createQueryParameters(),  this.searchUtils.page, this.searchUtils.size);
102
      this.getResults(this.searchPage.createQueryParameters(),  this.searchUtils.page, this.searchUtils.size, this.searchUtils.sortBy);
97 103

  
98 104
    });
99 105
  }
......
101 107
    this.sub.unsubscribe();
102 108
  }
103 109
  sub: any;
104
  public getResults(parameters:string, page: number, size: number){
110
  public getResults(parameters:string, page: number, size: number, sortBy: string){
105 111
    if(page >this.pagingLimit) {
106 112
      size=0;
107 113
    }
......
120 126
      this.searchUtils.totalResults = 0;
121 127

  
122 128
      console.info("Advanced Search for Software: Execute search query "+parameters);
123
       this._searchSoftwareService.advancedSearchSoftware(parameters, page, size, this.properties).subscribe(
129
       this._searchSoftwareService.advancedSearchSoftware(parameters, page, size, sortBy, this.properties).subscribe(
124 130
          data => {
125 131
              this.searchUtils.totalResults = data[0];
126 132
              console.info("search Software total="+this.searchUtils.totalResults);
......
177 183
    this.loadPaging = true;
178 184

  
179 185
    var parameters = $event.value;
180
    this.getResults(parameters, this.searchUtils.page,this.searchUtils.size);
186
    this.getResults(parameters, this.searchUtils.page,this.searchUtils.size, this.searchUtils.sortBy);
181 187
    console.info("queryChanged: Execute search query "+parameters);
182 188

  
183 189
  }

Also available in: Unified diff