import { Component, OnInit } from '@angular/core'; import {AuthService} from '../service/auth.service'; import {HttpClient} from '@angular/common/http'; import {RewardByUserModel} from '../models/reward-by-user.model'; import {DataStateChangeEvent, GridDataResult,} from '@progress/kendo-angular-grid'; import {State, process} from '@progress/kendo-data-query'; @Component({ selector: 'app-list-all-rewards', templateUrl: './list-all-rewards.component.html', styleUrls: ['./list-all-rewards.component.scss'] }) export class ListAllRewardsComponent implements OnInit { public gridData: RewardByUserModel[] = [] ; public gridView: GridDataResult; public state: State = { skip: 0, take: 20 }; public loading = true; constructor(private auth: AuthService, private http: HttpClient) { } ngOnInit(): void { this.loadInitRewardGrid(); } public loadInitRewardGrid(): void { this.loading = true; this.gridData = []; this.http.get(this.auth.getUrl('user-reward/')).subscribe( rsp => { this.loading = false; rsp.forEach(v => { this.gridData.push(new RewardByUserModel(v)); }); this.loadRewards(); } ); } private loadRewards(): void { this.gridView = process(this.gridData, this.state); } public dataStateChange(state: DataStateChangeEvent): void { this.state = state; this.loadRewards(); } private photoURL(peopleId: any): string { const url = this.auth.getUrl('avatar/') + peopleId; return 'url("' + url + '")'; } }