import { AuthServiceService } from './../../../shared/auth-service.service'; import { NgxSpinnerService } from 'ngx-spinner'; import { ActivatedRoute, Router, Params } from '@angular/router'; import { DashboardService } from './../../../shared/dashboard.service'; import { HttpClient } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; import { Modal } from 'ngx-modialog/plugins/bootstrap'; import { UserService } from '../../../shared/user.service'; import { ToastrService } from 'ngx-toastr'; @Component({ selector: 'app-definition-list', templateUrl: './definition-list.component.html', styleUrls: ['./definition-list.component.css'] }) export class DefinitionListComponent implements OnInit { constructor(private http: HttpClient, private route: ActivatedRoute, private router: Router, private modal: Modal, private userSer: UserService, private spinner: NgxSpinnerService, private authSer: AuthServiceService, private toastr: ToastrService, private dashboardSer: DashboardService) { } dataList = []; pages= []; pageId: number; Ids = []; count: number; perPagePagenation: number; currentPage:number = 1; filtterStatus = 'all'; selectedAll: any; userLoginId:number; serviceId:number; dataTableNumber: number = 5; absorpationListIds = []; dataListIds = []; ngOnInit() { //init values of permisions this.authSer.showAddBtn = false; this.authSer.showDeleteBtn = false; this.authSer.showEditBtn = false; this.authSer.showPermissionsBtn = false; //show / hide notification search in header this.authSer.notificationLogin = true; this.authSer.showSearchHeader = false; this.authSer.showHeaderLogin = false; this.authSer.showHeaderDashBoard = true; this.authSer.showDashboardHeader = true; this.authSer.internalHeader = false; //get the page id param and store it in local storage to active status this.route.params.subscribe( (parmas: Params) => { this.pageId = +parmas['listPageId']; localStorage.setItem('pageIdActive', parmas['listPageId']); } ); this.route.parent.params.subscribe( (params:Params) => { this.userLoginId = params['userID']; this.serviceId = params['serviceID']; this.userSer.getPagesPermetiotns(this.userLoginId, this.serviceId).subscribe( (responce) => { console.log(responce); this.pages = responce['pages']; for(let i = 0; i< this.pages.length; i++) { if(this.pages[i].id == 51) { if(this.pages[i]['permissions'][0].name == 'define_categories') { this.authSer.showAddBtn = true; this.authSer.showEditBtn = true; this.authSer.showDeleteBtn = true; } else { console.log('no permissions'); } } else { console.log('no events'); } } this.spinner.hide(); }, (error) => {console.log(error)} ); } ); this.dashboardSer.getListData(this.pageId, this.currentPage ,this.dataTableNumber).subscribe( (response) => { console.log(response); this.dataList = response['categories']; this.count = response['count']; this.perPagePagenation = response['per_page']; }, (error) => { console.log(error); } ); } //make all checkbox of user checked selectAll() { for (var i = 0; i < this.absorpationListIds.length; i++) { this.absorpationListIds[i].selected = this.selectedAll; } } checkIfAllSelected() { this.selectedAll = this.absorpationListIds.every(function(item: any) { return item.selected == true; }); } //filtter function filtterFunc(data) { this.dataList =[]; this.absorpationListIds = []; console.log(data.target.value); const dataSearch = data.target.value; this.currentPage = 1; console.log('search curent page', this.currentPage); console.log('search page id', this.pageId); this.dashboardSer.getDataUSerSearchBar(dataSearch, this.pageId, this.currentPage, this.dataTableNumber).subscribe( (responce) => { console.log(responce); this.dataList = responce['categories']; this.count = responce['count']; this.perPagePagenation = responce['per_page']; console.log('filtter count', this.count); console.log('filtter perPagePAgenation', this.perPagePagenation); }, (error) => { console.log(error) } ); }; onPageChange(pagenationNumber) { this.spinner.show(); this.dataList = []; this.currentPage = pagenationNumber; this.absorpationListIds = []; console.log(pagenationNumber); console.log(this.pageId); this.dashboardSer.getListData(this.pageId, pagenationNumber, this.dataTableNumber).subscribe( (responce) => { console.log(responce); this.dataList = responce['categories']; this.count = responce['count']; this.perPagePagenation = responce['per_page']; console.log('FFFFFF',this.absorpationListIds); this.spinner.hide(); }, (error) => { console.log(error); this.spinner.hide(); } ); } //determine the list count from select element onGetValue(event) { this.spinner.show(); this.absorpationListIds = []; this.dataTableNumber = event.target.value; this.dashboardSer.getListData(this.pageId, this.currentPage, this.dataTableNumber).subscribe( (responce) => { console.log(responce); this.absorpationListIds = responce['categories']; this.count = responce['count']; this.perPagePagenation = responce['per_page']; this.spinner.hide(); }, (error) => { console.log(error); this.spinner.hide(); } ); }; onGetValueFiltter(event) { console.log(event.target.value) this.spinner.show(); this.dataList = []; const typeId = event.target.value; this.filtterStatus = event.target.value; console.log(this.filtterStatus); this.http.get(this.authSer.pathApi +'/page_list/' + this.pageId + '/' + this.currentPage + '/' + this.dataTableNumber + '/' + typeId).subscribe( (responce) => { console.log(responce); this.dataList = responce['categories']; this.count = responce['count']; this.perPagePagenation = responce['per_page']; this.spinner.hide(); console.log('UrL>>', this.authSer.pathApi +'/page_list/' + this.pageId + '/' + this.currentPage + '/' + this.dataTableNumber + '/' + typeId) }, (error) => { console.log(error); } ); } onDelete() { this.dataListIds = []; for(let i = 0; i < this.dataList.length; i++) { if(this.dataList[i].selected == true) { this.dataListIds.push(this.dataList[i].id); } } console.log(this.dataListIds); if(this.dataListIds.length > 0) { const dialogRef = this.modal.alert() .size('sm') .showClose(true) .title('تأكيد الحذف') .body(`

هل ترغب في حذف العناصر المحدده ؟

`) .open(); dialogRef.result .then( result => this.dashboardSer.deleteItem(this.dataListIds , this.pageId).subscribe( (responce) => { console.log(responce); this.toastr.success('تم الحذف'); this.spinner.show(); this.dataList = []; //get list data this.dashboardSer.getListData(this.pageId, this.currentPage ,this.dataTableNumber).subscribe( (responce) => { console.log(responce); this.dataList = responce['categories']; this.count = responce['count']; this.perPagePagenation = responce['per_page']; this.spinner.hide(); }, (error) => { console.log(error); this.spinner.hide(); } ); }, (error) => { console.log(error); this.spinner.hide(); }, ) ); } else { this.toastr.warning('لم يتم إختيار أي عنصر للمسح !'); } }; onAdd() { this.router.navigate(['service/' + this.userLoginId + '/' + this.serviceId + '/' + 'definitionClassification/add']); } onEdit(editId: number) { this.router.navigate(['service/' + this.userLoginId + '/' + this.serviceId + '/' + 'definitionClassification/edit/ ' + editId]); } }