Project

General

Profile

« Previous | Next » 

Revision 60974

[Library | Trunk]: Fix some errors on server from numbers component

View differences:

numbers.component.ts
7 7
import {NumberSize, NumberUtils} from '../../utils/number-utils.class';
8 8
import {BehaviorSubject, Observable, Subscription, zip} from 'rxjs';
9 9
import {RouterHelper} from "../../utils/routerHelper.class";
10
import {HelperFunctions} from "../../utils/HelperFunctions.class";
10 11

  
11 12
export interface Numbers {
12 13
  publicationsSize?: NumberSize;
......
38 39
              <a *ngIf="externalLink" [href]="links.get('project').link" target="_blank" class="uk-text-bold number">
39 40
                {{numbers.fundersSize.number|number}}<span class="number-size">{{numbers.fundersSize.size}}</span>
40 41
              </a>
41
              <a *ngIf="!externalLink" [routerLink]="links.get('project').link" [queryParams]="links.get('project').params" class="uk-text-bold number">
42
              <a *ngIf="!externalLink" [routerLink]="links.get('project').link"
43
                 [queryParams]="links.get('project').params" class="uk-text-bold number">
42 44
                {{numbers.fundersSize.number|number}}<span class="number-size">{{numbers.fundersSize.size}}</span>
43 45
              </a>
44 46
            </h3>
......
47 49
          <div *ngIf="numbers.datasourcesSize">
48 50
            <h3>
49 51
              <a *ngIf="externalLink" [href]="links.get('datasource').link" target="_blank" class="uk-text-bold number">
50
                {{numbers.datasourcesSize.number|number}}<span class="number-size">{{numbers.datasourcesSize.size}}</span>
52
                {{numbers.datasourcesSize.number|number}}<span
53
                  class="number-size">{{numbers.datasourcesSize.size}}</span>
51 54
              </a>
52
              <a *ngIf="!externalLink" [routerLink]="links.get('datasource').link" [queryParams]="links.get('datasource').params" class="uk-text-bold number">
53
                {{numbers.datasourcesSize.number|number}}<span class="number-size">{{numbers.datasourcesSize.size}}</span>
55
              <a *ngIf="!externalLink" [routerLink]="links.get('datasource').link"
56
                 [queryParams]="links.get('datasource').params" class="uk-text-bold number">
57
                {{numbers.datasourcesSize.number|number}}<span
58
                  class="number-size">{{numbers.datasourcesSize.size}}</span>
54 59
              </a>
55 60
            </h3>
56 61
            <span class="uk-text-uppercase uk-text-large">Content providers</span>
......
60 65
              <a *ngIf="externalLink" [href]="links.get('project').link" target="_blank" class="uk-text-bold number">
61 66
                {{numbers.projectsSize.number|number}}<span class="number-size">{{numbers.projectsSize.size}}</span>
62 67
              </a>
63
              <a *ngIf="!externalLink" [routerLink]="links.get('project').link" [queryParams]="links.get('project').params" class="uk-text-bold number">
68
              <a *ngIf="!externalLink" [routerLink]="links.get('project').link"
69
                 [queryParams]="links.get('project').params" class="uk-text-bold number">
64 70
                {{numbers.projectsSize.number|number}}<span class="number-size">{{numbers.projectsSize.size}}</span>
65 71
              </a>
66 72
            </h3>
......
75 81
              <div class="number-width uk-flex uk-flex-column">
76 82
                <a *ngIf="externalLink" [href]="links.get('publication').link" target="_blank"
77 83
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.publicationsSize.count|number}}</a>
78
                <a *ngIf="!externalLink" [routerLink]="links.get('publication').link" [queryParams]="links.get('publication').params"
84
                <a *ngIf="!externalLink" [routerLink]="links.get('publication').link"
85
                   [queryParams]="links.get('publication').params"
79 86
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.publicationsSize.count|number}}</a>
80 87
                <div class="uk-text-uppercase uk-flex uk-flex-middle uk-flex-center uk-flex-left@m">
81 88
                  <icon name="book" ratio="1.5" [flex]="true" class="uk-margin-right" [customClass]="colorClass"></icon>
......
87 94
              <div class="number-width uk-flex uk-flex-column">
88 95
                <a *ngIf="externalLink" [href]="links.get('dataset').link" target="_blank"
89 96
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.datasetsSize.count|number}}</a>
90
                <a *ngIf="!externalLink" [routerLink]="links.get('dataset').link" [queryParams]="links.get('dataset').params"
97
                <a *ngIf="!externalLink" [routerLink]="links.get('dataset').link"
98
                   [queryParams]="links.get('dataset').params"
91 99
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.datasetsSize.count|number}}</a>
92 100
                <div class="uk-text-uppercase uk-flex uk-flex-middle uk-flex-center uk-flex-left@m">
93
                  <icon name="database" ratio="1.5" [flex]="true" class="uk-margin-right" [customClass]="colorClass"></icon>
