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