1
|
<!-- Before title -->
|
2
|
<div uk-grid>
|
3
|
<div [class.uk-width-1-1]="!result.relation" [class.uk-width-1-2]="result.relation"
|
4
|
[class.uk-width-3-4@s]="result.relation">
|
5
|
<div class="uk-text-small">
|
6
|
<span class="uk-text-capitalize">
|
7
|
{{getTypeName(result.resultType)}}
|
8
|
</span>
|
9
|
<span
|
10
|
*ngIf="properties.environment !== 'production' && result.types && removeDuplicates(result.types).length > 0">
|
11
|
{{' . ' + removeDuplicates(result.types).join(' . ')}}
|
12
|
</span>
|
13
|
<span *ngIf="properties.environment === 'production' && result.types &&
|
14
|
removeUnknown(removeDuplicates(result.types)).length > 0">
|
15
|
{{' . ' + removeDuplicates(removeDuplicates(result.types)).join(' . ')}}
|
16
|
</span>
|
17
|
<span *ngIf="result.year">{{' . ' + result.year.toString()}}</span>
|
18
|
<span *ngIf="result.startYear && result.endYear"> . {{result.startYear}} - {{result.endYear}}</span>
|
19
|
<span *ngIf="result.embargoEndDate && result.embargoEndDate != ''">
|
20
|
. Embargo End Date: {{result.embargoEndDate | date: 'dd MMM yyyy'}}
|
21
|
</span>
|
22
|
</div>
|
23
|
<!-- Title -->
|
24
|
<div class="uk-margin-small-bottom">
|
25
|
<div class="uk-h5 uk-margin-remove">
|
26
|
<a *ngIf="result.id" (click)="onTitleClick()" [queryParams]="routerHelper.createQueryParam(urlParam, result.id)"
|
27
|
routerLink="/search/{{result.resultType}}" class="portal-link">
|
28
|
<div *ngIf="(result.title) || result.acronym">
|
29
|
<span *ngIf="result.acronym">
|
30
|
{{result.acronym}}
|
31
|
</span>
|
32
|
<span *ngIf="result.acronym && (result.title)"> (</span>
|
33
|
<span *ngIf="result.title" [innerHTML]="result.title"></span>
|
34
|
<span *ngIf="result.acronym && result.title">)</span>
|
35
|
</div>
|
36
|
<div *ngIf="!result.title && !result.acronym">
|
37
|
[no title available]
|
38
|
</div>
|
39
|
</a>
|
40
|
<div *ngIf="!result.id">
|
41
|
<div *ngIf="(result.title) || result.acronym">
|
42
|
<span *ngIf="result.acronym">
|
43
|
{{result.acronym}}
|
44
|
</span>
|
45
|
<span *ngIf="result.acronym && (result.title)"> (</span>
|
46
|
<span *ngIf="result.title" [innerHTML]="result.title"></span>
|
47
|
<span *ngIf="result.acronym && result.title">)</span>
|
48
|
</div>
|
49
|
<div *ngIf="!result.title && !result.acronym">
|
50
|
[no title available]
|
51
|
</div>
|
52
|
</div>
|
53
|
</div>
|
54
|
<!-- Download from-->
|
55
|
<div *ngIf="result.hostedBy_collectedFrom && result.hostedBy_collectedFrom.length > 0"
|
56
|
class="uk-margin-small-bottom download-from">
|
57
|
<div *ngFor="let from of result.hostedBy_collectedFrom">
|
58
|
<span class="uk-margin-right uk-display-inline-block">
|
59
|
<span class="uk-text-muted">Download from: </span>
|
60
|
<a *ngIf="from.downloadUrl && from.downloadUrl.length === 1"
|
61
|
[href]="from.downloadUrl[0]" target="_blank" class="title">
|
62
|
{{from.downloadName}}
|
63
|
<span class="custom-external"></span>
|
64
|
</a>
|
65
|
<span *ngIf="!from.downloadUrl || from.downloadUrl.length === 0" class="title">
|
66
|
{{from.downloadName}}
|
67
|
</span>
|
68
|
</span>
|
69
|
<span class="provider uk-display-inline-block">
|
70
|
<span class="uk-text-muted">Provider: </span>
|
71
|
<a *ngIf="from.collectedId" routerLink="/search/dataprovider" [queryParams]="{datasourceId: from.collectedId}"
|
72
|
[href]="from.downloadUrl[0]" target="_blank">
|
73
|
{{from.collectedName}}
|
74
|
</a>
|
75
|
<span *ngIf="!from.collectedId">
|
76
|
{{from.collectedName}}
|
77
|
</span>
|
78
|
</span>
|
79
|
</div>
|
80
|
</div>
|
81
|
<!-- Authors -->
|
82
|
<div *ngIf="result.authors">
|
83
|
<showAuthors [authors]="result.authors" [authorsLimit]=10 [showAll]=false></showAuthors>
|
84
|
</div>
|
85
|
</div>
|
86
|
<!-- Funder -->
|
87
|
<div *ngIf="result.funderShortname || result.code" class="uk-margin-small-bottom uk-text-small">
|
88
|
<span *ngIf="result.funderShortname">
|
89
|
<span class="uk-text-muted">Funder: </span>
|
90
|
{{result.funderShortname}}
|
91
|
</span>
|
92
|
<span *ngIf="result.code" [class.uk-margin-left]="result.funderShortname">
|
93
|
<span class="uk-text-muted">Project Code: </span>
|
94
|
{{result.code}}
|
95
|
</span>
|
96
|
</div>
|
97
|
<!-- Funder Budget -->
|
98
|
<div *ngIf="result.budget || result.contribution" class="uk-margin-small-bottom uk-text-small">
|
99
|
<span *ngIf="result.budget">
|
100
|
<span class="uk-text-muted">Overall Budget: </span>
|
101
|
{{result.budget | number}}
|
102
|
<span *ngIf="result.currency">{{result.currency}}</span>
|
103
|
</span>
|
104
|
<span *ngIf="result.contribution" [class.uk-margin-left]="result.budget">
|
105
|
<span class="uk-text-muted">Funder Contribution: </span>
|
106
|
{{result.contribution | number}}
|
107
|
<span *ngIf="result.currency">{{result.currency}}</span>
|
108
|
</span>
|
109
|
</div>
|
110
|
<!-- Labels -->
|
111
|
<div class="uk-margin-small-bottom">
|
112
|
<span *ngIf="properties.environment !== 'production' && result.accessMode"
|
113
|
class="uk-label custom-label" [ngClass]="'label-' + accessClass(result.accessMode)"
|
114
|
title="Access Mode">
|
115
|
{{result.accessMode}}
|
116
|
</span>{{' '}}
|
117
|
<span
|
118
|
*ngIf="properties.environment === 'production' && result.accessMode && result.accessMode.toLowerCase() !== 'not available'"
|
119
|
class="uk-label custom-label" [ngClass]="'label-' + accessClass(result.accessMode)"
|
120
|
title="Access Mode">
|
121
|
{{result.accessMode}}
|
122
|
</span>{{' '}}
|
123
|
<span *ngIf="result.openAccessMandatePublications && (!result.openAccessMandateDatasets)"
|
124
|
class="uk-label custom-label label-open"
|
125
|
title="Open Access mandate for Publications">
|
126
|
Open Access mandate for Publications
|
127
|
</span>{{' '}}
|
128
|
<span
|
129
|
*ngIf="result.openAccessMandateDatasets != undefined && result.openAccessMandateDatasets && (result.openAccessMandatePublications == undefined || !result.openAccessMandatePublications)"
|
130
|
class="uk-label custom-label label-open " title="Open Access mandate for Research Data">
|
131
|
Open Access mandate for Research Data
|
132
|
</span>{{' '}}
|
133
|
<span
|
134
|
*ngIf="result.openAccessMandatePublications != undefined && result.openAccessMandatePublications && result.openAccessMandateDatasets != undefined && result.openAccessMandateDatasets"
|
135
|
class="uk-label custom-label label-open "
|
136
|
title="Open Access mandate for Publications and Research Data">
|
137
|
Open Access mandate for Publications and Research Data
|
138
|
</span>{{' '}}
|
139
|
<span *ngIf="properties.environment !== 'production' && result.languages && result.languages.length > 0">
|
140
|
<span *ngFor="let language of result.languages"
|
141
|
class="uk-label custom-label label-language " title="Language">
|
142
|
{{language}}
|
143
|
</span>{{' '}}
|
144
|
</span>
|
145
|
<span
|
146
|
*ngIf="properties.environment === 'production' && result.languages && removeUnknown(result.languages).length > 0">
|
147
|
<span *ngFor="let language of removeUnknown(result.languages)"
|
148
|
class="uk-label custom-label label-language " title="Language">
|
149
|
{{language}}
|
150
|
</span>{{' '}}
|
151
|
</span>
|
152
|
<span *ngIf="result.programmingLanguages && result.programmingLanguages.length > 0">
|
153
|
<span *ngFor="let programmingLanguage of result.programmingLanguages"
|
154
|
class="uk-label custom-label label-language" title="Programming Language">
|
155
|
{{programmingLanguage}}
|
156
|
</span>{{" "}}
|
157
|
</span>
|
158
|
<span *ngIf="result.sc39" class="uk-label custom-label label-sc39" title="Special Clause 39">
|
159
|
Special Clause 39
|
160
|
</span>{{' '}}
|
161
|
<span *ngIf="result.compatibility && result.compatibility != ''"
|
162
|
class="uk-label custom-label label-compatibility" title="Compatibility">
|
163
|
{{result.compatibility}}
|
164
|
</span>{{' '}}
|
165
|
</div>
|
166
|
<!-- Identifiers -->
|
167
|
<div *ngIf="result.identifiers && result.identifiers.size > 0">
|
168
|
<showIdentifiers [identifiers]="result.identifiers"></showIdentifiers>
|
169
|
</div>
|
170
|
<!-- Publisher -->
|
171
|
<div *ngIf="result.publisher && result.publisher != ''" class="uk-text-small uk-margin-small-bottom">
|
172
|
<span class="uk-text-muted">Publisher: </span>
|
173
|
{{result.publisher}}
|
174
|
</div>
|
175
|
<!-- Countries -->
|
176
|
<div *ngIf="result.countries && result.countries.length > 0"
|
177
|
class="uk-text-small uk-margin-small-bottom">
|
178
|
<span class="uk-text-muted">{{(result.countries.length == 1) ? 'Country' : 'Countries'}}: </span>
|
179
|
<span *ngFor="let country of result.countries.slice(0,10) let i = index">
|
180
|
{{country}}{{(i < (result.countries.slice(0, 10).length - 1)) ? ", " : ""}}
|
181
|
{{(i == result.countries.slice(0, 10).length - 1 && result.countries.length > 10) ? "..." : ""}}
|
182
|
</span>
|
183
|
</div>
|
184
|
<!-- Projects -->
|
185
|
<div *ngIf="result.projects && result.projects.length > 0" class="uk-text-small uk-margin-small-bottom">
|
186
|
<span class="uk-text-muted"> Project: </span>
|
187
|
<span *ngFor="let project of result.projects.slice(0,10) let i=index">
|
188
|
<span>
|
189
|
{{project.funderShortname ? project.funderShortname : project.funderName}}
|
190
|
</span>
|
191
|
<span *ngIf="project.acronym || project.title">
|
192
|
| {{ project.acronym ? project.acronym : (project.title.length > 25 ?
|
193
|
project.title.substring(0, 25) + '...' : project.title)}}
|
194
|
</span>
|
195
|
<span *ngIf="project.code"> ({{project.code}})</span>
|
196
|
<span *ngIf="i < result.projects.length-1">,</span>
|
197
|
</span>
|
198
|
<span *ngIf="result.projects.length > 10">...</span>
|
199
|
</div>
|
200
|
<!-- Organizations -->
|
201
|
<div *ngIf="showOrganizations && result.organizations && result.organizations.length > 0"
|
202
|
class="uk-text-small uk-margin-small-bottom">
|
203
|
<span class="uk-text-muted">Organization: </span>
|
204
|
<span *ngFor="let organization of result.organizations.slice(0,10) let i=index">
|
205
|
<span>{{organization.name}}</span>
|
206
|
<span *ngIf="(i < result.organizations.length-1) && (i < 9)">,</span>
|
207
|
</span>
|
208
|
<span *ngIf="result.organizations.length > 10">...</span>
|
209
|
</div>
|
210
|
<!-- Website URL -->
|
211
|
<div *ngIf="result.websiteURL && result.websiteURL != ''" class="uk-text-small uk-margin-small-bottom">
|
212
|
<span class="uk-text-muted">Website URL: </span>
|
213
|
<span>
|
214
|
<a href="{{result.websiteURL}}" target="_blank" class="custom-external custom-icon">
|
215
|
{{result.websiteURL}}
|
216
|
</a>
|
217
|
</span>
|
218
|
</div>
|
219
|
<!-- OAI-PMH URL-->
|
220
|
<div *ngIf="result.OAIPMHURL && result.OAIPMHURL != ''" class="uk-text-small uk-margin-small-bottom">
|
221
|
<span class="uk-text-muted">OAI-PMH URL: </span>
|
222
|
<span>
|
223
|
<a href="{{result.OAIPMHURL}}" target="_blank" class="custom-external custom-icon">
|
224
|
{{result.OAIPMHURL}}
|
225
|
</a>
|
226
|
</span>
|
227
|
</div>
|
228
|
<!-- Subjects -->
|
229
|
<div *ngIf="showSubjects && result.subjects && result.subjects.length > 0"
|
230
|
class="uk-text-small uk-margin-small-bottom">
|
231
|
<span class="uk-text-muted">Subject: </span>
|
232
|
<span *ngFor="let subject of result.subjects.slice(0,10) let i = index">{{subject}}
|
233
|
{{(i < (result.subjects.slice(0, 10).length - 1)) ? ", " : ""}}
|
234
|
{{(i == result.subjects.slice(0, 10).length - 1 && result.subjects.length > 10) ? "..." : ""}}
|
235
|
</span>
|
236
|
</div>
|
237
|
</div>
|
238
|
<div *ngIf="result.relation" class="uk-width-expand uk-padding-remove-left uk-text-small">
|
239
|
<div *ngIf="result.percentage" class="uk-flex uk-flex-middle">
|
240
|
<div class="uk-margin-small-right">
|
241
|
<span class="uk-text-capitalize uk-text-muted">{{result.relation}}: </span>
|
242
|
<span class="portal-color uk-text-bold"> {{result.percentage}}%</span>
|
243
|
</div>
|
244
|
<progress class="uk-progress portal-progress uk-margin-remove uk-text-left uk-width-expand"
|
245
|
[value]="result.percentage" max="100"></progress>
|
246
|
</div>
|
247
|
<div class="uk-text-capitalize uk-text-muted" *ngIf="result.provenanceAction">
|
248
|
{{result.provenanceAction}}
|
249
|
</div>
|
250
|
</div>
|
251
|
</div>
|
252
|
<!-- Description -->
|
253
|
<div *ngIf="result.description" class="uk-margin-small-bottom multi-line-ellipsis lines-3">
|
254
|
<p class="uk-text-small">
|
255
|
{{result.description}}
|
256
|
</p>
|
257
|
</div>
|