1
|
<div class="uk-grid">
|
2
|
<div class="uk-width-expand">
|
3
|
<!-- Sources -->
|
4
|
<div>
|
5
|
<h5 class=" uk-margin uk-h5 uk-text-primary"
|
6
|
(click)="showSources=!showSources; showLinksTo=!showSources">
|
7
|
Sources ({{sources.length | number}})
|
8
|
<span *ngIf="!showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
9
|
xmlns="http://www.w3.org/2000/svg" icon="chevron-left"
|
10
|
ratio="1"><polyline fill="none" stroke="#000"
|
11
|
stroke-width="1.03"
|
12
|
points="13 16 7 10 13 4"></polyline></svg></span>
|
13
|
<span *ngIf="showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
14
|
xmlns="http://www.w3.org/2000/svg" icon="chevron-down"
|
15
|
ratio="1"><polyline fill="none" stroke="#000"
|
16
|
stroke-width="1.03"
|
17
|
points="16 7 10 13 4 7"></polyline></svg></span>
|
18
|
</h5>
|
19
|
<!-- <div class="linksbaskettitles uk-padding-small"-->
|
20
|
<!-- (click)="showSources=!showSources; showLinksTo=!showSources">-->
|
21
|
<!-- <div class="uk-h6 uk-margin-remove portal-color">-->
|
22
|
<!-- Sources ({{(sources.length) | number}})-->
|
23
|
<!-- <span *ngIf="!showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"-->
|
24
|
<!-- xmlns="http://www.w3.org/2000/svg" icon="chevron-left"-->
|
25
|
<!-- ratio="1"><polyline fill="none" stroke="#000"-->
|
26
|
<!-- stroke-width="1.03"-->
|
27
|
<!-- points="13 16 7 10 13 4"></polyline></svg></span>-->
|
28
|
<!-- <span *ngIf="showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"-->
|
29
|
<!-- xmlns="http://www.w3.org/2000/svg" icon="chevron-down"-->
|
30
|
<!-- ratio="1"><polyline fill="none" stroke="#000"-->
|
31
|
<!-- stroke-width="1.03"-->
|
32
|
<!-- points="16 7 10 13 4 7"></polyline></svg></span>-->
|
33
|
<!-- </div>-->
|
34
|
<!-- </div>-->
|
35
|
<ul *ngIf="sources.length > 0 && showSources" class="uk-list">
|
36
|
<li *ngFor=" let entity of sources "
|
37
|
[class]="(entity.warningMessages && entity.warningMessages.length > 0)?'uk-alert warningBorder':'uk-alert '">
|
38
|
<div class="uk-text-muted">
|
39
|
{{(!entity.result) ? entity.type : ((entity.result && entity.result.source == 'openaire') ? entity.type : (entity.result && entity.result.source + ' result'))}}
|
40
|
</div>
|
41
|
<div class="uk-grid">
|
42
|
<div class="uk-width-expand">
|
43
|
<span class="uk-text-bold">
|
44
|
<a *ngIf="entity.result && entity.result.url" target="_blank" class="uk-link"
|
45
|
[href]="entity.result.url">{{entity.title ? entity.title : '[No title available]'}}</a>
|
46
|
<span
|
47
|
*ngIf="entity.result && !entity.result.url">{{entity.title ? entity.title : '[No title available]'}}</span>
|
48
|
<span
|
49
|
*ngIf="entity.type=='project' && entity.project"> {{(entity.project.acronym ? entity.project.acronym : entity.title)}}</span>
|
50
|
<span *ngIf="entity.type=='community' && entity.context">
|
51
|
<span *ngIf=" entity.context.community != entity.context.concept.label">
|
52
|
{{entity.context.community }} > {{entity.context.category}} >
|
53
|
</span>
|
54
|
<span> {{entity.context.concept.label}}</span>
|
55
|
</span>
|
56
|
</span>
|
57
|
</div>
|
58
|
<div class="uk-padding-remove-left">
|
59
|
<a class="uk-button-default uk-align-right"
|
60
|
(click)="remove(entity, false)" class="uk-icon-button icon-button-small">
|
61
|
<span class="uk-icon">
|
62
|
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close"
|
63
|
ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path
|
64
|
fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
|
65
|
</span>
|
66
|
</a>
|
67
|
</div>
|
68
|
</div>
|
69
|
<div class="uk-grid uk-margin-remove uk-text-small">
|
70
|
<div class="uk-width-1-2 uk-padding-remove-left">
|
71
|
<span *ngIf="entity.result && entity.result.publisher!=null"><span
|
72
|
class="uk-text-muted">Publisher</span> {{entity.result.publisher}}</span>
|
73
|
<span *ngIf="entity.result && entity.result.journal!=null"><span
|
74
|
class="uk-text-muted">Journal</span> {{entity.result.journal}}</span>
|
75
|
</div>
|
76
|
<div class="uk-width-1-2">
|
77
|
<span *ngIf="entity.result && entity.result.date"><span class="uk-text-muted">Published in </span> <span
|
78
|
[class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{entity.result.date}}</span></span>
|
79
|
<div
|
80
|
[class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{getProjectDurationMessage(entity)}}
|
81
|
</div>
|
82
|
</div>
|
83
|
</div>
|
84
|
|
85
|
<div *ngIf="entity.result && entity.result.authors && entity.result.authors.length >0 " class="uk-text-small">
|
86
|
<span class="uk-text-muted">Authors </span> <span
|
87
|
*ngFor="let author of entity.result.authors.slice(0,10) let i = index">{{author}}{{(i < (entity.result.authors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.authors.slice(0, 10).length - 1 && entity.result.authors.length > 10) ? "..." : ""}}</span>
|
88
|
</div>
|
89
|
<div *ngIf="entity.result && entity.result.editors && entity.result.editors.length > 0" class="uk-text-small">
|
90
|
<span class="uk-text-muted">Editors </span><span
|
91
|
*ngFor="let author of entity.result.editors.slice(0,10) let i = index">{{author}}{{(i < (entity.result.editors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.editors.slice(0, 10).length - 1 && entity.result.editors.length > 10) ? "..." : ""}}</span>
|
92
|
</div>
|
93
|
<div *ngIf="entity.type == 'project' && entity.project" class="uk-grid uk-margin-remove-top uk-text-small">
|
94
|
<div class="uk-width-1-2">
|
95
|
<div *ngIf="entity.project.funderName">
|
96
|
<span class="uk-text-muted">Funder </span>{{entity.project.funderName}}
|
97
|
</div>
|
98
|
<!-- <div *ngIf="entity.organization">
|
99
|
<span class="uk-text-muted">Organization </span>{{entity.organization}}
|
100
|
</div> -->
|
101
|
</div>
|
102
|
<div class="uk-width-1-2">
|
103
|
<div *ngIf="entity.project.code">
|
104
|
<span class="uk-text-muted">GrandId </span>{{entity.project.code}}
|
105
|
</div>
|
106
|
<div *ngIf=" (entity.project.startDate || entity.project.endDate)">
|
107
|
<span
|
108
|
class="uk-text-muted">Duration </span>{{(entity.project.startDate) ? entity.project.startDate : 'unknown'}}{{'-' + ((entity.project.endDate) ? entity.project.endDate : 'unknown')}}
|
109
|
</div>
|
110
|
</div>
|
111
|
|
112
|
</div>
|
113
|
<div *ngIf="entity.result && entity.result.source && entity.result.source!='openaire' "
|
114
|
class="uk-grid uk-text-small">
|
115
|
<div class="uk-width-1-2">
|
116
|
<span class="uk-text-muted">Type </span>
|
117
|
<select [(ngModel)]="entity.type" name="{{'select_type_'+entity.id}}" class="uk-select uk-width-small">
|
118
|
<option [value]="'publication'" (click)="onTypeChanged('publication',entity, false)">Publication
|
119
|
</option>
|
120
|
<option [value]="'dataset'" (click)="onTypeChanged('dataset',entity, false)">Research data</option>
|
121
|
<option [value]="'software'" (click)="onTypeChanged('software',entity, false)">Software</option>
|
122
|
<option [value]="'other'" (click)="onTypeChanged('other',entity, false)">Other research product</option>
|
123
|
</select>
|
124
|
</div>
|
125
|
<div class="uk-width-1-2 uk-grid">
|
126
|
<span class="uk-text-muted uk-margin-small-top">Access mode</span>
|
127
|
<select [(ngModel)]="entity.result.accessRights" name="{{'select_rights_'+entity.id}}"
|
128
|
class="uk-select uk-width-small">
|
129
|
<option *ngFor="let type of accessTypes" [value]="type"
|
130
|
(click)="accessRightsTypeChanged(type,entity, false)">{{type}}</option>
|
131
|
</select>
|
132
|
<my-date-picker *ngIf="entity.result.accessRights== 'EMBARGO'" name="{{'date'+entity.id}}"
|
133
|
[options]="myDatePickerOptions"
|
134
|
[(ngModel)]="nextDate" (dateChanged)="onDateChanged($event,entity, false)"
|
135
|
class="uk-width-expand uk-padding-remove-left"></my-date-picker>
|
136
|
<div *ngIf="entity.result.accessRights== 'EMBARGO'"
|
137
|
[class]="(getEmbargoEndDateMessage(entity)?'uk-text-warning':'')">{{getEmbargoEndDateMessage(entity)}}
|
138
|
</div>
|
139
|
</div>
|
140
|
</div>
|
141
|
|
142
|
|
143
|
</li>
|
144
|
</ul>
|
145
|
</div>
|
146
|
<!-- Results-->
|
147
|
<div>
|
148
|
<h5 class=" uk-margin uk-h5 uk-text-primary"
|
149
|
(click)="showLinksTo=!showLinksTo; showSources=!showLinksTo ">
|
150
|
Link To ({{results.length | number}})
|
151
|
|
152
|
<span *ngIf="!showLinksTo" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
153
|
xmlns="http://www.w3.org/2000/svg"
|
154
|
icon="chevron-left" ratio="1"><polyline
|
155
|
fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span>
|
156
|
<span *ngIf="showLinksTo" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
157
|
xmlns="http://www.w3.org/2000/svg"
|
158
|
icon="chevron-down" ratio="1"><polyline
|
159
|
fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg></span>
|
160
|
|
161
|
</h5>
|
162
|
<ul *ngIf="results.length > 0 && showLinksTo" class="uk-list uk-list-divider">
|
163
|
<li *ngFor=" let entity of results "
|
164
|
[class]="(entity.warningMessages && entity.warningMessages.length > 0)?'uk-alert warningBorder':'uk-alert '">
|
165
|
<div class="uk-text-muted">
|
166
|
{{(!entity.result) ? entity.type : ((entity.result && entity.result.source == 'openaire') ? entity.type : (entity.result && entity.result.source + ' result'))}}
|
167
|
</div>
|
168
|
<div class="uk-grid">
|
169
|
<div class="uk-width-expand">
|
170
|
<span class="uk-text-bold">
|
171
|
<a *ngIf="entity.result && entity.result.url" target="_blank" [href]="entity.result.url"
|
172
|
class="uk-link">{{entity.title ? entity.title : '[No title available]'}}</a>
|
173
|
<span
|
174
|
*ngIf="(entity.result && !entity.result.url)">{{entity.title ? entity.title : '[No title available]'}}</span>
|
175
|
<span
|
176
|
*ngIf="entity.type=='project' && entity.project"> {{(entity.project.acronym ? entity.project.acronym : entity.title)}}</span>
|
177
|
<span *ngIf="entity.type=='community' && entity.context">
|
178
|
<span *ngIf=" entity.context.community != entity.context.concept.label">
|
179
|
{{entity.context.community }} > {{entity.context.category}} >
|
180
|
</span>
|
181
|
<span> {{entity.context.concept.label}}</span>
|
182
|
</span>
|
183
|
</span>
|
184
|
</div>
|
185
|
<div class="uk-padding-remove-left">
|
186
|
<a class="uk-button-default uk-align-right"
|
187
|
(click)="remove(entity, false)" class="uk-icon-button icon-button-small">
|
188
|
<span class="uk-icon">
|
189
|
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close"
|
190
|
ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path
|
191
|
fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
|
192
|
</span>
|
193
|
</a>
|
194
|
</div>
|
195
|
</div>
|
196
|
<div class="uk-grid uk-margin-remove uk-text-small">
|
197
|
<div class="uk-width-1-2 uk-padding-remove-left">
|
198
|
<span *ngIf="entity.result && entity.result.publisher!=null"><span
|
199
|
class="uk-text-muted">Publisher</span> {{entity.result.publisher}}</span>
|
200
|
<span *ngIf="entity.result && entity.result.journal!=null"><span
|
201
|
class="uk-text-muted">Journal</span> {{entity.result.journal}}</span>
|
202
|
</div>
|
203
|
<div class="uk-width-1-2">
|
204
|
<span *ngIf="entity.result && entity.result.date"><span class="uk-text-muted">Published in </span> <span
|
205
|
[class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{entity.result.date}}</span></span>
|
206
|
<div
|
207
|
[class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{getProjectDurationMessage(entity)}}
|
208
|
</div>
|
209
|
</div>
|
210
|
</div>
|
211
|
<!---->
|
212
|
<div *ngIf="entity.result && entity.result.authors && entity.result.authors.length >0 " class="uk-text-small">
|
213
|
<span class="uk-text-muted">Authors </span> <span
|
214
|
*ngFor="let author of entity.result.authors.slice(0,10) let i = index">{{author}}{{(i < (entity.result.authors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.authors.slice(0, 10).length - 1 && entity.result.authors.length > 10) ? "..." : ""}}</span>
|
215
|
</div>
|
216
|
<div *ngIf="entity.result && entity.result.editors && entity.result.editors.length > 0" class="uk-text-small">
|
217
|
<span class="uk-text-muted">Editors </span><span
|
218
|
*ngFor="let author of entity.result.editors.slice(0,10) let i = index">{{author}}{{(i < (entity.result.editors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.editors.slice(0, 10).length - 1 && entity.result.editors.length > 10) ? "..." : ""}}</span>
|
219
|
</div>
|
220
|
<div *ngIf="entity.type == 'project' && entity.project" class="uk-grid uk-margin-remove-top uk-text-small">
|
221
|
<div class="uk-width-1-2">
|
222
|
<div *ngIf="entity.project.funderName">
|
223
|
<span class="uk-text-muted">Funder </span>{{entity.project.funderName}}
|
224
|
</div>
|
225
|
<!-- <div *ngIf="entity.organization">
|
226
|
<span class="uk-text-muted">Organization </span>{{entity.organization}}
|
227
|
</div> -->
|
228
|
</div>
|
229
|
<div class="uk-width-1-2">
|
230
|
<div *ngIf="entity.project.code">
|
231
|
<span class="uk-text-muted">GrandId </span>{{entity.project.code}}
|
232
|
</div>
|
233
|
<div *ngIf=" (entity.project.startDate || entity.project.endDate)">
|
234
|
<span
|
235
|
class="uk-text-muted">Duration </span>{{(entity.project.startDate) ? entity.project.startDate : 'unknown'}}{{'-' + ((entity.project.endDate) ? entity.project.endDate : 'unknown')}}
|
236
|
</div>
|
237
|
</div>
|
238
|
<!---->
|
239
|
</div>
|
240
|
<div *ngIf="entity.result && entity.result.source && entity.result.source!='openaire' "
|
241
|
class="uk-grid uk-text-small">
|
242
|
<div class="uk-width-1-2">
|
243
|
<span class="uk-text-muted">Type </span>
|
244
|
<select [(ngModel)]="entity.type" name="{{'select_type_'+entity.id}}" class="uk-select uk-width-small">
|
245
|
<option [value]="'publication'" (click)="onTypeChanged('publication',entity, false)">Publication
|
246
|
</option>
|
247
|
<option [value]="'dataset'" (click)="onTypeChanged('dataset',entity, false)">Research data</option>
|
248
|
<option [value]="'software'" (click)="onTypeChanged('software',entity, false)">Software</option>
|
249
|
<option [value]="'other'" (click)="onTypeChanged('other',entity, false)">Other research product</option>
|
250
|
</select>
|
251
|
</div>
|
252
|
<div class="uk-width-1-2 uk-grid">
|
253
|
<span class="uk-text-muted uk-margin-small-top">Access mode</span>
|
254
|
<select [(ngModel)]="entity.result.accessRights" name="{{'select_rights_'+entity.id}}"
|
255
|
class="uk-select uk-width-small">
|
256
|
<option *ngFor="let type of accessTypes" [value]="type"
|
257
|
(click)="accessRightsTypeChanged(type,entity, false)">{{type}}</option>
|
258
|
</select>
|
259
|
<my-date-picker *ngIf="entity.result.accessRights== 'EMBARGO'" name="{{'date'+entity.id}}"
|
260
|
[options]="myDatePickerOptions"
|
261
|
[(ngModel)]="nextDate" (dateChanged)="onDateChanged($event,entity, false)"
|
262
|
class="uk-width-expand uk-padding-remove-left"></my-date-picker>
|
263
|
<div *ngIf="entity.result.accessRights== 'EMBARGO'"
|
264
|
[class]="(getEmbargoEndDateMessage(entity)?'uk-text-warning':'')">{{getEmbargoEndDateMessage(entity)}}
|
265
|
</div>
|
266
|
</div>
|
267
|
</div>
|
268
|
|
269
|
|
270
|
</li>
|
271
|
</ul>
|
272
|
</div>
|
273
|
</div>
|
274
|
<div class="uk-width-large">
|
275
|
<!-- Errors and Warning -->
|
276
|
<h5 *ngIf="errors.length > 0" class=" uk-margin uk-h5 uk-text-primary" (click)="showErrors=!showErrors ">
|
277
|
Errors ({{errors.length | number}})
|
278
|
<span *ngIf="!showErrors" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
279
|
xmlns="http://www.w3.org/2000/svg"
|
280
|
icon="chevron-left" ratio="1"><polyline
|
281
|
fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span>
|
282
|
<span *ngIf="showErrors" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
283
|
xmlns="http://www.w3.org/2000/svg"
|
284
|
icon="chevron-down" ratio="1"><polyline
|
285
|
fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg></span>
|
286
|
</h5>
|
287
|
<div *ngIf="errors.length > 0 && showErrors">
|
288
|
<div *ngFor=" let message of errors " class="uk-alert dangerBorder">
|
289
|
{{message.type}}
|
290
|
</div>
|
291
|
</div>
|
292
|
<h5 *ngIf="warnings.length > 0"
|
293
|
class=" uk-margin uk-h5 uk-text-primary" (click)="showWarnings=!showWarnings "> Warnings ({{warnings.length | number}})
|
294
|
<span *ngIf="!showWarnings" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
295
|
xmlns="http://www.w3.org/2000/svg"
|
296
|
icon="chevron-left" ratio="1"><polyline
|
297
|
fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span>
|
298
|
<span *ngIf="showWarnings" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
|
299
|
xmlns="http://www.w3.org/2000/svg"
|
300
|
icon="chevron-down" ratio="1"><polyline
|
301
|
fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg></span>
|
302
|
</h5>
|
303
|
|
304
|
<div *ngIf="warnings.length > 0 && showWarnings ">
|
305
|
<div *ngFor=" let message of warnings " class="uk-alert warningBorder">
|
306
|
<div *ngIf="message.type == 'embargoEndDate'">
|
307
|
<div class="uk-text-warning uk-text-bold">
|
308
|
Embargo date must be later than published date in
|
309
|
</div>
|
310
|
<div class="">
|
311
|
{{message.result.title}}
|
312
|
</div>
|
313
|
</div>
|
314
|
<div *ngIf="message.type == 'projectDuration'">
|
315
|
<div class="uk-text-warning uk-text-bold">
|
316
|
Published date must be in the project's date boundaries
|
317
|
(from {{message.projectInfo.startDate}}{{(message.projectInfo.endDate) ? (' to ' + (addStringToNumber(message.projectInfo.endDate, 5))) : ''}}) in
|
318
|
</div>
|
319
|
<div class="">
|
320
|
{{message.resultTitle}}
|
321
|
</div>
|
322
|
<div class="uk-text-muted uk-text-small">
|
323
|
with link to
|
324
|
</div>
|
325
|
<div class="">
|
326
|
{{message.projectInfo.title}}
|
327
|
</div>
|
328
|
<div><span class="uk-text-muted uk-text-small">
|
329
|
Project boundaries: </span>({{message.projectInfo.startDate}}{{(message.projectInfo.endDate) ? (' - ' + (message.projectInfo.endDate) + ') +5 years') : ')'}}
|
330
|
</div>
|
331
|
</div>
|
332
|
|
333
|
</div>
|
334
|
</div>
|
335
|
</div>
|
336
|
|
337
|
<modal-alert (alertOutput)="confirmClose($event)">
|
338
|
</modal-alert>
|
339
|
</div>
|