Project

General

Profile

1
import {Component, Input} from '@angular/core';
2

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

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

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

    
31
export class OrganizationsTabComponent {
32

    
33
    @Input() organizations: {"name": string, "id": string}[];
34
    public organizationsPage: number = 1;
35
    public pageSize: number = 10;
36

    
37
    constructor () {}
38

    
39
    ngOnInit() {}
40

    
41
    ngOnDestroy() {}
42

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

    
51
    updateOrganizationsPage($event) {
52
      this.organizationsPage = $event.value;
53
    }
54
}
(8-8/12)