Project

General

Profile

1

    
2
<form  class="  uk-padding uk-padding-large uk-padding-remove-left uk-margin-left" >
3
  <div class="uk-grid">
4
    <div class="uk-width-expand">
5
     <select   [(ngModel)]="searchSource" name="select_source" (ngModelChange)="searchSourceChanged(searchSource)"  class="uk-select uk-width-1-4">
6
        <option value="openaire">in OpenAIRE </option>
7
        <option value="crossref">in Crossref </option>
8
        <option value="datacite">in Datacite </option>
9
        <option value="orcid">in ORCID </option>
10
        <option value="all">Search all</option>
11
     </select>
12
        <input class=" uk-input uk-width-1-2 form-control" [(ngModel)]="keyword" name="keyword" placeholder="Title, doi, author, orcid..."/>
13
        <span class="input-group-btn">
14
          <button (click)="search(false)"  type="submit" class=" uk-button uk-button-default">Search</button>
15
        </span>
16
    </div>
17
    <helper  div="link-result-form" class="uk-width-medium"></helper>
18
  </div>
19
</form>
20
  <div *ngIf="showSearchResults" class="uk-margin-top uk-animation">
21
      <ul class="uk-tab" uk-tab="animation: uk-animation-fade">
22
        <li *ngIf="searchSource == 'all' || searchSource == 'openaire'" (click)="clickTab('openairePub')" ><a>Publications <span  class="uk-badge uk-badge-notification">{{   (openairePubsNum)?openairePubsNum:0 }}</span></a></li>
23
        <li *ngIf="searchSource == 'all' || searchSource == 'openaire'" (click)="clickTab('openaireData')" ><a>Research Data <span  class="uk-badge uk-badge-notification">{{(openaireDataNum==null)?'0':openaireDataNum}}</span></a></li>
24
        <li *ngIf="searchSource == 'all' || searchSource == 'openaire'" (click)="clickTab('openaireSoftware')" ><a>Software <span  class="uk-badge uk-badge-notification">{{(openaireSoftwareNum==null)?'0':openaireSoftwareNum}}</span></a></li>
25
        <li *ngIf="searchSource == 'all' || searchSource == 'crossref'" (click)="clickTab('crossref')" ><a>Crossref <span  class="uk-badge uk-badge-notification">{{(crossrefResultsNum)?crossrefResultsNum:0}}</span></a></li>
26
        <li *ngIf="searchSource == 'all' || searchSource == 'datacite'" (click)="clickTab('datacite')"><a>Datacite <span  class="uk-badge uk-badge-notification">{{(dataciteResultsNum==null)?'0':dataciteResultsNum}}</span></a></li>
27
        <li *ngIf="searchSource == 'all' || searchSource == 'orcid'" (click)="clickTab('orcid')"><a>Orcid  <span  class="uk-badge uk-badge-notification">{{(orcidResultsNum)?orcidResultsNum:0}}</span></a></li>
28
      </ul>
29

    
30
        <div *ngIf="activeTab == 'crossref'" id="crossref" >
31
          <div  class="uk-margin-top" >
32
            <div *ngIf="crossrefStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
33
            <div *ngIf="crossrefStatus != errorCodes.LOADING && crossrefResults.length == 0" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
34
            <div *ngIf="crossrefStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
35
            <div *ngIf="crossrefStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
36
             <div *ngIf="crossrefResultsNum != null && crossrefResultsNum > 0" class="uk-clearfix">
37
               <div class="uk-float-right">
38
               <paging-no-load [currentPage]="crossrefPage" [totalResults]="crossrefResultsNum"   [term]="keyword" [size]="size"  (pageChange)="crossrefPageChange($event)"> </paging-no-load>
39
             </div>
40
             </div>
41
             <div >
42
               <ul *ngIf="crossrefResults.length > 0 "  class="uk-list uk-list-divider">
43
                  <li *ngFor=" let item of crossrefResults " [class]="(isSelected(item.DOI))?'uk-block-muted':''">
44
                   <div >
45
                    <a *ngIf="item.URL" target="_blank" href="{{item.URL}}" > <span class="custom-external"></span> {{item.title}}</a>
46
                    <span *ngIf="!item.URL" >{{item.title}}</span>
47
                    <a class="uk-button-default uk-align-right" *ngIf="!isSelected(item.DOI)" (click)="add(item, item.DOI, 'crossref', 'publication', item.URL, item.title, item.created['date-time'],'OPEN')" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a>
48
                  </div>
