Project

General

Profile

1
import {Component, Input} from '@angular/core';
2
import {Router} from '@angular/router';
3
import {DomSanitizer} from '@angular/platform-browser';
4
//Usage Example <paging [currentPage]="page" [totalResults]="resultsNum"  [navigateTo]="Search" [term]="keyword"> </paging>
5

    
6
@Component({
7
  selector: 'paging',
8
  template: `
9
  <div *ngIf=" ( getTotalPages() > 0 ) && (getTotalPages() > 1) && ( 0 < currentPage &&  currentPage <= getTotalPages() ) " >
10
  <ul class="pagination pagination-sm">
11

    
12
  <li *ngIf=" currentPage  > 1" ><a [href]="onPage((1))" aria-label="Previous">
13
       <span aria-hidden="true">&laquo;</span></a></li>
14
  <!--<li *ngIf=" currentPage  > 1"><a [href]="onPage((currentPage -1))">\<</a></li>-->
15

    
16
   <li *ngIf=" currentPage -2 > 0"><a [href]="onPage((currentPage -2))">{{currentPage -2}}</a></li>
17
   <li *ngIf=" currentPage -1 > 0 "><a [href]="onPage((currentPage -1))">{{currentPage -1}}</a></li>
18
   <li class="active"><a >{{currentPage}}</a></li>
19
   <li *ngIf=" currentPage +1 <= getTotalPages() "><a [href]="onPage((currentPage +1))">{{currentPage +1}}</a></li>
20
   <li *ngIf=" currentPage +2 <= getTotalPages() "><a [href]="onPage((currentPage +2))">{{currentPage +2}}</a></li>
21
   <li *ngIf=" (currentPage -2 <= 0)&&(currentPage +3 <= getTotalPages()) "><a [href]="onPage((currentPage +3))">{{currentPage +3}}</a></li>
22
   <li *ngIf=" (currentPage -1 <= 0)&&(currentPage +4 <= getTotalPages()) "><a [href]="onPage((currentPage +4))">{{currentPage +4}}</a></li>
23

    
24
    <li *ngIf="getTotalPages()  > currentPage"><a [href]="onPage((getTotalPages()))" aria-label="Next">
25
        <span aria-hidden="true">&raquo;</span>
26
      </a></li>
27

    
28

    
29
 </ul>
30
  </div>
31
  `
32
})
33

    
34
export class PagingFormatter {
35
  @Input() currentPage: number = 1;
36
  @Input() size: number=10;
37
  @Input() totalResults: number = 10;
38
  @Input() baseUrl:string="";
39

    
40
  constructor ( private _router: Router, private sanitizer:DomSanitizer) {
41
   }
42

    
43
  ngOnInit() {
44

    
45
  }
46
  getTotalPages(){
47
    var i:number =parseInt(''+(this.totalResults/this.size));
48
     return (((this.totalResults/this.size) == i )? i :(i+1)) ;
49
  }
50

    
51
  onPage(pageNum: number){
52
    return this.sanitizer.bypassSecurityTrustUrl( this.baseUrl+((this.baseUrl.indexOf("?") > -1  )?'&':'?')+ "page=" + (pageNum));
53

    
54
  }
55
}
(6-6/13)