Project

General

Profile

1
import {Component, Input} from '@angular/core';
2
import {SearchResult}     from '../../utils/entities/searchResult';
3
import { ErrorCodes} from '../../utils/properties/openaireProperties';
4

    
5
@Component({
6
    selector: 'search-result',
7
    template: `
8

    
9
     <ul class="uk-list uk-list-line  uk-margin">
10
      <div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No Results found</div>
11
      <div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
12
      <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
13

    
14
        <li *ngFor="let result of results" class="uk-animation-fade">
15
            <h4 [class] = result.title.accessMode [title] = result.title.accessMode >
16
                <a href="{{result['title'].url}}">
17
                    <p *ngIf="result['title'].name != undefined && result['title'].name != ''"
18
                        [innerHTML]="result['title'].name">
19
                    </p>
20
                    <p *ngIf="result['title'].name == undefined || result['title'].name == ''">
21
                        {{result['title'].url}}
22
                    </p>
23
                </a>
24
            </h4>
25

    
26
            <div>
27
                <span *ngIf="result['authors'] != undefined">
28
                    <span *ngFor="let author of result['authors'].slice(0,15)">
29
                        <a href="{{author['url']}}">
30
                            {{author['name']}};
31
                        </a>
32
                    </span>
33
                    <span *ngIf="result['authors'].length > 15">...</span>
34
                </span>
35
                <span *ngIf="result.year != undefined && result.year != ''">
36
                    ({{result.year}})
37
                </span>
38
            </div>
39

    
40
            <div *ngIf="result.publisher != undefined && result.publisher != ''">Publisher: {{result.publisher}}</div>
41

    
42
            <div *ngIf="result.country != undefined && result.country != ''">Country: {{result.country}}</div>
43

    
44
            <div *ngIf="result['projects'] != undefined">
45
                <span> Projects: </span>
46
                <span *ngFor="let project of result['projects'].slice(0,15) let i=index">
47
                    <a *ngIf="project.url != undefined" href="{{project.url}}">
48
                            {{project['funderShortname']?project['funderShortname']:project['funderName']}}
49
                            | {{ project['acronym']?project['acronym']:project['title']}} ({{project.code}})
50
                    </a>
51
                    <p *ngIf="project.url == undefined">
52
                        {{project['funderShortname']?project['funderShortname']:project['funderName']}}
53
                        | {{ project['acronym']?project['acronym']:project['title']}} ({{project.code}})
54
                    </p>
55
                    <span *ngIf="i < result['projects'].length-1"> ,</span>
56
                </span>
57
                <span *ngIf="result['projects'].length > 15">...</span>
58
            </div>
59

    
60
            <blockquote *ngIf="result.description != undefined && result.description != ''">
61
                <div class="text-justify">
62
                    {{result.description}}
63
                </div>
64
            </blockquote>
65

    
66
            <mark *ngIf="result.embargoEndDate != undefined && result.embargoEndDate != ''">Embargo End Date: {{result.embargoEndDate}}</mark>
67

    
68

    
69
            <div *ngIf="result['funders'] != undefined">
70
              <span> Funders: </span>
71
              <span *ngFor="let funder of result['funders'] let i=index">
72

    
73
                  <span *ngIf="funder.funderShortname">
74
                    {{funder.funderShortname}}
75
                  </span>
76
                <span *ngIf="i < result['funders'].length-1"> ,</span>
77
              </span>
78
            </div>
79
            <span *ngIf="result.startYear && result.endYear"> ({{result.startYear}} - {{result.endYear}})</span>
80
            <div *ngIf="result['organizations'] != undefined && result['organizations'].length > 0">
81
                <span> Organizations: </span>
82
                <span *ngFor="let organization of result['organizations'] let i=index">
83
                    <a *ngIf="organization.url != undefined" href="{{organization.url}}">
84
                            {{organization.name}}
85
                    </a>
86
                    <span *ngIf="organization.url == undefined">
87
                        {{organization.name}}
88
                    </span>
89
                    <span *ngIf="i < result['organizations'].length-1"> ,</span>
90
                </span>
91
            </div>
92

    
93
            <div *ngIf="result['type'] != undefined && result['type'] != ''">Type: {{result['type']}}</div>
94
            <div *ngIf="result['websiteURL'] != undefined && result['websiteURL'] != ''">
95
                <span>Website URL: </span>
96
                <span>
97
                    <a href="{{result['websiteURL']}}" target="_blank" class="uk-icon-external-link">
98
                        {{result['websiteURL']}}
99
                    </a>
100
                </span>
101
            </div>
102
            <div *ngIf="result['OAIPMHURL'] != undefined && result['OAIPMHURL'] != ''">
103
                <span>OAI-PMH URL: </span>
104
                <span>
105
                    <a href="{{result['OAIPMHURL']}}" target="_blank" class="uk-icon-external-link">
106
                        {{result['OAIPMHURL']}}
107
                    </a>
108
                </span>
109
            </div>
110

    
111
            <div *ngIf="result['compatibility'] != undefined && result['compatibility'] != ''">
112
                Compatibility: {{result.compatibility}}
113
            </div>
114

    
115
            <div *ngIf="result['countries'] != undefined && result['countries'].length > 0">
116
                Countries: {{result.countries}}
117
            </div>
118

    
119
        </li>
120
    </ul>
121
    `
122
})
123

    
124
export class SearchResultComponent {
125
    @Input() page: number;
126
    @Input() totalResults: number;
127
    @Input() results: SearchResult[];
128
    @Input() status: number;
129
    errorCodes:ErrorCodes = new ErrorCodes();
130

    
131
    public errorMessage: string = "No results found";
132

    
133
  constructor () {
134

    
135
  }
136

    
137
  ngOnInit() {
138

    
139
    console.info("Heeey!!");
140
   }
141
}
(14-14/16)