Project

General

Profile

1
import {Component, Input} from '@angular/core';
2
import {RouterHelper} from '../utils/routerHelper.class';
3
import {OpenaireProperties} from '../utils/properties/openaireProperties';
4
//import {PagingModule} from '../utils/paging.module';
5

    
6
@Component({
7
    selector: 'tabTable',
8
    template: `
9
        <div *ngIf="info && info.length > pageSize" class="uk-margin">
10
          {{info.length}} research results, page {{page}} of {{totalPages(info.length)}}
11
          <paging-no-load class="uk-float-right" [currentPage]="page" [totalResults]="info.length" [size]="pageSize" (pageChange)="updatePage($event)"></paging-no-load>
12
        </div>
13

    
14
        <table class="uk-table uk-table-striped">
15
            <thead>
16
                <tr>
17
                    <th>Title</th>
18
                    <th width="20%">Trust</th>
19
                </tr>
20
            </thead>
21
            <tbody>
22
                <tr *ngFor="let item of info.slice((page-1)*pageSize, page*pageSize)" class="{{item['class']}}">
23
                    <td *ngIf="item != undefined">
24
                        <!--span *ngIf="item['class'] == 'dataset'" class="glyphicon glyphicon-star" aria-hidden="true"-->
25
                        <img *ngIf="item['class'] == 'publication'" class= "entityIcon" src="assets/publication.png" alt="(Publication)">
26
                        <img *ngIf="item['class'] == 'dataset'" class= "entityIcon" src="assets/dataset.png" alt="(Dataset)">
27

    
28
                        <!--/span-->
29
                        <!--a *ngIf="item['url'] != '' && item['name'] != ''" href="{{item['url']}}"-->
30
                        <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'dataset'"
31
                            [queryParams]="{datasetId: item.id}" routerLinkActive="router-link-active" routerLink="/search/dataset">
32
                                {{item['name']}}
33
                        </a>
34

    
35
                        <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'publication'"
36
                            [queryParams]="{articleId: item.id}" routerLinkActive="router-link-active" routerLink="/search/publication">
37
                        <!--a *ngIf="item['url'] != '' && item['name'] != '' && item['class'] == 'publication'"
38
                            href="http://astero.di.uoa.gr:3000/search/publication?articleId={{item['id']}}"-->
39

    
40
                                {{item['name']}}
41
                        </a>
42

    
43
                        <p *ngIf="item['id'] == '' && item['name'] != ''">{{item['name']}}</p>
44
                        <span *ngIf="item['date'] != ''">
45
                            ({{item['date']}})
46
                        </span>
47
                    </td>
48
                    <td>
49
                        <div *ngIf="item['trust'] != ''"  title="{{item['trust']}}%" >
50
                            <div class="uk-text-center">{{item['trust']}}%</div>
51
                            <progress class="uk-progress uk-margin-remove" value="{{item['trust']}}" max="100"></progress>
52
                         </div>
53
                        <div *ngIf="item['trust'] == ''">
54
                            <p>No trust available</p>
55
                        </div>
56
                    </td>
57
                </tr>
58
            </tbody>
59
        </table>
60
    `
61

    
62
    })
63

    
64
export class TabTableComponent {
65
    @Input() info: { "name": string, "url": string, "date": string, "trust": number}[];//Map<string, string[]>;
66

    
67
    public routerHelper:RouterHelper = new RouterHelper();
68
    public searchLinkToPublication: string;
69
    public searchLinkToDataset: string;
70

    
71
    public page: number = 1;
72
    public pageSize: number = 10;
73

    
74
    constructor () {
75
    }
76

    
77
    ngOnInit() {
78
        this.searchLinkToPublication = OpenaireProperties.getsearchLinkToPublication();
79
        this.searchLinkToDataset = OpenaireProperties.getsearchLinkToDataset();
80
    }
81

    
82
    totalPages(totalResults: number): number {
83
      let totalPages:any = totalResults/this.pageSize;
84
      if(!(Number.isInteger(totalPages))) {
85
          totalPages = (parseInt(totalPages, this.pageSize) + 1);
86
      }
87
      return totalPages;
88
    }
89

    
90
    updatePage($event) {
91
      this.page = $event.value;
92
    }
93
}
(13-13/13)