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