Project

General

Profile

1
import {Component, Input, Output, EventEmitter} from '@angular/core';
2
import {Observable}       from 'rxjs';
3
import {ErrorCodes} from '../../utils/properties/errorCodes';
4

    
5
@Component({
6
    selector: 'search-paging',
7
    template: `
8
    <div class= "paging-hr searchPaging uk-margin-small-bottom"
9
         *ngIf="(results && searchUtils.totalResults > 0) || (!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING)">
10
      <div class="uk-panel uk-margin-small-top uk-grid  uk-flex uk-flex-middle">
11
        <div class="uk-width-1-1@s uk-width-1-2@m  uk-text-uppercase" 
12
             *ngIf="results && searchUtils.totalResults > 0">
13
          {{searchUtils.totalResults|number}}
14
          <span class="uk-text-muted uk-text-uppercase"> {{type}}, page </span>
15
          {{searchUtils.page | number}}
16
          <span class="uk-text-muted uk-text-uppercase"> of </span>
17
          {{(totalPages(searchUtils.totalResults)|number)}}
18
        </div>
19
        <div class="uk-width-1-1@s uk-width-1-2@m" 
20
             *ngIf="!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING">
21
          {{oldTotalResults|number}}
22
          <span class="uk-text-muted uk-text-uppercase"> {{type}}, page </span>
23
          {{searchUtils.page | number}}
24
          <span class="uk-text-muted uk-text-uppercase"> of </span>
25
          {{(totalPages(oldTotalResults)|number)}}
26
        </div>
27
        <!--div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="results && searchUtils.totalResults > 0">
28
          {{searchUtils.totalResults|number}} {{type}}, page {{searchUtils.page | number}} of {{(totalPages(searchUtils.totalResults)|number)}}
29
        </div>
30
        <div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING">
31
          {{oldTotalResults|number}} {{type}}, page {{searchUtils.page | number}} of {{(totalPages(oldTotalResults)|number)}}
32
        </div-->
33
        <div class="float-children-right-at-medium margin-small-top-at-small uk-width-expand" *ngIf="results && searchUtils.totalResults > searchUtils.size">
34
          <paging [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults"  [baseUrl]="baseUrl" [size]="searchUtils.size"  [parameterNames] = "parameterNames" [parameterValues] = "parameterValues" > </paging>
35
        </div>
36
        <div class="float-children-right-at-medium margin-small-top-at-small uk-width-expand" *ngIf="!loadPaging && oldTotalResults > searchUtils.size && searchUtils.status == errorCodes.LOADING">
37
          <paging [currentPage]="searchUtils.page" [totalResults]="oldTotalResults"  [baseUrl]="baseUrl" [size]="searchUtils.size"  [parameterNames] = "parameterNames" [parameterValues] = "parameterValues" > </paging>
38
        </div>
39
      </div>
40
    </div>
41
    `
42
})
43

    
44
export class SearchPagingComponent {
45
    @Input() searchUtils;
46
    @Input() results;
47
    @Input() baseUrl;
48
    @Input() type;
49
    @Input() parameterNames:string[];
50
    @Input() parameterValues:string[];
51

    
52
    @Input() loadPaging: boolean = true;
53
    @Input() oldTotalResults: number = 0;
54

    
55
    public totalResults: number = 0;
56
    public errorCodes:ErrorCodes = new ErrorCodes();
57

    
58
    // @Input() totalResults:number = 0;
59
    constructor () {}
60

    
61
    ngOnInit() {
62
      // this.totalResults = this.searchUtils.totalResults;
63
      // if(!this.loadPaging && this.totalResults == 0) {
64
      //   this.totalResults = this.oldTotalResults;
65
      // }
66
    }
67

    
68
    totalPages(totalResults: number): number {
69
        let totalPages:any = totalResults/(this.searchUtils.size);
70
        if(!(Number.isInteger(totalPages))) {
71
            totalPages = (parseInt(totalPages, 10) + 1);
72
        }
73
        return totalPages;
74
    }
75

    
76

    
77
}
(43-43/55)