Project

General

Profile

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>
(9-9/15)