101
                  <icon name="database" ratio="1.5" [flex]="true" class="uk-margin-right"
102
                        [customClass]="colorClass"></icon>
94 103
                  <span>research data</span>
95 104
                </div>
96 105
              </div>
......
99 108
              <div class="number-width uk-flex uk-flex-column">
100 109
                <a *ngIf="externalLink" [href]="links.get('software').link" target="_blank"
101 110
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.softwareSize.count|number}}</a>
102
                <a *ngIf="!externalLink" [routerLink]="links.get('software').link" [queryParams]="links.get('software').params"
111
                <a *ngIf="!externalLink" [routerLink]="links.get('software').link"
112
                   [queryParams]="links.get('software').params"
103 113
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.softwareSize.count|number}}</a>
104 114
                <div class="uk-text-uppercase uk-flex uk-flex-middle uk-flex-center uk-flex-left@m">
105 115
                  <icon name="cog" ratio="1.5" [flex]="true" class="uk-margin-right" [customClass]="colorClass"></icon>
......
111 121
              <div class="number-width uk-flex uk-flex-column">
112 122
                <a *ngIf="externalLink" [href]="links.get('other').link" target="_blank"
113 123
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.otherSize.count|number}}</a>
114
                <a *ngIf="!externalLink" [routerLink]="links.get('other').link" [queryParams]="links.get('other').params"
124
                <a *ngIf="!externalLink" [routerLink]="links.get('other').link"
125
                   [queryParams]="links.get('other').params"
115 126
                   class="number uk-text-bold uk-margin-bottom uk-text-center uk-text-left@m">{{numbers.otherSize.count|number}}</a>
116 127
                <div class="uk-text-uppercase uk-flex uk-flex-middle uk-flex-center uk-flex-left@m">
117
                  <icon name="earth" ratio="1.5" [flex]="true" class="uk-margin-right" [customClass]="colorClass"></icon>
128
                  <icon name="earth" ratio="1.5" [flex]="true" class="uk-margin-right"
129
                        [customClass]="colorClass"></icon>
118 130
                  <span>other research products</span>
119 131
                </div>
120 132
              </div>
......
152 164
  constructor(private searchResearchResultsService: SearchResearchResultsService,
153 165
              private searchDataprovidersService: SearchDataprovidersService,
154 166
              private refineFieldResultsService: RefineFieldResultsService) {
167
    this.links = new Map<Entity, Link>();
168
    this.params = new Map<Entity, {}>();
169
    this.emptySubject = new BehaviorSubject<number>(0);
155 170
  }
156 171
  
157 172
  ngOnInit() {
158
    if(this.defaultInit) {
173
    if (this.defaultInit) {
159 174
      this.init();
160 175
    }
161 176
    this.setLinks();
......
168 183
    this.params.set('other', {type: 'other', qf: 'false'});
169 184
    this.params.set('project', {});
170 185
    this.params.set('datasource', {});
171
    if(this.refineValue) {
186
    if (this.refineValue) {
172 187
      this.params.forEach((value) => {
173 188
        value['fq'] = this.refineValue;
174 189
      });
......
177 192
  
178 193
  setLinks() {
179 194
    this.setParams();
180
    if(this.externalLink) {
181
      this.links.set('publication', {link: this.externalLink + properties.searchLinkToResults +
182
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('publication')), Object.values(this.params.get('publication')))});
183
      this.links.set('dataset', {link: this.externalLink + properties.searchLinkToResults +
184
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('dataset')), Object.values(this.params.get('dataset')))});
185
      this.links.set('software', {link: this.externalLink + properties.searchLinkToResults +
186
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('software')), Object.values(this.params.get('software')))});
187
      this.links.set('other', {link: this.externalLink + properties.searchLinkToResults +
188
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('other')), Object.values(this.params.get('other')))});
189
      this.links.set('project', {link: this.externalLink + properties.searchLinkToProjects +
190
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('project')), Object.values(this.params.get('project')))});
191
      this.links.set('datasource', {link: this.externalLink + properties.searchLinkToDataProviders +
192
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('datasource')), Object.values(this.params.get('datasource')))});
195
    if (this.externalLink) {
196
      this.links.set('publication', {
197
        link: this.externalLink + properties.searchLinkToResults +
198
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('publication')), HelperFunctions.getValues(this.params.get('publication')))
199
      });
200
      this.links.set('dataset', {
201
        link: this.externalLink + properties.searchLinkToResults +
202
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('dataset')), HelperFunctions.getValues(this.params.get('dataset')))
203
      });
204
      this.links.set('software', {
205
        link: this.externalLink + properties.searchLinkToResults +
206
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('software')), HelperFunctions.getValues(this.params.get('software')))
207
      });
208
      this.links.set('other', {
209
        link: this.externalLink + properties.searchLinkToResults +
210
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('other')), HelperFunctions.getValues(this.params.get('other')))
211
      });
212
      this.links.set('project', {
213
        link: this.externalLink + properties.searchLinkToProjects +
214
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('project')), HelperFunctions.getValues(this.params.get('project')))
215
      });
