Project

General

Profile

1
import {Component, Input} from '@angular/core';
2
import {ClaimEntity} from '../../claim-utils/claimHelper.class';
3

    
4
@Component({
5
  selector: 'claim-result-metadata',
6
  template:
7
      `
8
    <div *ngIf="entity.result">
9
      <div *ngIf="entity.result.authors && entity.result.authors.length >0 " class="uk-text-small">
10
        <span class="uk-text-muted">Authors </span>
11
        {{sliceArray(entity.result.authors)}}
12
      </div>
13
      <div *ngIf="!shortVersion && entity.result.editors&& entity.result.editors.length > 0" class="uk-text-small">
14
        <span class="uk-text-muted">Editors </span>
15
        {{sliceArray(entity.result.editors)}}
16
      </div>
17
      <div *ngIf="!shortVersion" class="uk-grid uk-margin-remove uk-text-small">
18
        <div class="uk-width-1-2 uk-padding-remove-left">
19
              <span *ngIf="entity.result.publisher!=null"><span
20
                class="uk-text-muted">Publisher</span> {{entity.result.publisher}}</span>
21
          <span *ngIf="entity.result.journal!=null"><span
22
            class="uk-text-muted">Journal</span> {{entity.result.journal}}</span>
23
        </div>
24
        <div class="uk-width-1-2">
25
              <span *ngIf="entity.result.date"><span class="uk-text-muted">Published in </span> <span
26
                [class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{entity.result.date}}</span></span>
27
          <div [class]="(getProjectDurationMessage(entity)?'uk-text-warning':'')">{{getProjectDurationMessage(entity)}}
28
          </div>
29
        </div>
30
      </div>
31
    </div>
32
  `
33

    
34

    
35
})
36
export class ClaimEntityResultMetadataComponent {
37
  @Input() entity: ClaimEntity;
38
  @Input() slice: boolean = false;
39
  @Input() sliceSize: number = 45;
40
  @Input() shortVersion: boolean = false;
41

    
42
  ngOnInit() {
43
  }
44

    
45
  sliceArray(array): string {
46
    if (this.slice) {
47
      let sliced = array.slice(0, this.sliceSize);
48
      return sliced.join("; ") + (array.length>this.sliceSize ? "...":"");
49
    }
50
    return array.join("; ");
51
  }
52

    
53
  getProjectDurationMessage(result: ClaimEntity) {
54
    if(!result.warningMessages){
55
      return null;
56
    }
57
    for (let message of result.warningMessages) {
58
      if (message.type == "projectDuration") {
59
        return "Should be from " + message.projectInfo.startDate + ((message.projectInfo.endDate) ? (" to " + ((5 + +message.projectInfo.endDate))) : "");
60
      }
61
    }
62
    return null;
63
  }
64

    
65

    
66
}
(3-3/14)