import {Component} from '@angular/core';
import {SearchCustomFilter} from "../../../openaireLibrary/searchPages/searchUtils/searchUtils.class";
import {ActivatedRoute, Router} from "@angular/router";
import {StakeholderService} from "../../../openaireLibrary/monitor/services/stakeholder.service";

@Component({
  selector: 'monitor-search-dataproviders',
  template: `
    <div id="page_content">
      <search-dataproviders *ngIf="initialized"
                            [customFilter]=customFilter [hasPrefix]="false"
                            [includeOnlyResultsAndFilter]="false" [showSwitchSearchLink]="showSwitchSearchLink">
      </search-dataproviders>
    </div>
  `
})
export class MonitorSearchDataprovidersComponent {
  customFilter: SearchCustomFilter = null;
  initialized: boolean = false;
  showSwitchSearchLink:boolean = false;
  constructor(private route: ActivatedRoute,
              private router: Router,
              private stakeholderService: StakeholderService) {
  }
  
  ngOnInit() {
    this.route.params.subscribe(params => {
      if (params['stakeholder']) {
        this.stakeholderService.getStakeholderAsObservable().subscribe(stakeholder => {
          if (stakeholder) {
            if (stakeholder.type === "funder") {
              this.navigateToError();
            } else if (stakeholder.type === "organization") {
              let value = stakeholder.index_id;
              this.customFilter = new SearchCustomFilter("Organization", "relorganizationid", value, "");
              this.customFilter.isHiddenFilter = false;
              this.showSwitchSearchLink = true;
            } else if (stakeholder.type === "ri") {
              this.navigateToError();
            }
            this.initialized = true;
          }
        });
      }
    });
  }
  
  navigateToError() {
    this.router.navigate(['/error'], {queryParams: {'page': this.router.url}});
  }
}
