Project

General

Profile

1
<div class="uk-grid">
2
  <div class="uk-width-expand">
3
    <!-- Sources -->
4
    <div>
5
      <h5 class=" uk-margin uk-h5 uk-text-primary"
6
          (click)="showSources=!showSources; showLinksTo=!showSources">
7
        Sources ({{sources.length | number}})
8
        <span *ngIf="!showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
9
                                                        xmlns="http://www.w3.org/2000/svg" icon="chevron-left"
10
                                                        ratio="1"><polyline fill="none" stroke="#000"
11
                                                                                  stroke-width="1.03"
12
                                                                                  points="13 16 7 10 13 4"></polyline></svg></span>
13
        <span *ngIf="showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
14
                                                       xmlns="http://www.w3.org/2000/svg" icon="chevron-down"
15
                                                       ratio="1"><polyline fill="none" stroke="#000"
16
                                                                                 stroke-width="1.03"
17
                                                                                 points="16 7 10 13 4 7"></polyline></svg></span>
18
      </h5>
19
      <!--      <div class="linksbaskettitles  uk-padding-small"-->
20
      <!--           (click)="showSources=!showSources; showLinksTo=!showSources">-->
21
      <!--        <div class="uk-h6 uk-margin-remove portal-color">-->
22
      <!--          Sources ({{(sources.length) | number}})-->
23
      <!--          <span *ngIf="!showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"-->
24
      <!--                                                                xmlns="http://www.w3.org/2000/svg" icon="chevron-left"-->
25
      <!--                                                                ratio="1"><polyline fill="none" stroke="#000"-->
26
      <!--                                                                                    stroke-width="1.03"-->
27
      <!--                                                                                    points="13 16 7 10 13 4"></polyline></svg></span>-->
28
      <!--          <span *ngIf="showSources" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"-->
29
      <!--                                                               xmlns="http://www.w3.org/2000/svg" icon="chevron-down"-->
30
      <!--                                                               ratio="1"><polyline fill="none" stroke="#000"-->
31
      <!--                                                                                   stroke-width="1.03"-->
32
      <!--                                                                                   points="16 7 10 13 4 7"></polyline></svg></span>-->
33
      <!--        </div>-->
34
      <!--      </div>-->
35
      <ul *ngIf="sources.length > 0 && showSources" class="uk-list">
36
        <li *ngFor=" let entity of sources "
37
            [class]="(entity.warningMessages && entity.warningMessages.length > 0)?'uk-alert warningBorder':'uk-alert '">
38
          <div class="uk-text-muted">
39
            {{(!entity.result) ? entity.type : ((entity.result && entity.result.source == 'openaire') ? entity.type : (entity.result && entity.result.source + ' result'))}}
40
          </div>
41
          <div class="uk-grid">
42
            <div class="uk-width-expand">
43
                <span class="uk-text-bold">
44
                 <a *ngIf="entity.result && entity.result.url" target="_blank" class="uk-link"
45
                    [href]="entity.result.url">{{entity.title ? entity.title : '[No title available]'}}</a>
46
                 <span
47
                   *ngIf="entity.result && !entity.result.url">{{entity.title ? entity.title : '[No title available]'}}</span>
48
                 <span
49
                   *ngIf="entity.type=='project' && entity.project"> {{(entity.project.acronym ? entity.project.acronym : entity.title)}}</span>
50
                 <span *ngIf="entity.type=='community' && entity.context">
51
                   <span *ngIf=" entity.context.community != entity.context.concept.label">
52
                   {{entity.context.community }} > {{entity.context.category}} >
53
                  </span>
54
                   <span> {{entity.context.concept.label}}</span>
55
                  </span>
56
                </span>
57
            </div>
58
            <div class="uk-padding-remove-left">
59
              <a class="uk-button-default uk-align-right"
60
                 (click)="remove(entity, false)" class="uk-icon-button icon-button-small">
61
               <span class="uk-icon">
62
                 <svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close"
