Project

General

Profile

« Previous | Next » 

Revision 51910

Claim Search: add parse method(optionally) in all search services for claim search(orcid, datacite, crossref), use common response as an array of ClaimResult | use common component to show those results | transform openaire results to ClaimResult class | enhance Orcid result with DOI with info got from crossref

View differences:

claimResultSearchForm.component.html
39 39
             </div>
40 40
             </div>
41 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>
42

  
43
             <claim-results [(results)]=crossrefResults [(selectedResults)]=selectedResults > </claim-results>
54 44
           </div>
55 45
          </div>
56 46
        </div>
......
66 56
                </div>
67 57
            </div>
68 58
            <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>
59
            <claim-results [(results)]=openairePubs [(selectedResults)]=selectedResults > </claim-results>
82 60
          </div>
83 61
         </div>
84 62
       </div>
......
103 81
                   </select>
104 82
                 </span>
105 83

  
106

  
107 84
               </div>
108 85

  
109

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

  
115 90
                 </div>
116 91
                       <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['work-summary'][0]['put-code']))?'uk-block-muted':''">
119
                             <div>
120
                              <span *ngIf="!item.URL" >{{item['work-summary'][0]['title']['title'].value}}</span>
121
                              <a class="uk-button-default uk-align-right" *ngIf="!isSelected(authorId+'-'+item['work-summary'][0]['put-code'])"  (click)="add(item,authorId+'-'+item['work-summary'][0]['put-code'],'orcid', 'publication', null, item['work-summary'][0]['title']['title'].value, item['work-summary'][0]['publication-date']?item['work-summary'][0]['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['work-summary'][0]['journal-title'] && item['work-summary'][0]['journal-title'].value " class="uk-article-meta">Journal: {{item['work-summary'][0]['journal-title'].value}}</span><span  class="uk-article-meta" *ngIf="(item['work-summary'][0]['publication-date']&&item['work-summary'][0]['publication-date'].year&&item['work-summary'][0]['publication-date'].year.value)"> ({{item['work-summary'][0]['publication-date'].year.value}})</span>
124
                            <div *ngIf="item['work-summary'][0].source && item['work-summary'][0].source['source-name'] &&  item['work-summary'][0].source['source-name']" class="uk-article-meta">Authors: {{ item['work-summary'][0].source['source-name'].value}}
125
                              <!--span *ngFor="let author of item.contributors.slice(0,10) l.valueet 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>
126

  
127
                          </li>
128
                        </ul>
92
                        <claim-results *ngIf="orcidResultsNum >0  && orcidResultsToShow.length > 0 "  [(results)]=orcidResultsToShow [(selectedResults)]=selectedResults > </claim-results>
129 93
                        <div *ngIf="orcidResultsNum == 0" class = "uk-alert uk-alert-primary " > No results found  </div>
130 94
                      </div>
131 95
             </div>
132 96
           </div>
133
         </div>
97

  
134 98
         <div  *ngIf="activeTab == 'datacite'" id="datacite" class="uk-animation-fade">
135 99
           <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>
136 100
           <div *ngIf="dataciteStatus == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
......
143 107
                  </div>
144 108
               </div>
145 109
               <div >
146
                   <ul *ngIf="dataciteResults.length > 0 "  class="uk-list uk-list-divider">
147
                      <li *ngFor=" let item of dataciteResults "  [class]="(isSelected(item.attributes.doi))?'uk-block-muted':''" >
148
                       <div >
149
                        <a *ngIf="item.attributes.doi" target="_blank" href="{{'http://dx.doi.org/'+item.attributes.doi}}" > <span class="custom-external"></span> {{item.attributes.title}}</a>
150
                        <span *ngIf="!item.attributes.doi" >{{item.attributes.title}}</span>
151
                        <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>
152

  
153
                      </div>
154
                      <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>
155
                      <div *ngIf="item.attributes.author && item.attributes.author.length > 0" class="uk-article-meta">Authors:
156
                         <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>
157

  
158
                     </li>
159
                 </ul>
160

  
110
                 <claim-results *ngIf="dataciteResults.length > 0 "  [(results)]=dataciteResults [(selectedResults)]=selectedResults > </claim-results>
161 111
               </div>
162 112
            </div>
163 113
          </div>
......
173 123
                </div>
174 124
              </div>
175 125
              <div >
176
                <ul *ngIf="openaireData.length > 0 "  class="uk-list uk-list-divider">
177
                   <li *ngFor=" let result of openaireData " [class]="(isSelected(result.id))?'uk-block-muted':''">
178
                    <div >
179
                     <a *ngIf="result['title'].url" target="_blank" [href]="result['title'].url" >{{result['title'].name}}</a>
180
                     <span *ngIf="!result['title'].url" >{{result['title'].name}}</span>
181

  
182

  
183
                     <a class="uk-button-default uk-align-right" *ngIf="!isSelected(result.id)"
184
                     (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>
185
                       <rect x="1" y="9" width="17" height="1"></rect></svg></a>
186
                   </div>
187
                    <span  *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span *ngIf="(result.year)" class="uk-article-meta">({{result.year}})</span>
188
                    <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>
189

  
190

  
191
                  </li>
192
              </ul>
126
              <claim-results *ngIf="openaireData.length > 0 "  [(results)]=openaireData [(selectedResults)]=selectedResults > </claim-results>
193 127
             </div>
194 128
           </div>
195 129
      </div>
......
205 139
            </div>
206 140
          </div>
207 141
          <div >
208
            <ul *ngIf="openaireSoftware.length > 0 "  class="uk-list uk-list-divider">
209
               <li *ngFor=" let result of openaireSoftware " [class]="(isSelected(result.id))?'uk-block-muted':''">
210
                <div >
211
                 <a *ngIf="result['title'].url" target="_blank" [href]="result['title'].url" >{{result['title'].name}}</a>
212
                 <span *ngIf="!result['title'].url" >{{result['title'].name}}</span>
213 142

  
214

  
215
                 <a class="uk-button-default uk-align-right" *ngIf="!isSelected(result.id)"
216
                 (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>
217
                   <rect x="1" y="9" width="17" height="1"></rect></svg></a>
218
               </div>
219
                <span  *ngIf="result.publisher" class="uk-article-meta">Publisher: {{result.publisher}}</span><span *ngIf="(result.year)" class="uk-article-meta">({{result.year}})</span>
220
                <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>
221

  
222
              </li>
223
          </ul>
143
          <claim-results *ngIf="openaireSoftware.length > 0 "  [(results)]=openaireSoftware [(selectedResults)]=selectedResults > </claim-results>
224 144
         </div>
225 145
       </div>
226 146
  </div>

Also available in: Unified diff