Project

General

Profile

1
import {Component, Input} from '@angular/core';
2
import {properties} from "../../../../environments/environment";
3

    
4
@Component({
5
    selector: 'organizationsTab',
6
    template: `
7
        <div *ngIf=" !organizations || organizations.length == 0" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">
8
            No organizations available
9
        </div>
10

    
11
        <div *ngIf="  organizations && organizations.length > 0">
12
            <div *ngIf="organizations.length > pageSize" class="uk-margin-bottom">
13
              {{organizations.length | number}} organizations, page {{organizationsPage | number}} of {{totalPages(organizations.length) | number}}
14
              <paging-no-load class="uk-float-right" [currentPage]="organizationsPage" [totalResults]="organizations.length" [size]="pageSize" (pageChange)="updateOrganizationsPage($event)"></paging-no-load>
15
            </div>
16

    
17
            <div *ngFor="let item of organizations.slice((organizationsPage-1)*pageSize, organizationsPage*pageSize)">
18
                <h4 *ngIf=" item != undefined && item['id'] != undefined">
19
                    <!--a href="{{item['url']}}"-->
20
                    <a [queryParams]="{organizationId: item.id}" routerLinkActive="router-link-active" [routerLink]="url">
21
                        <p>{{item['name']}}</p>
22
                    </a>
23
                </h4>
24
                <h4 *ngIf="item['id'] == undefined">
25
                    <p>{{item['name']}}</p>
26
                </h4>
27
            </div>
28
        </div>
29
    `
30
})
31

    
32
export class OrganizationsTabComponent {
33

    
34
    @Input() organizations: {"name": string, "id": string}[];
35
    public organizationsPage: number = 1;
36
    public pageSize: number = 10;
37
    public url = properties.searchLinkToDataProvider.split('?')[0];
38

    
39
    constructor () {}
40

    
41
    ngOnInit() {}
42

    
43
    ngOnDestroy() {}
44

    
45
    totalPages(totalResults: number): number {
46
      let totalPages:any = totalResults/this.pageSize;
47
      if(!(Number.isInteger(totalPages))) {
48
          totalPages = (parseInt(totalPages, this.pageSize) + 1);
49
      }
50
      return totalPages;
51
    }
52

    
53
    updateOrganizationsPage($event) {
54
      this.organizationsPage = $event.value;
55
    }
56
}
(7-7/13)