49
                  <span *ngIf="item.publisher" class="uk-article-meta">Publisher: {{item.publisher}}</span><span  class="uk-article-meta" *ngIf="(item['published-print'] && item['published-print']['date-parts'] && item['published-print']['date-parts'][0])">({{(item['published-print']['date-parts'][0][0])?item['published-print']['date-parts'][0][0]:item['published-print']['date-parts'][0]}})</span>
50
                  <div *ngIf="item.author && item.author.length > 0" class="uk-article-meta">Authors: <span *ngFor="let author of item.author.slice(0,10)  let i = index">{{author.family}} {{author.given}}{{(i < (item.author.slice(0,10).length-1))?"; ":""}}{{(i == item.author.slice(0,10).length-1 && item.author.length > 10)?"...":""}}</span></div>
51
                  <div *ngIf="item.editor && item.editor.length > 0" class="uk-article-meta">Editors: <span *ngFor="let author of item.editor.slice(0,10)  let i = index">{{author.family}} {{author.given}}{{(i < (item.editor.slice(0,10).length-1))?"; ":""}}{{(i == item.editor.slice(0,10).length-1 && item.editor.length > 10)?"...":""}}</span></div>
52
                 </li>
53
             </ul>
54
           </div>
55
          </div>
56
        </div>
57
        <div   *ngIf="activeTab == 'openairePub'" id="openairePubs" class="uk-animation-fade" >
58
          <div class = "uk-margin-top">
59
            <div *ngIf="openairePubsStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
60
            <div *ngIf="openairePubsStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
61
            <div *ngIf="openairePubsStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
62
            <div *ngIf="openairePubsStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
63
            <div *ngIf="openairePubsNum != null && openairePubsNum > 0" class="uk-clearfix">
64
              <div class="uk-float-right">
65
                  <paging-no-load [currentPage]="openairePubsPage" [totalResults]="openairePubsNum"   [term]="keyword" [size]="size"  (pageChange)="openairePubsPageChange($event)"> </paging-no-load>
66
                </div>
67
            </div>
68
            <div >
69
              <ul *ngIf="openairePubs.length > 0 "  class="uk-list uk-list-divider">
70
                 <li *ngFor=" let result of openairePubs " [class]="(isSelected(result.id))?'uk-block-muted':''">
71
                  <div >
72
                   <a *ngIf="result['title'].url" target="_blank" [href]="result['title'].url" >{{result['title'].name}}</a>
73
                   <span *ngIf="!result['title'].url" >{{result['title'].name}}</span>
74
                   <a *ngIf="!isSelected(result.id)" (click)="add(result, result.id, 'openaire', 'publication', result['title'].url, result['title'].name, result.year,result['title'].accessMode)" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a>
75
                 </div>
76
                 <span  *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span  class="uk-article-meta" *ngIf="(result.year)">({{result.year}})</span>
77
                 <div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div>
78

    
79

    
80
                </li>
81
            </ul>
82
          </div>
83
         </div>
84
       </div>
85
        <div  *ngIf="activeTab == 'orcid'" id="orcid" class="uk-animation-fade">
86
          <div class="uk-margin-top" >
87
            <div *ngIf="orcidStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
88
            <div *ngIf="orcidStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
89
            <div *ngIf="orcidStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
90
            <div *ngIf="orcidStatus == errorCodes.NONE && (!authorIds ||authorIds.length == 0)" class = "uk-alert uk-alert-primary " > No results found  </div>
91

    
92
             <div *ngIf="orcidResultsNum != null" class="panel-body">
93
               <span>Results for
94
                 <a target="_blank" href="http://orcid.org/{{authorId}}"> <span class="custom-external"></span>  {{authorGivenName}} {{authorFamilyName}} - {{authorId}}  </a> :
95
               </span>
96
               <div class = "uk-alert uk-alert-warning " >  Not the author you are looking for?
97

    
98
                 <span class="dropdown">
99

    
100
                   <select   [(ngModel)]="selectAuthorId" name="select_author" (ngModelChange)="getOrcidResultsById(selectAuthorId)"  >
101
                      <option   [value]="0">Choose another one: </option>
102
                      <option *ngFor=" let item of authorIds let i = index"   [value]="authorIds[i]">{{authorGivenNames[i]}} {{authorFamilyNames[i]}} : {{item}} </option>
103
                   </select>
104
                 </span>
105

    
106

    
107
               </div>
108

    
109

    
110
                 <div *ngIf=" ((orcidResultsNum >0) && (totalPages > 1) && ( 0 < page &&  page <= totalPages )) "  class="uk-clearfix">
