Project

General

Profile

1
import {Component, Input} from '@angular/core';
2
import {ClaimEntity} from '../../claim-utils/claimEntities.class';
3
import {StringUtils} from "../../../utils/string-utils.class";
4

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

    
35

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

    
43
  ngOnInit() {
44
  }
45

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

    
54
  addStringToNumber(str: string, num: number) {
55
    return (+str) + num;
56
  }
57

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

    
70
  // getEmbargoEndDateMessage(result: ClaimEntity) {
71
  //   for (var message of result.warningMessages) {
72
  //     if (message.type == "embargoEndDate") {
73
  //       return "Embargo end date must be later than published date";
74
  //     }
75
  //   }
76
  //   return null;
77
  // }
78

    
79
}
(3-3/14)