63
                      ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path
64
                   fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
65
               </span>
66
              </a>
67
            </div>
68
          </div>
69
          <div class="uk-grid uk-margin-remove uk-text-small">
70
            <div class="uk-width-1-2 uk-padding-remove-left">
71
              <span *ngIf="entity.result && entity.result.publisher!=null"><span
72
                class="uk-text-muted">Publisher</span> {{entity.result.publisher}}</span>
73
              <span *ngIf="entity.result && entity.result.journal!=null"><span
74
                class="uk-text-muted">Journal</span> {{entity.result.journal}}</span>
75
            </div>
76
            <div class="uk-width-1-2">
77
              <span *ngIf="entity.result && entity.result.date"><span class="uk-text-muted">Published in </span> <span
78
                [class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{entity.result.date}}</span></span>
79
              <div
80
                [class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{getProjectDurationMessage(entity)}}
81
              </div>
82
            </div>
83
          </div>
84

    
85
          <div *ngIf="entity.result && entity.result.authors && entity.result.authors.length >0 " class="uk-text-small">
86
            <span class="uk-text-muted">Authors </span> <span
87
            *ngFor="let author of entity.result.authors.slice(0,10) let i = index">{{author}}{{(i < (entity.result.authors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.authors.slice(0, 10).length - 1 && entity.result.authors.length > 10) ? "..." : ""}}</span>
88
          </div>
89
          <div *ngIf="entity.result && entity.result.editors && entity.result.editors.length > 0" class="uk-text-small">
90
            <span class="uk-text-muted">Editors </span><span
91
            *ngFor="let author of entity.result.editors.slice(0,10)  let i = index">{{author}}{{(i < (entity.result.editors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.editors.slice(0, 10).length - 1 && entity.result.editors.length > 10) ? "..." : ""}}</span>
92
          </div>
93
          <div *ngIf="entity.type == 'project' && entity.project" class="uk-grid uk-margin-remove-top uk-text-small">
94
            <div class="uk-width-1-2">
95
              <div *ngIf="entity.project.funderName">
96
                <span class="uk-text-muted">Funder </span>{{entity.project.funderName}}
97
              </div>
98
              <!-- <div *ngIf="entity.organization">
99
                <span class="uk-text-muted">Organization </span>{{entity.organization}}
100
              </div> -->
101
            </div>
102
            <div class="uk-width-1-2">
103
              <div *ngIf="entity.project.code">
104
                <span class="uk-text-muted">GrandId </span>{{entity.project.code}}
105
              </div>
106
              <div *ngIf=" (entity.project.startDate || entity.project.endDate)">
107
                <span
108
                  class="uk-text-muted">Duration </span>{{(entity.project.startDate) ? entity.project.startDate : 'unknown'}}{{'-' + ((entity.project.endDate) ? entity.project.endDate : 'unknown')}}
109
              </div>
110
            </div>
111

    
112
          </div>
113
          <div *ngIf="entity.result && entity.result.source && entity.result.source!='openaire' "
114
               class="uk-grid uk-text-small">
115
            <div class="uk-width-1-2">
116
              <span class="uk-text-muted">Type </span>
117
              <select [(ngModel)]="entity.type" name="{{'select_type_'+entity.id}}" class="uk-select uk-width-small">
118
                <option [value]="'publication'" (click)="onTypeChanged('publication',entity, false)">Publication
119
                </option>
120
                <option [value]="'dataset'" (click)="onTypeChanged('dataset',entity, false)">Research data</option>
121
                <option [value]="'software'" (click)="onTypeChanged('software',entity, false)">Software</option>
122
                <option [value]="'other'" (click)="onTypeChanged('other',entity, false)">Other research product</option>
123
              </select>
124
            </div>
125
            <div class="uk-width-1-2 uk-grid">
126
              <span class="uk-text-muted uk-margin-small-top">Access mode</span>
127
              <select [(ngModel)]="entity.result.accessRights" name="{{'select_rights_'+entity.id}}"
128
                      class="uk-select uk-width-small">
129
                <option *ngFor="let type of accessTypes" [value]="type"
130
                        (click)="accessRightsTypeChanged(type,entity, false)">{{type}}</option>
131
              </select>
132
              <my-date-picker *ngIf="entity.result.accessRights== 'EMBARGO'" name="{{'date'+entity.id}}"
133
                              [options]="myDatePickerOptions"
134
                              [(ngModel)]="nextDate" (dateChanged)="onDateChanged($event,entity, false)"
135
                              class="uk-width-expand  uk-padding-remove-left"></my-date-picker>
136
              <div *ngIf="entity.result.accessRights== 'EMBARGO'"
137
                   [class]="(getEmbargoEndDateMessage(entity)?'uk-text-warning':'')">{{getEmbargoEndDateMessage(entity)}}
138
              </div>
139
            </div>
140
          </div>
141

    
142

    
143
        </li>
144
      </ul>
145
    </div>
146
    <!--     Results-->
147
    <div>
148
      <h5 class=" uk-margin uk-h5 uk-text-primary"
149
          (click)="showLinksTo=!showLinksTo; showSources=!showLinksTo ">
150
        Link To ({{results.length | number}})
151

    
152
        <span *ngIf="!showLinksTo" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
153
                                                        xmlns="http://www.w3.org/2000/svg"
154
                                                        icon="chevron-left" ratio="1"><polyline
155
          fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span>
156
        <span *ngIf="showLinksTo" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
157
                                                       xmlns="http://www.w3.org/2000/svg"
158
                                                       icon="chevron-down" ratio="1"><polyline
159
          fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg></span>
160

    
161
      </h5>
162
      <ul *ngIf="results.length > 0  && showLinksTo" class="uk-list uk-list-divider">
163
        <li *ngFor=" let entity of results "
164
            [class]="(entity.warningMessages && entity.warningMessages.length > 0)?'uk-alert warningBorder':'uk-alert '">
165
          <div class="uk-text-muted">
166
            {{(!entity.result) ? entity.type : ((entity.result && entity.result.source == 'openaire') ? entity.type : (entity.result && entity.result.source + ' result'))}}
167
          </div>
168
          <div class="uk-grid">
169
            <div class="uk-width-expand">
170
                    <span class="uk-text-bold">
171
                     <a *ngIf="entity.result && entity.result.url" target="_blank" [href]="entity.result.url"
172
                        class="uk-link">{{entity.title ? entity.title : '[No title available]'}}</a>
173
                     <span
174
                       *ngIf="(entity.result && !entity.result.url)">{{entity.title ? entity.title : '[No title available]'}}</span>
175
                     <span
176
                       *ngIf="entity.type=='project' && entity.project"> {{(entity.project.acronym ? entity.project.acronym : entity.title)}}</span>
177
                     <span *ngIf="entity.type=='community' && entity.context">
178
                       <span *ngIf=" entity.context.community != entity.context.concept.label">
179
                       {{entity.context.community }} > {{entity.context.category}} >
180
                      </span>
181
                       <span> {{entity.context.concept.label}}</span>
182
                      </span>
183
                    </span>
184
            </div>
185
            <div class="uk-padding-remove-left">
186
              <a class="uk-button-default uk-align-right"
187
                 (click)="remove(entity, false)" class="uk-icon-button icon-button-small">
188
                   <span class="uk-icon">
189
                     <svg width="16" height="16" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close"
190
                          ratio="0.8"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path
191
                       fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
192
                   </span>
193
              </a>
194
            </div>
195
          </div>
196
          <div class="uk-grid uk-margin-remove uk-text-small">
197
            <div class="uk-width-1-2 uk-padding-remove-left">
198
              <span *ngIf="entity.result && entity.result.publisher!=null"><span
199
                class="uk-text-muted">Publisher</span> {{entity.result.publisher}}</span>
200
              <span *ngIf="entity.result && entity.result.journal!=null"><span
201
                class="uk-text-muted">Journal</span> {{entity.result.journal}}</span>
202
            </div>
203
            <div class="uk-width-1-2">
204
              <span *ngIf="entity.result && entity.result.date"><span class="uk-text-muted">Published in </span> <span
205
                [class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{entity.result.date}}</span></span>
206
              <div
207
                [class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{getProjectDurationMessage(entity)}}
208
              </div>
209
            </div>
210
          </div>
211
          <!---->
212
          <div *ngIf="entity.result && entity.result.authors && entity.result.authors.length >0 " class="uk-text-small">
213
            <span class="uk-text-muted">Authors </span> <span
214
            *ngFor="let author of entity.result.authors.slice(0,10) let i = index">{{author}}{{(i < (entity.result.authors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.authors.slice(0, 10).length - 1 && entity.result.authors.length > 10) ? "..." : ""}}</span>
215
          </div>
216
          <div *ngIf="entity.result && entity.result.editors && entity.result.editors.length > 0" class="uk-text-small">
217
            <span class="uk-text-muted">Editors </span><span
218
            *ngFor="let author of entity.result.editors.slice(0,10)  let i = index">{{author}}{{(i < (entity.result.editors.slice(0, 10).length - 1)) ? "; " : ""}}{{(i == entity.result.editors.slice(0, 10).length - 1 && entity.result.editors.length > 10) ? "..." : ""}}</span>
219
          </div>
220
          <div *ngIf="entity.type == 'project' && entity.project" class="uk-grid uk-margin-remove-top uk-text-small">
221
            <div class="uk-width-1-2">
222
              <div *ngIf="entity.project.funderName">
223
                <span class="uk-text-muted">Funder </span>{{entity.project.funderName}}
224
              </div>
225
              <!-- <div *ngIf="entity.organization">
226
                <span class="uk-text-muted">Organization </span>{{entity.organization}}
227
              </div> -->
228
            </div>
229
            <div class="uk-width-1-2">
230
              <div *ngIf="entity.project.code">
231
                <span class="uk-text-muted">GrandId </span>{{entity.project.code}}
232
              </div>
233
              <div *ngIf=" (entity.project.startDate || entity.project.endDate)">
234
                <span
235
                  class="uk-text-muted">Duration </span>{{(entity.project.startDate) ? entity.project.startDate : 'unknown'}}{{'-' + ((entity.project.endDate) ? entity.project.endDate : 'unknown')}}
236
              </div>
237
            </div>
238
            <!---->
239
          </div>
240
          <div *ngIf="entity.result && entity.result.source && entity.result.source!='openaire' "
241
               class="uk-grid uk-text-small">
242
            <div class="uk-width-1-2">
243
              <span class="uk-text-muted">Type </span>
244
              <select [(ngModel)]="entity.type" name="{{'select_type_'+entity.id}}" class="uk-select uk-width-small">
245
                <option [value]="'publication'" (click)="onTypeChanged('publication',entity, false)">Publication
246
                </option>
247
                <option [value]="'dataset'" (click)="onTypeChanged('dataset',entity, false)">Research data</option>
248
                <option [value]="'software'" (click)="onTypeChanged('software',entity, false)">Software</option>
249
                <option [value]="'other'" (click)="onTypeChanged('other',entity, false)">Other research product</option>
250
              </select>
251
            </div>
252
            <div class="uk-width-1-2 uk-grid">
253
              <span class="uk-text-muted uk-margin-small-top">Access mode</span>
254
              <select [(ngModel)]="entity.result.accessRights" name="{{'select_rights_'+entity.id}}"
255
                      class="uk-select uk-width-small">
256
                <option *ngFor="let type of accessTypes" [value]="type"
257
                        (click)="accessRightsTypeChanged(type,entity, false)">{{type}}</option>
258
              </select>
259
              <my-date-picker *ngIf="entity.result.accessRights== 'EMBARGO'" name="{{'date'+entity.id}}"
260
                              [options]="myDatePickerOptions"
261
                              [(ngModel)]="nextDate" (dateChanged)="onDateChanged($event,entity, false)"
262
                              class="uk-width-expand  uk-padding-remove-left"></my-date-picker>
263
              <div *ngIf="entity.result.accessRights== 'EMBARGO'"
264
                   [class]="(getEmbargoEndDateMessage(entity)?'uk-text-warning':'')">{{getEmbargoEndDateMessage(entity)}}
265
              </div>
266
            </div>
267
          </div>
268

    
269

    
270
        </li>
271
      </ul>
272
    </div>
273
  </div>
274
  <div class="uk-width-large">
275
    <!-- Errors and Warning -->
276
    <h5 *ngIf="errors.length > 0" class=" uk-margin uk-h5 uk-text-primary" (click)="showErrors=!showErrors ">
277
      Errors ({{errors.length | number}})
278
      <span *ngIf="!showErrors" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
279
                                                       xmlns="http://www.w3.org/2000/svg"
280
                                                       icon="chevron-left" ratio="1"><polyline
281
        fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span>
282
      <span *ngIf="showErrors" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
283
                                                      xmlns="http://www.w3.org/2000/svg"
284
                                                      icon="chevron-down" ratio="1"><polyline
285
        fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg></span>
286
    </h5>
287
    <div *ngIf="errors.length > 0 && showErrors">
288
      <div *ngFor=" let message of errors " class="uk-alert dangerBorder">
289
        {{message.type}}
290
      </div>
291
    </div>
292
    <h5 *ngIf="warnings.length > 0"
293
        class=" uk-margin uk-h5 uk-text-primary" (click)="showWarnings=!showWarnings "> Warnings ({{warnings.length | number}})
294
      <span *ngIf="!showWarnings" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
295
                                                      xmlns="http://www.w3.org/2000/svg"
296
                                                      icon="chevron-left" ratio="1"><polyline
297
        fill="none" stroke="#000" stroke-width="1.03" points="13 16 7 10 13 4"></polyline></svg></span>
298
      <span *ngIf="showWarnings" class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20"
299
                                                     xmlns="http://www.w3.org/2000/svg"
300
                                                     icon="chevron-down" ratio="1"><polyline
301
        fill="none" stroke="#000" stroke-width="1.03" points="16 7 10 13 4 7"></polyline></svg></span>
302
    </h5>
303

    
304
    <div *ngIf="warnings.length > 0 && showWarnings ">
305
      <div *ngFor=" let message of warnings " class="uk-alert warningBorder">
306
        <div *ngIf="message.type == 'embargoEndDate'">
307
          <div class="uk-text-warning uk-text-bold">
308
            Embargo date must be later than published date in
309
          </div>
310
          <div class="">
311
            {{message.result.title}}
312
          </div>
313
        </div>
314
        <div *ngIf="message.type == 'projectDuration'">
315
          <div class="uk-text-warning uk-text-bold">
316
            Published date must be in the project's date boundaries
317
            (from {{message.projectInfo.startDate}}{{(message.projectInfo.endDate) ? (' to ' + (addStringToNumber(message.projectInfo.endDate, 5))) : ''}}) in
318
          </div>
319
          <div class="">
320
            {{message.resultTitle}}
321
          </div>
322
          <div class="uk-text-muted uk-text-small">
323
            with link to
324
          </div>
325
          <div class="">
326
            {{message.projectInfo.title}}
327
          </div>
328
          <div><span class="uk-text-muted uk-text-small">
329
           Project boundaries: </span>({{message.projectInfo.startDate}}{{(message.projectInfo.endDate) ? (' - ' + (message.projectInfo.endDate) + ') +5 years') : ')'}}
330
          </div>
331
        </div>
332

    
333
      </div>
334
    </div>
335
  </div>
336

    
337
  <modal-alert (alertOutput)="confirmClose($event)">
338
  </modal-alert>
339
</div>
(1-1/10)