111
                   <div class="uk-float-right">
112
                     <paging-no-load [currentPage]="orcidPage" [totalResults]="orcidResultsNum"   [term]="keyword" [size]="size"  (pageChange)="orcidPageChange($event)"> </paging-no-load>
113
                  </div>
114

    
115
                 </div>
116
                       <div >
117
                        <ul *ngIf="orcidResultsNum >0  && orcidResultsToShow.length > 0 "  class="uk-list uk-list-divider">
118
                           <li *ngFor=" let item of orcidResultsToShow "  [class]="(isSelected(authorId+'-'+item['put-code']))?'uk-block-muted':''">
119
                             <div>
120
                              <span *ngIf="!item.URL" >{{item['work-title']['title'].value}}</span>
121
                              <a class="uk-button-default uk-align-right" *ngIf="!isSelected(authorId+item['put-code'])" (click)="add(item,authorId+'-'+item['put-code'],'orcid', 'publication', '', item['work-title']['title'].value, item['publication-date']?item['publication-date'].year.value :null,'OPEN')" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a>
122
                            </div>
123
                            <span  *ngIf="item['journal-title'] && item['journal-title'].value " class="uk-article-meta">Journal: {{item['journal-title'].value}}</span><span  class="uk-article-meta" *ngIf="(item['publication-date']&&item['publication-date'].year&&item['publication-date'].year.value)"> ({{item['publication-date'].year.value}})</span>
124
                            <div *ngIf="item.contributors && item.contributors.length > 0" class="uk-article-meta">Authors: <span *ngFor="let author of item.contributors.slice(0,10) let i = index">{{author}}{{(i < (item.contributors.slice(0,10).length-1))?"; ":""}}{{(i == item.contributors.slice(0,10).length-1 && item.contributors.length > 10)?"...":""}}</span></div>
125

    
126
                          </li>
127
                        </ul>
128
                        <div *ngIf="orcidResultsNum == 0" class = "uk-alert uk-alert-primary " > No results found  </div>
129
                      </div>
130
             </div>
131
           </div>
132
         </div>
133
         <div  *ngIf="activeTab == 'datacite'" id="datacite" class="uk-animation-fade">
134
           <div *ngIf="dataciteStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
135
           <div *ngIf="dataciteStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
136
           <div *ngIf="dataciteStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
137
           <div *ngIf="dataciteStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
138
            <div class = "uk-margin-top">
139
               <div *ngIf="dataciteResultsNum != null && dataciteResultsNum > 0" class="uk-clearfix">
140
                  <div class="uk-float-right">
141
                   <paging-no-load [currentPage]="datacitePage" [totalResults]="dataciteResultsNum"   [term]="keyword" [size]="size"  (pageChange)="datacitePageChange($event)"> </paging-no-load>
142
                  </div>
143
               </div>
144
               <div >
145
                   <ul *ngIf="dataciteResults.length > 0 "  class="uk-list uk-list-divider">
146
                      <li *ngFor=" let item of dataciteResults "  [class]="(isSelected(item.attributes.doi))?'uk-block-muted':''" >
147
                       <div >
148
                        <a *ngIf="item.attributes.doi" target="_blank" href="{{'http://dx.doi.org/'+item.attributes.doi}}" > <span class="custom-external"></span> {{item.attributes.title}}</a>
149
                        <span *ngIf="!item.attributes.doi" >{{item.attributes.title}}</span>
150
                        <a class="uk-button-default uk-align-right" *ngIf="!isSelected(item.attributes.doi)" (click)="add(item, item.attributes.doi,'datacite','dataset', 'http://dx.doi.org/'+item.attributes.doi, item.attributes.title, item.attributes.published,'OPEN')" class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect><rect x="1" y="9" width="17" height="1"></rect></svg></a>
151

    
152
                      </div>
153
                      <span  *ngIf="item.attributes['container-title']" class="uk-article-meta">Publisher: {{item.attributes['container-title']}}</span><span *ngIf="(item.attributes.published)" class="uk-article-meta">({{item.attributes.published}})</span>
154
                      <div *ngIf="item.attributes.author && item.attributes.author.length > 0" class="uk-article-meta">Authors:
155
                         <span *ngFor="let author of item.attributes.author.slice(0,10) let i = index">{{(author.family)?author.family+', '+author.given:author.literal}}{{(i < (item.attributes.author.slice(0,10).length-1))?"; ":""}}{{(i == item.attributes.author.slice(0,10).length-1 && item.attributes.author.length > 10)?"...":""}}</span></div>
