Project

General

Profile

1 43785 argiro.kok
import {Component, Input} from '@angular/core';
2
import {Observable}       from 'rxjs/Observable';
3 44406 konstantin
import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties';
4 45404 konstantin
import { Router } from '@angular/router';
5 44084 konstantin
import { ActivatedRoute } from '@angular/router';
6 45683 argiro.kok
import { FetchDataproviders } from '../utils/fetchEntitiesClasses/fetchDataproviders.class';
7 44084 konstantin
import { SearchDataprovidersService } from '../services/searchDataproviders.service';
8
9 45686 argiro.kok
import {OrganizationService} from '../services/organization.service';
10 44274 konstantin
11 43785 argiro.kok
@Component({
12 44406 konstantin
    selector: 'deposit-result',
13 43785 argiro.kok
    template: `
14 45402 konstantin
        <div class="container uk-margin-top">
15 43785 argiro.kok
            <div class="page-header" >
16 44406 konstantin
                <h2>Deposit {{requestFor}}</h2>
17 43785 argiro.kok
            </div>
18
19 45683 argiro.kok
            <div *ngIf="status == errorCodes.LOADING || (status == errorCodes.LOADING && fetchDataproviders.searchUtils.status == errorCodes.LOADING)"
20 45484 konstantin
                  class="uk-alert uk-alert-primary" role="alert">
21 44614 konstantin
                    Loading...
22
            </div>
23
24 45683 argiro.kok
            <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
25 44084 konstantin
                <h2 *ngIf="organization != undefined">
26 43785 argiro.kok
                    <span>Data providers for institution: </span>
27 45404 konstantin
                    <a *ngIf="organization['url']!=''" href="{{organization.url}}" target="_blank">
28 45482 argiro.kok
                        <span>{{organization['name']}} (<i class="uk-icon-external-link"></i>)</span>
29 43926 konstantin
                    </a>
30
                    <span *ngIf="organization['url']==''">{{organization['name']}}</span>
31 43785 argiro.kok
                </h2>
32 44274 konstantin
33 43785 argiro.kok
            </div>
34
35 45683 argiro.kok
            <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
36 44893 konstantin
                <p>Please use the information/contacts shown below to deposit your {{requestFor}}.</p>
37 44084 konstantin
                <!--showDataProviders [dataProviders]=dataProviders></showDataProviders-->
38 45683 argiro.kok
                <div class = "uk-text-right" *ngIf = "fetchDataproviders.searchUtils.totalResults > 10" ><a [href] = "linkToSearchDataproviders" >View all {{fetchDataproviders.searchUtils.totalResults}} results</a></div>
39
                <!--search-result [(results)]="fetchDataproviders.results" [(status)]= "fetchDataproviders.searchUtils.status"></search-result-->
40 43785 argiro.kok
            </div>
41
42 45683 argiro.kok
            <div *ngIf="(fetchDataproviders.searchUtils.totalResults == 0 && status == errorCodes.DONE)
43 44732 konstantin
                        || status == errorCodes.NONE || status == errorCodes.ERROR" class = "alert alert-warning">
44 44274 konstantin
                <div *ngIf="organization != undefined">
45
                    No data providers found
46
                    <span *ngIf="organization != undefined">
47
                        for institution:
48
                        <a *ngIf="organization['url']!=''" href="{{organization.url}}">
49
                            <span>{{organization['name']}}</span>
50
                        </a>
51
                        <span *ngIf="organization['url']==''">{{organization['name']}}</span>
52
                    </span>
53
                    .
54
                </div>
55 44732 konstantin
                <div *ngIf="organization == undefined && organizationId != ''">
56 44274 konstantin
                    No organization with ID: {{organizationId}} found.
57
                </div>
58 44732 konstantin
                <div *ngIf="organizationId == ''">
59
                    No ID for organization.
60
                </div>
61 44274 konstantin
62 44893 konstantin
                You can still deposit your {{requestFor}} in
63 45482 argiro.kok
                <a href="{{zenodo}}" target="_blank">OpenAIRE's Zenodo catch-all repository (<i class="uk-icon-external-link"></i>)</a>
64 43785 argiro.kok
                hosted by CERN.
65
            </div>
66 45404 konstantin
67
            <button class="uk-button"  type="submit" (click)="goToDeposit()">
68
                <i class="uk-icon-arrow-circle-left"></i> Back
69
            </button>
70 43785 argiro.kok
        </div>
71
    `
72
})
73
74
export class DepositResultComponent {
75 44826 argiro.kok
    public organization: {"name": string, "url": string};
76
    public organizationId: string = "";
77 44084 konstantin
78 44826 argiro.kok
    public status: number;
79
    public errorCodes:ErrorCodes = new ErrorCodes();
80 44614 konstantin
81 44274 konstantin
    sub: any;
82 44084 konstantin
    subDataproviders: any;
83
84 45683 argiro.kok
    public fetchDataproviders : FetchDataproviders;
85 44826 argiro.kok
    public linkToSearchDataproviders = "";
86
    public zenodo: string;
87 44406 konstantin
    @Input() compatibility: string = '';
88
    @Input() requestFor: string = "Publications";
89 43785 argiro.kok
90 45404 konstantin
    constructor (private _router: Router,
91
        private  route: ActivatedRoute,
92 44274 konstantin
        private _searchDataprovidersService: SearchDataprovidersService,
93
        private _organizationService: OrganizationService) {
94 44084 konstantin
            console.info("depositResult constructor");
95
96
            this.zenodo = OpenaireProperties.getZenodoURL();
97 45683 argiro.kok
            this.fetchDataproviders = new FetchDataproviders(this._searchDataprovidersService);
98 44614 konstantin
99
            this.status = this.errorCodes.LOADING;
100
            console.info("loading");
101 43785 argiro.kok
    }
102 44084 konstantin
103
    ngOnInit() {
104
        console.info('depositResult init');
105
106 44274 konstantin
        this.sub =  this.route.queryParams.subscribe(params => {
107
            this.organizationId = params['organizationId'];
108
            console.info("Id is :"+this.organizationId);
109
            if(this.organizationId){
110
                this.getOrganizationInfo();
111
            }
112 44084 konstantin
        });
113
    }
114
115 44732 konstantin
    ngDoCheck() {
116
        if(this.organizationId == "" || this.organizationId == undefined) {
117
            this.organizationId = "";
118
            this.status = this.errorCodes.ERROR;
119
        }
120
    }
121
122 44084 konstantin
    ngOnDestroy() {
123 44274 konstantin
      this.sub.unsubscribe();
124
      if(this.subDataproviders != undefined) {
125
          this.subDataproviders.unsubscribe();
126
      }
127 44084 konstantin
    }
128
129
    private searchDataproviders() {
130 44338 konstantin
        // if(this.organization != undefined) {
131 45683 argiro.kok
        //     this.fetchDataproviders.getResults(this.organization.name, false, 1, 10);
132 44338 konstantin
        // } else if(this.organizationId != undefined) {
133 45683 argiro.kok
            this.fetchDataproviders.getResultsForDeposit( this.organizationId,this.requestFor, 1, 10);
134 44338 konstantin
        //}
135 44084 konstantin
        this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();
136
    }
137 44274 konstantin
138
    private getOrganizationInfo ()  {
139
        console.info("inside getOrganizationInfo of component");
140
141
        this._organizationService.getOrganizationInfo(this.organizationId).subscribe(
142
            data => {
143
                this.organization = data.title;
144 44614 konstantin
                this.status = this.errorCodes.DONE;
145 44274 konstantin
                this.subDataproviders =  this.route.queryParams.subscribe(params => {
146
                      this.searchDataproviders();
147
                });
148
            },
149
            err => {
150 44907 argiro.kok
                //console.log(err)
151 44614 konstantin
152
                if(err.status == '404') {
153
                    this.status = this.errorCodes.NONE;
154
                    console.info("none");
155
                } else {
156
                    this.status = this.errorCodes.ERROR;
157
                    console.info("error");
158
                }
159 44274 konstantin
            }
160
        );
161
    }
162 45404 konstantin
163
    goToDeposit() {
164
        if(this.requestFor == "Publications") {
165
            this._router.navigate( ['deposit-publications'] );
166
        } else if(this.requestFor == "Research Data") {
167
            this._router.navigate( ['deposit-datasets'] );
168
        }
169
    }
170 43785 argiro.kok
}