Guest User

Untitled

a guest
Mar 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.95 KB | None | 0 0
  1. import { Component, OnInit } from '@angular/core';
  2. import { UserService } from '../../services/user.service';
  3. import { Observable } from 'rxjs/Observable';
  4. import 'rxjs/add/observable/of';
  5. import {DataSource} from '@angular/cdk/collections';
  6. import { User } from '../../models/user.model';
  7. import {SelectionModel} from '@angular/cdk/collections';
  8.  
  9. @Component({
  10. selector: 'usertable',
  11. templateUrl: './usertable.component.html',
  12. styleUrls: ['./usertable.component.css']
  13. })
  14. export class UsertableComponent implements OnInit {
  15. dataSource = new UserDataSource(this.userService);
  16. displayedColumns = ['select', 'cl1', 'cl2', 'cl3', 'cl4'];
  17. constructor(private userService: UserService) { }
  18. selection = new SelectionModel<Element>(true, []);
  19. ngOnInit() {
  20. }
  21.  
  22.  
  23. /** Whether the number of selected elements matches the total number of rows. */
  24.  
  25. isAllSelected() {
  26. const numSelected = this.selection.selected.length;
  27. const numRows = this.dataSource.data.length;
  28. return numSelected === numRows;
  29. }
  30.  
  31. /** Selects all rows if they are not all selected; otherwise clear selection. */
  32.  
  33. masterToggle() {
  34. this.isAllSelected() ?
  35. this.selection.clear() :
  36. this.dataSource.data.forEach(row => this.selection.select(row));
  37. }
  38. }
  39.  
  40. export class UserDataSource extends DataSource<any> {
  41. constructor(private userService: UserService) {
  42. super();
  43. }
  44. connect(): Observable<User[]> {
  45. return this.userService.getUser();
  46. }
  47. disconnect() {}
  48. }
  49.  
  50. <ng-container matColumnDef="select">
  51. <mat-header-cell *matHeaderCellDef>
  52. <mat-checkbox class="materialfix" (change)="$event ? masterToggle() : null"
  53. [checked]="selection.hasValue() && isAllSelected()"
  54. [indeterminate]="selection.hasValue() && !isAllSelected()">
  55. </mat-checkbox>
  56. </mat-header-cell>
  57. <mat-cell *matCellDef="let row">
  58. <mat-checkbox (click)="$event.stopPropagation()"
  59. (change)="$event ? selection.toggle(row) : null"
  60. [checked]="selection.isSelected(row)">
  61. </mat-checkbox>
  62. </mat-cell>
  63. </ng-container>
  64.  
  65. <ng-container matColumnDef="cl1">
  66. <mat-header-cell class="fontChange" *matHeaderCellDef mat-sort-header> Cl1</mat-header-cell>
  67. <mat-cell *matCellDef="let element"> {{element.cl1}} </mat-cell>
  68. </ng-container>
  69.  
  70.  
  71. <ng-container matColumnDef="cl2">
  72. <mat-header-cell class="fontChange" *matHeaderCellDef mat-sort-header> cl2</mat-header-cell>
  73. <mat-cell *matCellDef="let element"> {{element.cl2}} </mat-cell>
  74. </ng-container>
  75.  
  76.  
  77. <ng-container matColumnDef="cl3">
  78. <mat-header-cell class="fontChange" *matHeaderCellDef mat-sort-header> cl3</mat-header-cell>
  79. <mat-cell *matCellDef="let element"> {{element.cl3}} </mat-cell>
  80. </ng-container>
  81.  
  82.  
  83. <ng-container matColumnDef="cl4">
  84. <mat-header-cell class="fontChange" *matHeaderCellDef mat-sort-header> cl4 </mat-header-cell>
  85. <mat-cell *matCellDef="let element"> {{element.cl4| date: 'yyyy-MM-dd '}} </mat-cell>
  86. </ng-container>
  87.  
  88. <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
  89. <mat-row *matRowDef="let row; columns: displayedColumns;"
  90. (click)="selection.toggle(row)">
  91. </mat-row>
  92. </mat-table>
  93.  
  94. export class UsertableComponent implements OnInit {
  95. dataSource = new MatTableDataSource();
  96. displayedColumns = ['select', 'cl1', 'cl2', 'cl3', 'cl4'];
  97. constructor(private userService: UserService) { }
  98. selection = new SelectionModel<User>(true, []);
  99. ngOnInit() {
  100. this.userService.getUser().subscribe(users => {
  101. this.dataSource.data = users;
  102. });
  103. }
  104. ....
Add Comment
Please, Sign In to add comment