Project

General

Profile

1
import {Component} from '@angular/core';
2
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
3
import {ActivatedRoute, Router} from "@angular/router";
4
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";
5
import {Subscriber} from "rxjs";
6
import {properties} from "../../../../environments/environment";
7
import {ConfigurationService} from "../../../openaireLibrary/utils/configuration/configuration.service";
8

    
9
@Component({
10
  selector: 'monitor-advanced-search-projects',
11
  template: `
12
    <div id="page_content">
13
      <search-projects *ngIf="initialized" [simpleView]="false"
14
                       [customFilter]=customFilter [hasPrefix]="false"
15
                       [includeOnlyResultsAndFilter]="false" [showSwitchSearchLink]="showSwitchSearchLink"
16
                       [openaireLink]="'https://'+(properties.environment != 'production'?'beta.':'')+'explore.openaire.eu/search/simple/projects'"
17
                       [piwikSiteId]="piwikSiteId"
18
      >
19
      </search-projects>
20
    </div>
21
  `
22
  
23
})
24
export class MonitorAdvancedSearchProjectsComponent {
25
  customFilter: SearchCustomFilter = null;
26
  initialized: boolean = false;
27
  showSwitchSearchLink:boolean = false;
28
  properties;
29
  piwikSiteId;
30
  constructor(private route: ActivatedRoute,
31
              private router: Router,
32
              private stakeholderService: StakeholderService,  private configurationService: ConfigurationService) {
33
  }
34
  subscriptions = [];
35
  ngOnDestroy() {
36
    this.subscriptions.forEach(subscription => {
37
      if (subscription instanceof Subscriber) {
38
        subscription.unsubscribe();
39
      }
40
    });
41
  }
42

    
43
  ngOnInit() {
44
    this.properties = properties;
45
    this.subscriptions.push(this.route.params.subscribe(params => {
46
      if (params['stakeholder']) {
47
        this.subscriptions.push(this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
48
          if (stakeholder) {
49
            if (stakeholder.type === "funder") {
50
              let value = stakeholder.index_id+"||"+stakeholder.index_name+"||"+stakeholder.index_shortName;
51
              this.customFilter = new SearchCustomFilter("Funder", "funder", value, "");
52
              this.showSwitchSearchLink = true;
53
            } else if (stakeholder.type === "organization") {
54
              let value = stakeholder.index_id;
55
              this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, "");
56
              this.showSwitchSearchLink = true;
57
            } else if (stakeholder.type === "ri") {
58
              let value =  stakeholder.index_id+"||"+stakeholder.index_name;
59
              this.customFilter = new SearchCustomFilter("Community", "community", value,  stakeholder.name);
60
            }
61
            this.subscriptions.push(this.configurationService.communityInformationState.subscribe(portal => {
62
              if (portal) {
63
                this.piwikSiteId = portal.piwik;
64
              }
65
            }));
66
            this.initialized = true;
67
          }
68
        }));
69
      }
70
    }));
71
  }
72

    
73
}
(8-8/12)