216
      this.links.set('datasource', {
217
        link: this.externalLink + properties.searchLinkToDataProviders +
218
          this.routerHelper.createQueryParamsString(Object.keys(this.params.get('datasource')), HelperFunctions.getValues(this.params.get('datasource')))
219
      });
193 220
    } else {
194 221
      this.links.set('publication', {
195 222
        link: properties.searchLinkToResults,
196
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('publication')), Object.values(this.params.get('publication')))
223
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('publication')), HelperFunctions.getValues(this.params.get('publication')))
197 224
      });
198 225
      this.links.set('dataset', {
199 226
        link: properties.searchLinkToResults,
200
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('dataset')), Object.values(this.params.get('dataset')))
227
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('dataset')), HelperFunctions.getValues(this.params.get('dataset')))
201 228
      });
202 229
      this.links.set('software', {
203 230
        link: properties.searchLinkToResults,
204
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('software')), Object.values(this.params.get('software')))
231
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('software')), HelperFunctions.getValues(this.params.get('software')))
205 232
      });
206 233
      this.links.set('other', {
207 234
        link: properties.searchLinkToResults,
208
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('other')), Object.values(this.params.get('other')))
235
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('other')), HelperFunctions.getValues(this.params.get('other')))
209 236
      });
210 237
      this.links.set('project', {
211 238
        link: properties.searchLinkToProjects,
212
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('project')), Object.values(this.params.get('project')))
239
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('project')), HelperFunctions.getValues(this.params.get('project')))
213 240
      });
214 241
      this.links.set('datasource', {
215 242
        link: properties.searchLinkToDataProviders,
216
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('datasource')), Object.values(this.params.get('datasource')))
243
        params: this.routerHelper.createQueryParams(Object.keys(this.params.get('datasource')), HelperFunctions.getValues(this.params.get('datasource')))
217 244
      });
218 245
    }
219 246
  }
......
221 248
  init(getDatasetsLinked = false, getSoftwareLinked = false, getPublications = true, getDatasets = true,
222 249
       getSoftware = true, getOther = true, getProjects = true, getDataProviders = true, refineValue: string = null) {
223 250
    this.loading = true;
224
    if(refineValue) {
251
    if (refineValue) {
225 252
      this.refineValue = refineValue;
226 253
    }
227
    let refineParams = (this.refineValue)?('&fq=' + this.refineValue):null;
254
    let refineParams = (this.refineValue) ? ('&fq=' + this.refineValue) : null;
228 255
    this.subs.push(zip(
229
      (getPublications)?this.searchResearchResultsService.numOfSearchResults('publication', '', this.properties, refineParams):this.empty,
230
      (getDatasets)?this.searchResearchResultsService.numOfSearchResults('dataset', '', this.properties, refineParams):this.empty,
231
      (getDatasetsLinked)?this.searchResearchResultsService.numOfSearchResultsLinkedToPub("dataset", this.properties):this.empty,
232
      (getSoftware)?this.searchResearchResultsService.numOfSearchResults('software', '', this.properties, refineParams):this.empty,
233
      (getSoftwareLinked)?this.searchResearchResultsService.numOfSearchResultsLinkedToPub("software", this.properties):this.empty,
234
      (getOther)?this.searchResearchResultsService.numOfSearchResults('other', '', this.properties, refineParams):this.empty,
235
      (getProjects)?this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['funder'], 'project', this.properties, refineParams):this.empty,
236
      (getDataProviders)?this.searchDataprovidersService.numOfSearchDataproviders('', this.properties, refineParams):this.empty
256
      (getPublications) ? this.searchResearchResultsService.numOfSearchResults('publication', '', this.properties, refineParams) : this.empty,
257
      (getDatasets) ? this.searchResearchResultsService.numOfSearchResults('dataset', '', this.properties, refineParams) : this.empty,
258
      (getDatasetsLinked) ? this.searchResearchResultsService.numOfSearchResultsLinkedToPub("dataset", this.properties) : this.empty,
259
      (getSoftware) ? this.searchResearchResultsService.numOfSearchResults('software', '', this.properties, refineParams) : this.empty,
260
      (getSoftwareLinked) ? this.searchResearchResultsService.numOfSearchResultsLinkedToPub("software", this.properties) : this.empty,
261
      (getOther) ? this.searchResearchResultsService.numOfSearchResults('other', '', this.properties, refineParams) : this.empty,
262
      (getProjects) ? this.refineFieldResultsService.getRefineFieldsResultsByEntityName(['funder'], 'project', this.properties, refineParams) : this.empty,
263
      (getDataProviders) ? this.searchDataprovidersService.numOfSearchDataproviders('', this.properties, refineParams) : this.empty
237 264
    ).subscribe((data: any[]) => {
238 265
      if (data[0] && data[0] > 0) {
239 266
        this.numbers.publicationsSize = NumberUtils.roundNumber(data[0]);

Also available in: Unified diff