1
|
<form class=" uk-margin-top">
|
2
|
<div class="uk-margin-small-bottom">Start searching Research Outcomes and add them to the Basket to Link
|
3
|
<!-- <helper div="link-entity-form" styleName="" tooltip=true></helper> -->
|
4
|
</div>
|
5
|
|
6
|
<!-- <input class=" uk-input uk-width-large form-control" [(ngModel)]="keyword" name="keyword"-->
|
7
|
<!-- placeholder="Search for research outcomes..."/>-->
|
8
|
<div class="uk-inline">
|
9
|
<a *ngIf="keyword.length > 0" class="uk-form-icon uk-form-icon-flip"
|
10
|
(click)="keyword = ''"
|
11
|
uk-icon="icon: close"></a>
|
12
|
<input type="text" class="uk-input uk-width-xlarge@l uk-width-large@m uk-width-medium"
|
13
|
placeholder="Search for research outcomes..." aria-describedby="sizing-addon2"
|
14
|
[(ngModel)]="keyword" name="keyword">
|
15
|
</div>
|
16
|
<span class="input-group-btn space">
|
17
|
<button (click)="search(true)" type="submit" class=" uk-button portal-button">Search</button>
|
18
|
</span>
|
19
|
|
20
|
<!--helper div="link-entity-form" styleName="uk-width-medium"></helper-->
|
21
|
|
22
|
</form>
|
23
|
<div *ngIf="!showSearchResults">
|
24
|
<div class="uk-text-center uk-text-large uk-text-muted uk-margin-large-top">
|
25
|
No research outcomes yet...<br>Start searching for research outcomes to add them in the Basket
|
26
|
</div>
|
27
|
</div>
|
28
|
<div *ngIf="showSearchResults" class="uk-margin-top uk-animation">
|
29
|
<ul class="uk-tab" uk-tab="animation: uk-animation-fade">
|
30
|
<li (click)="clickTab('openaire')" [class]="(activeTab == 'openaire')?'uk-active':''"><a>Openaire <span
|
31
|
*ngIf="!(openaireResultsNum==0 && openaireResultsStatus === errorCodes.LOADING)">
|
32
|
({{openaireResultsNum| number}})</span></a>
|
33
|
</li>
|
34
|
<li (click)="clickTab('crossref')" [class]="(activeTab == 'crossref')?'uk-active':''"><a>Crossref
|
35
|
<span
|
36
|
*ngIf="crossrefResultsNum != null && crossrefResultsNum >= 0 ">({{crossrefResultsNum | number}})</span>
|
37
|
</a></li>
|
38
|
<li (click)="clickTab('datacite')" [class]="(activeTab == 'datacite')?'uk-active':''"><a>Datacite <span
|
39
|
*ngIf="dataciteResultsNum!=null && dataciteResultsNum >= 0">({{dataciteResultsNum | number}})</span></a>
|
40
|
</li>
|
41
|
<li (click)="clickTab('orcid')" [class]="(activeTab == 'orcid')?'uk-active':''"><a>Orcid <span
|
42
|
*ngIf="orcidResultsNum !=null">({{(orcidResultsNum > 0) ? (orcidResultsNum | number) : 0}})</span></a></li>
|
43
|
</ul>
|
44
|
|
45
|
<div *ngIf="activeTab == 'crossref'" id="crossref">
|
46
|
<div class="uk-margin-top">
|
47
|
<div *ngIf="crossrefStatus == errorCodes.NONE" class="uk-alert uk-alert-primary"
|
48
|
role="alert">No Results found
|
49
|
</div>
|
50
|
<div *ngIf="crossrefStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured
|
51
|
</div>
|
52
|
<div *ngIf="crossrefStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
53
|
role="alert">Service not available
|
54
|
</div>
|
55
|
<div *ngIf="crossrefResultsNum != null && crossrefResultsNum > 0" class="uk-clearfix ">
|
56
|
<div class="uk-grid">
|
57
|
<!-- <div *ngIf="crossrefResultsNum>0" class="uk-width-1-2">
|
58
|
<span class="portal-color">{{crossrefResultsNum|number}}</span> research outcomes, page <span
|
59
|
class="portal-color">{{crossrefPage | number}}</span> of <span
|
60
|
class="portal-color">{{countTotalPages(crossrefResultsNum)|number}}</span>
|
61
|
|
62
|
</div>-->
|
63
|
<div class="uk-width-1-1@s uk-width-1-2@m uk-text-uppercase"
|
64
|
*ngIf="crossrefResultsNum > 0">
|
65
|
{{crossrefResultsNum|number}}
|
66
|
<span class="uk-text-muted uk-text-uppercase"> research outcomes, page </span>
|
67
|
{{crossrefPage | number}}
|
68
|
<span class="uk-text-muted uk-text-uppercase"> of </span>
|
69
|
{{(countTotalPages(crossrefResultsNum)|number)}}
|
70
|
</div>
|
71
|
<div class="uk-width-1-2 uk-padding-remove-left">
|
72
|
<paging-no-load class="uk-float-right" [currentPage]="crossrefPage" [totalResults]="crossrefResultsNum"
|
73
|
[term]="keyword"
|
74
|
[size]="size" (pageChange)="crossrefPageChange($event)"></paging-no-load>
|
75
|
</div>
|
76
|
</div>
|
77
|
</div>
|
78
|
<div *ngIf="crossrefStatus === errorCodes.LOADING" class="uk-animation-fade uk-margin-top uk-width-1-1"
|
79
|
role="alert"><span class="loading-gif uk-align-center"></span></div>
|
80
|
<div>
|
81
|
|
82
|
<claim-results [localStoragePrefix]=localStoragePrefix [results]=crossrefResults
|
83
|
[selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
84
|
</div>
|
85
|
</div>
|
86
|
</div>
|
87
|
<div *ngIf="activeTab == 'openaire'" id="openaire" class="uk-animation-fade">
|
88
|
|
89
|
<div class="uk-grid">
|
90
|
|
91
|
<div class="search-filters uk-width-medium">
|
92
|
<div *ngIf="countFilters()>0" class="uk-grid uk-flex uk-flex-bottom">
|
93
|
<div class="uk-grid">
|
94
|
<h6 class="uk-text-bold">Filters</h6>
|
95
|
<a *ngIf="countFilters()>1" (click)="clearFilters()"
|
96
|
[class]="((openaireResultsStatus ==
|
97
|
errorCodes.LOADING)?'uk-disabled uk-link-muted':'')+' portal-link '">
|
98
|
Clear All
|
99
|
</a>
|
100
|
</div>
|
101
|
<div *ngIf="countFilters()>0" class="uk-grid uk-grid-small uk-text-small uk-margin-small-top " uk-grid>
|
102
|
<ng-container *ngFor="let filter of rangeFilters " >
|
103
|
<ng-container *ngIf = "filter.selectedFromAndToValues">
|
104
|
<span [title]="'Remove '+ filter.selectedFromAndToValues" (click) = "removeRangeFilter(filter) " >
|
105
|
<span class="selectedFilterLabel ">
|
106
|
<a [class]="((openaireResultsStatus ==
|
107
|
errorCodes.LOADING)?' uk-disabled':' ')+' uk-link-text '">
|
108
|
<span class=" clickable" aria-hidden="true">
|
109
|
<span class="uk-icon">
|
110
|
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.6" d="M16,4 L4,16"></path></svg>
|
111
|
</span>
|
112
|
</span>
|
113
|
<span class="uk-margin-small-left">{{filter.selectedFromAndToValues}}</span>
|
114
|
</a>
|
115
|
</span>
|
116
|
</span>
|
117
|
</ng-container>
|
118
|
</ng-container>
|
119
|
|
120
|
<ng-container *ngFor="let filter of openaireResultsfilters " >
|
121
|
<ng-container *ngIf = "filter.countSelectedValues > 0">
|
122
|
<span *ngFor="let value of getSelectedValues(filter); let i = index; let end = last; "
|
123
|
[title]="'Remove '+value.name" (click) = "removeFilter(value, filter) " >
|
124
|
<!-- if no grid on the div above, remove it and move class 'selectedFilterLabel' on top span -->
|
125
|
<span class="selectedFilterLabel ">
|
126
|
<a [class]="((openaireResultsStatus ==
|
127
|
errorCodes.LOADING)?' uk-disabled':' ')+' uk-link-text '">
|
128
|
<span class=" clickable" aria-hidden="true">
|
129
|
<span class="uk-icon">
|
130
|
<svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.6" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.6" d="M16,4 L4,16"></path></svg>
|
131
|
</span>
|
132
|
</span>
|
133
|
<span class="uk-margin-small-left" [innerHtml]="(value.name.length > 34)?value.name.substring(0,34)+'...':value.name"></span>
|
134
|
</a>
|
135
|
</span>
|
136
|
</span>
|
137
|
</ng-container>
|
138
|
</ng-container>
|
139
|
</div>
|
140
|
</div>
|
141
|
<!-- Type filter-->
|
142
|
<ul class="uk-list" >
|
143
|
<!--<li class="uk-open uk-margin-small-bottom">
|
144
|
<h6 class="uk-margin-bottom-remove ">Result Type (4)
|
145
|
</h6>
|
146
|
<div aria-expanded="false">
|
147
|
<div class="searchFilterBoxValues ">
|
148
|
<div *ngFor="let type of openaireTypeValues" class="uk-animation-fade filterItem">
|
149
|
|
150
|
<div title="{{type.title}}">
|
151
|
<input [value]="type.value" [(ngModel)]="openaireResultsType" [name]=type.value
|
152
|
type="radio" (ngModelChange)="openaireTypeChanged(type.value)"/>
|
153
|
{{_formatName(type.title,type.count)}}
|
154
|
<span *ngIf="type.count!=null">{{' (' + (type.count|number) + ')'}}</span>
|
155
|
</div>
|
156
|
|
157
|
</div>
|
158
|
</div>
|
159
|
</div>
|
160
|
</li>-->
|
161
|
|
162
|
<ng-container *ngFor="let filter of rangeFilters">
|
163
|
<li>
|
164
|
<range-filter [isDisabled]="openaireResultsStatus ==
|
165
|
errorCodes.LOADING" [filter]="filter" (onFilterChange)="dateFilterChanged(filter)"
|
166
|
[showQuickButtons]="false"
|
167
|
></range-filter>
|
168
|
</li>
|
169
|
</ng-container>
|
170
|
|
171
|
</ul>
|
172
|
|
173
|
<search-filter *ngFor="let filter of openaireResultsfilters " [isDisabled]="openaireResultsStatus ==
|
174
|
errorCodes.LOADING" [filter]="filter"
|
175
|
[showResultCount]=true
|
176
|
(onFilterChange)="filterChanged($event)" [actionRoute]="false"></search-filter>
|
177
|
</div>
|
178
|
<div class="uk-width-expand@m uk-width-1-1@s uk-first-column">
|
179
|
<div class="uk-margin-top">
|
180
|
<!-- <quick-selections [resultTypes]="resultTypes"
|
181
|
(typeChange)="openaireTypeChanged()" [isDisabled]="openaireResultsStatus ==
|
182
|
errorCodes.LOADING"
|
183
|
[quickFilter]="quickFilter" [QFselected]="(quickFilter)?quickFilter.selected:null"
|
184
|
[properties]="properties">
|
185
|
</quick-selections>-->
|
186
|
<div *ngIf="openaireResultsStatus == errorCodes.NONE" class="uk-alert uk-alert-primary"
|
187
|
role="alert">No Results found
|
188
|
</div>
|
189
|
<div *ngIf="openaireResultsStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning"
|
190
|
role="alert">An Error Occured
|
191
|
</div>
|
192
|
<div *ngIf="openaireResultsStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
193
|
role="alert">Service not available
|
194
|
</div>
|
195
|
<div *ngIf="openaireResultsNum != null && openaireResultsNum > 0" class="uk-clearfix ">
|
196
|
<div class= "paging-hr searchPaging uk-margin-small-bottom"
|
197
|
*ngIf="(openaireResultsNum > 0) || (openaireResultsStatus == errorCodes.LOADING)">
|
198
|
<div class="uk-panel uk-margin-small-top uk-grid uk-flex uk-flex-middle">
|
199
|
<div class="uk-width-1-1@s uk-width-1-2@m uk-text-uppercase"
|
200
|
*ngIf="openaireResultsNum > 0">
|
201
|
<span class="uk-text-bold">{{openaireResultsNum|number}}</span>
|
202
|
<span class="uk-text-muted uk-text-uppercase"> research outcomes, page </span>
|
203
|
<span class="uk-text-bold">{{openaireResultsPage | number}}</span>
|
204
|
<span class="uk-text-muted uk-text-uppercase"> of </span>
|
205
|
<span class="uk-text-bold">{{(countTotalPages(openaireResultsNum)|number)}}</span>
|
206
|
</div>
|
207
|
<div class="float-children-right-at-medium margin-small-top-at-small uk-width-expand uk-padding-remove-left" *ngIf=" openaireResultsStatus != errorCodes.LOADING">
|
208
|
<paging-no-load class="uk-float-right" [currentPage]="openaireResultsPage"
|
209
|
[totalResults]="openaireResultsNum" [term]="keyword"
|
210
|
[size]="size" (pageChange)="openaireResultsPageChange($event)"></paging-no-load>
|
211
|
</div>
|
212
|
</div>
|
213
|
</div>
|
214
|
</div>
|
215
|
<div *ngIf="openaireResultsStatus === errorCodes.LOADING"
|
216
|
class="uk-animation-fade uk-margin-top uk-width-1-1"
|
217
|
role="alert"><span class="loading-gif uk-align-center"></span></div>
|
218
|
<claim-results [localStoragePrefix]=localStoragePrefix
|
219
|
[results]=openaireResults [selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
220
|
</div>
|
221
|
</div>
|
222
|
</div>
|
223
|
</div>
|
224
|
<div *ngIf="activeTab == 'orcid'" id="orcid" class="uk-animation-fade">
|
225
|
<div class="uk-margin-top">
|
226
|
|
227
|
<div *ngIf="orcidStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
|
228
|
<div *ngIf="orcidStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
229
|
role="alert">Service not available
|
230
|
</div>
|
231
|
<div *ngIf="orcidStatus == errorCodes.NONE && orcidResultsNum == -1"
|
232
|
class="uk-alert uk-alert-primary "> No results found
|
233
|
</div>
|
234
|
<div *ngIf=" ((orcidResultsNum >0) && (totalPages > 1) && ( 0 < page && page <= totalPages )) "
|
235
|
class="uk-clearfix">
|
236
|
<div class="uk-grid">
|
237
|
<!--<div *ngIf="orcidResultsNum>0" class="uk-width-1-2">
|
238
|
<span class="portal-color">{{orcidResultsNum|number}}</span> research outcomes, page <span
|
239
|
class="portal-color">{{orcidPage | number}}</span> of <span
|
240
|
class="portal-color">{{countTotalPages(orcidResultsNum)|number}}</span>
|
241
|
|
242
|
</div>-->
|
243
|
<div class="uk-width-1-1@s uk-width-1-2@m uk-text-uppercase"
|
244
|
*ngIf="orcidResultsNum > 0">
|
245
|
{{orcidResultsNum|number}}
|
246
|
<span class="uk-text-muted uk-text-uppercase"> research outcomes, page </span>
|
247
|
{{orcidPage | number}}
|
248
|
<span class="uk-text-muted uk-text-uppercase"> of </span>
|
249
|
{{(countTotalPages(orcidResultsNum)|number)}}
|
250
|
</div>
|
251
|
<div class="uk-width-1-2 uk-padding-remove-left">
|
252
|
<paging-no-load class="uk-float-right" [currentPage]="orcidPage" [totalResults]="orcidResultsNum"
|
253
|
[term]="keyword" [size]="size"
|
254
|
(pageChange)="orcidPageChange($event)"></paging-no-load>
|
255
|
</div>
|
256
|
</div>
|
257
|
</div>
|
258
|
<div *ngIf="orcidResultsNum >= 0" class="panel-body">
|
259
|
<span><span class="uk-text-bold">Showing results for</span>
|
260
|
<a target="_blank" href="http://orcid.org/{{authorId}}"> <span
|
261
|
class="custom-external"></span> {{authorGivenName}} {{authorFamilyName}} - {{authorId}} </a> :
|
262
|
</span>
|
263
|
<div *ngIf="authors.length > 1" class=""> In Orcid you can search only by Author. Not the
|
264
|
author you are looking for?
|
265
|
|
266
|
<div class="dropdown">
|
267
|
|
268
|
<mat-select [(ngModel)]="selectAuthorId" name="select_author"
|
269
|
(ngModelChange)="getOrcidResultsById(selectAuthorId)" class="matSelection"
|
270
|
[disableOptionCentering]="true"
|
271
|
panelClass="matSelectionPanel">
|
272
|
<mat-option value="0">Choose another one:</mat-option>
|
273
|
<mat-option *ngFor=" let item of authors let i = index"
|
274
|
[value]="authors[i].id">{{authors[i].authorGivenName}} {{authors[i].authorFamilyName}} : {{authors[i].id}} </mat-option>
|
275
|
</mat-select>
|
276
|
</div>
|
277
|
|
278
|
</div>
|
279
|
|
280
|
|
281
|
<div>
|
282
|
<claim-results [localStoragePrefix]=localStoragePrefix
|
283
|
*ngIf="orcidResultsNum >0 && orcidResultsToShow.length > 0 " [results]=orcidResultsToShow
|
284
|
[selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
285
|
<div *ngIf="orcidResultsNum == 0" class="uk-alert uk-alert-primary uk-margin-top"> No results found</div>
|
286
|
</div>
|
287
|
</div>
|
288
|
<div *ngIf="orcidStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top uk-width-1-1" role="alert">
|
289
|
<span class="loading-gif uk-align-center"></span></div>
|
290
|
</div>
|
291
|
</div>
|
292
|
<div *ngIf="activeTab == 'datacite'" id="datacite" class="uk-animation-fade">
|
293
|
<div *ngIf="dataciteStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
|
294
|
<div *ngIf="dataciteStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured
|
295
|
</div>
|
296
|
<div *ngIf="dataciteStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger"
|
297
|
role="alert">Service not available
|
298
|
</div>
|
299
|
<div class="uk-margin-top">
|
300
|
<div *ngIf="dataciteResultsNum != null && dataciteResultsNum > 0" class="uk-clearfix ">
|
301
|
<div class="uk-grid">
|
302
|
<!-- <div *ngIf="dataciteResultsNum>0" class="uk-width-1-2">
|
303
|
<span class="portal-color">{{dataciteResultsNum|number}}</span> research outcomes, page <span
|
304
|
class="portal-color">{{datacitePage | number}}</span> of <span
|
305
|
class="portal-color">{{countTotalPages(dataciteResultsNum)|number}}</span>
|
306
|
|
307
|
</div>-->
|
308
|
<div class="uk-width-1-1@s uk-width-1-2@m uk-text-uppercase"
|
309
|
*ngIf="dataciteResultsNum > 0">
|
310
|
{{dataciteResultsNum|number}}
|
311
|
<span class="uk-text-muted uk-text-uppercase"> research outcomes, page </span>
|
312
|
{{datacitePage | number}}
|
313
|
<span class="uk-text-muted uk-text-uppercase"> of </span>
|
314
|
{{(countTotalPages(dataciteResultsNum)|number)}}
|
315
|
</div>
|
316
|
<div class="uk-width-1-2 uk-padding-remove-left">
|
317
|
<paging-no-load class="uk-float-right" [currentPage]="datacitePage" [totalResults]="dataciteResultsNum"
|
318
|
[term]="keyword"
|
319
|
[size]="size" (pageChange)="datacitePageChange($event)"></paging-no-load>
|
320
|
</div>
|
321
|
</div>
|
322
|
</div>
|
323
|
<div *ngIf="dataciteStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top uk-width-1-1"
|
324
|
role="alert"><span class="loading-gif uk-align-center"></span></div>
|
325
|
<div>
|
326
|
<claim-results [localStoragePrefix]=localStoragePrefix *ngIf="dataciteResults.length > 0 "
|
327
|
[results]=dataciteResults [selectedResults]=selectedResults [basketLimit]="basketLimit"></claim-results>
|
328
|
</div>
|
329
|
</div>
|
330
|
</div>
|
331
|
|
332
|
</div>
|