156

    
157
                     </li>
158
                 </ul>
159

    
160
               </div>
161
            </div>
162
          </div>
163
          <div  *ngIf="activeTab == 'openaireData'" id="openaireData" class="uk-animation-fade">
164
            <div *ngIf="openaireDataStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
165
            <div *ngIf="openaireDataStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
166
            <div *ngIf="openaireDataStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
167
            <div *ngIf="openaireDataStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
168
            <div class = "uk-margin-top">
169
              <div *ngIf="openaireDataNum != null && openaireDataNum > 0" class="uk-clearfix">
170
                <div class="uk-float-right">
171
                <paging-no-load [currentPage]="openaireDataPage" [totalResults]="openaireDataNum"   [term]="keyword" [size]="size"  (pageChange)="openaireDataPageChange($event)"> </paging-no-load>
172
                </div>
173
              </div>
174
              <div >
175
                <ul *ngIf="openaireData.length > 0 "  class="uk-list uk-list-divider">
176
                   <li *ngFor=" let result of openaireData " [class]="(isSelected(result.id))?'uk-block-muted':''">
177
                    <div >
178
                     <a *ngIf="result['title'].url" target="_blank" [href]="result['title'].url" >{{result['title'].name}}</a>
179
                     <span *ngIf="!result['title'].url" >{{result['title'].name}}</span>
180

    
181

    
182
                     <a class="uk-button-default uk-align-right" *ngIf="!isSelected(result.id)"
183
                     (click)="add(result, result.id,  'openaire','dataset',  result['title'].url, result['title'].name, result.year, result['title'].accessMode)"  class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect>
184
                       <rect x="1" y="9" width="17" height="1"></rect></svg></a>
185
                   </div>
186
                    <span  *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span *ngIf="(result.year)" class="uk-article-meta">({{result.year}})</span>
187
                    <div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div>
188

    
189

    
190
                  </li>
191
              </ul>
192
             </div>
193
           </div>
194
      </div>
195
      <div  *ngIf="activeTab == 'openaireSoftware'" id="openaireSoftware" class="uk-animation-fade">
196
        <div *ngIf="openaireSoftwareStatus == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
197
        <div *ngIf="openaireSoftwareStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
198
        <div *ngIf="openaireSoftwareStatus == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
199
        <div *ngIf="openaireSoftwareStatus == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
200
        <div class = "uk-margin-top">
201
          <div *ngIf="openaireSoftwareNum != null && openaireSoftwareNum > 0" class="uk-clearfix">
202
            <div class="uk-float-right">
203
            <paging-no-load [currentPage]="openaireSoftwarePage" [totalResults]="openaireSoftwareNum"   [term]="keyword" [size]="size"  (pageChange)="openaireSoftwarePageChange($event)"> </paging-no-load>
204
            </div>
205
          </div>
206
          <div >
207
            <ul *ngIf="openaireSoftware.length > 0 "  class="uk-list uk-list-divider">
208
               <li *ngFor=" let result of openaireSoftware " [class]="(isSelected(result.id))?'uk-block-muted':''">
209
                <div >
210
                 <a *ngIf="result['title'].url" target="_blank" [href]="result['title'].url" >{{result['title'].name}}</a>
211
                 <span *ngIf="!result['title'].url" >{{result['title'].name}}</span>
212

    
213

    
214
                 <a class="uk-button-default uk-align-right" *ngIf="!isSelected(result.id)"
215
                 (click)="add(result, result.id,  'openaire','software',  result['title'].url, result['title'].name, result.year, result['title'].accessMode)"  class="uk-icon-button"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="plus" ratio="1"><rect x="9" y="1" width="1" height="17"></rect>
216
                   <rect x="1" y="9" width="17" height="1"></rect></svg></a>
217
               </div>
218
                <span  *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span *ngIf="(result.year)" class="uk-article-meta">({{result.year}})</span>
219
                <div *ngIf="result.authors && result.authors.length >0 " class="uk-article-meta">Authors: <span *ngFor="let author of result.authors.slice(0,10) let i = index">{{author}}{{(i < (result.authors.slice(0,10).length-1))?"; ":""}}{{(i == result.authors.slice(0,10).length-1 && result.authors.length > 10)?"...":""}}</span></div>
220

    
221
              </li>
222
          </ul>
223
         </div>
224
       </div>
225
  </div>
226
    </div>
(7-7/11)