- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Farmatiko/ClientApp/src/app/dashboard/dashboard.component.ts
rde18858 ree137aa 1 import { Component, OnInit, ViewChild, Inject, Output, EventEmitter } from '@angular/core'; 2 import { Pharmacy } from '../models/Pharmacy'; 3 import { MatTableDataSource } from '@angular/material/table'; 4 import { MatPaginator } from '@angular/material/paginator'; 5 import { MatSort } from '@angular/material/sort'; 6 import { HttpClient } from '@angular/common/http'; 1 import { Component, OnInit} from '@angular/core'; 7 2 import { MatDialog } from '@angular/material/dialog'; 8 3 import { MatSnackBar, MatSnackBarRef, SimpleSnackBar } from '@angular/material/snack-bar'; 9 import { Router, RouterModule } from '@angular/router'; 10 import { HomeComponent } from '../home/home.component'; 11 import { Medicine } from '../models/Medicine'; 12 import { PharmacyHead } from '../models/PharmacyHead'; 13 import { MedicineList } from '../models/MedicineList'; 4 import { IPharmacy, IMedicine, IPharmacyHead, IPharmacyHeadRequest } from '../shared/interfaces'; 5 import { DataService } from '../shared/data.service'; 6 import { PharmacyDialogComponent } from '../dialogs/pharmacy-dialog/pharmacy-dialog.component'; 7 import { EditPharmacyDialogComponent } from '../dialogs/edit-pharmacy-dialog/edit-pharmacy-dialog.component'; 8 import { MedicineDialogComponent } from '../dialogs/medicine-dialog/medicine-dialog.component'; 9 import { ActivatedRoute, Router } from '@angular/router'; 14 10 15 11 @Component({ … … 19 15 }) 20 16 export class DashboardComponent implements OnInit { 21 public mymedicines: Medicine[]; 22 public hasmymedicines: boolean[]; 23 public pharmacies: Pharmacy[]; 24 public mypharmacies: Pharmacy[]; 25 public head: PharmacyHead; 26 public status: string; 27 displayedColumns = ['Име','Јачина','Форма', 'Начин на издавање', 'Производител', 'Цена', 'Пакување', 'Actions']; 28 displayedColumnsPharmacies = ['Име','Локација','Адреса', 'Actions']; 29 dataSource = new MatTableDataSource<Medicine>(); 30 dataSourcePharmacies = new MatTableDataSource<Pharmacy>(); 17 public pharmacies: IPharmacy[] = []; 18 public head: IPharmacyHead; 19 public filteredPharmacies: IPharmacy[] = []; 20 public filteredMedicines: IMedicine[] = []; 21 public request: IPharmacyHeadRequest; 22 public token: string; 31 23 32 @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator; 33 @ViewChild(MatSort) sort: MatSort; 24 constructor(private dataService: DataService, private dialog: MatDialog, private snackBar: MatSnackBar, private router: Router, private route: ActivatedRoute) { 34 25 35 constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string, private dialog: MatDialog, private _snackBar: MatSnackBar, private router: Router) {36 http.get<PharmacyHead>(baseUrl + 'PharmacyHead/GetLoggedHead?').subscribe(result => {37 this.head = result;38 console.log(this.head);39 this.mymedicines = this.head.PharmacyMedicines.Medicines;40 console.log(this.mymedicines);41 this.mypharmacies = this.head.Pharmacy;42 console.log(this.mypharmacies);43 this.dataSource = new MatTableDataSource<Medicine>(this.mymedicines);44 }, error => console.error(error));45 http.get<Pharmacy[]>(baseUrl + 'Pharmacy/Get?').subscribe(result => {46 this.pharmacies = result;47 console.log(this.pharmacies);48 this.dataSourcePharmacies = new MatTableDataSource<Pharmacy>(this.pharmacies);49 }, error => console.error(error));50 26 } 51 27 52 28 ngOnInit(): void { 29 this.token = this.route.snapshot.params['token']; 30 this.dataService.getPharmacyHead(this.token) 31 .subscribe((hd: IPharmacyHead) => { 32 this.head = hd; 33 }, 34 (err: any) => console.log(err), 35 () => console.log('Head data retrieved')); 36 37 this.dataService.getPharmacies() 38 .subscribe((pharmacy: IPharmacy[]) => { 39 this.pharmacies = pharmacy; 40 }, 41 (err: any) => console.log(err), 42 () => console.log('Pharmacy data retrieved')); 43 } 44 45 claimPharmacy(pharmacy: IPharmacy) { 46 if(pharmacy && !this.head.Pharmacy.find(x => x === pharmacy)) { 47 this.request = null; 48 this.request.Pharmacy = pharmacy; 49 this.request.PharmacyHead = this.head; 50 this.dataService.claimPharmacy(this.request) 51 .subscribe((req: IPharmacyHeadRequest) => { 52 if(req) { 53 this.openSnackBar("Claiming request sent!", "OK"); 54 } 55 else { 56 this.openSnackBar("Unable to send a request", "Try again"); 57 } 58 }, 59 (err: any) => console.log(err), 60 () => console.log('Claiming request sent!')); 61 } 53 62 } 54 63 55 ngAfterViewInit(): void { 56 this.dataSource.paginator = this.paginator; 57 this.dataSource.sort = this.sort; 58 this.dataSourcePharmacies.paginator = this.paginator; 59 this.dataSourcePharmacies.sort = this.sort; 64 deleteMedicine(medicine: IMedicine){ 65 this.head.PharmacyMedicines = this.head.PharmacyMedicines.filter(x => x !== medicine); 66 this.dataService.updatePharmacyHead(this.head) 67 .subscribe((hd: IPharmacyHead) => { 68 if(hd) { 69 this.openSnackBar("Success! Medicine deleted", "OK"); 70 } 71 else { 72 this.openSnackBar("Unable to delete Medicine", "Try again"); 73 } 74 }, 75 (err: any) => console.log(err), 76 () => console.log('Update sent!')); 60 77 } 61 78 62 works24hrs(pharmacy: Pharmacy) { 63 console.log(pharmacy); 64 // post request vo prodolzenie 65 66 this.status="Status bar works24hrs"; 67 } 68 69 doesntWork24hrs(pharmacy: Pharmacy) { 70 console.log(pharmacy); 71 // post request vo prodolzenie 72 73 this.status="Status bar doesntWork24hrs"; 74 } 75 76 claimPharmacy(pharmacy: Pharmacy) { 77 console.log(pharmacy); 78 // post request vo prodolzenie 79 80 this.status="Status bar claimPharmacy"; 81 } 82 83 medicineExists(mymedicine: Medicine) { 84 console.log(mymedicine); 85 // post request vo prodolzenie 86 87 this.status="Status bar medicineexists"; 88 } 89 90 medicineDoesntSell(mymedicine: Medicine) { 91 console.log(mymedicine); 92 // post request vo prodolzenie 93 94 this.status="Status bar medicineDoesntSell"; 95 } 96 97 applyFilter(filterValue: string) { 98 filterValue = filterValue.trim(); 99 filterValue = filterValue.toLowerCase(); 100 this.dataSource.filter = filterValue; 79 applyFilterMedicines(filterValue: string) { 80 console.log("applyFilterMedicines works!") 81 if(filterValue) { 82 this.dataService.searchMedicines(filterValue) 83 .subscribe((medicine: IMedicine[]) => { 84 this.filteredMedicines = medicine; 85 }, 86 (err: any) => console.log(err), 87 () => console.log('Medicine data retrieved')); 88 } 89 else { 90 this.filteredMedicines = this.head.PharmacyMedicines; 91 } 101 92 } 102 93 103 94 applyFilterPharmacies(filterValue: string) { 104 filterValue = filterValue.trim(); 105 filterValue = filterValue.toLowerCase(); 106 this.dataSourcePharmacies.filter = filterValue; 95 console.log("applyFilterPharmacies works!") 96 if(filterValue) { 97 this.dataService.searchPharmacies(filterValue) 98 .subscribe((pharmacy: IPharmacy[]) => { 99 this.filteredPharmacies = pharmacy; 100 }, 101 (err: any) => console.log(err), 102 () => console.log('Pharmacy data retrieved')); 103 } 104 else { 105 this.filteredPharmacies = this.pharmacies; 106 } 107 107 } 108 108 109 test(): void {110 console.log('Snackbar works!');111 this.openSnackBar("Are you sure?", "Yes").onAction().subscribe(() => {112 this.router.navigate(['/']);109 openPharmacyDialog(pharmacy: IPharmacy): void { 110 this.dialog.open(PharmacyDialogComponent, { 111 width: '450px', 112 data: pharmacy 113 113 }); 114 114 } 115 115 116 openDialog():void { 117 let dialogRef = this.dialog.open(HomeComponent, { 118 width: '70%' 116 openEditPharmacyDialog(pharmacy: IPharmacy): void { 117 let dialogRef = this.dialog.open(EditPharmacyDialogComponent, { 118 width: '450px', 119 data: pharmacy 119 120 }); 120 dialogRef.afterClosed().subscribe(result => { 121 if(result) { 122 this.openSnackBar("Success", "OK"); 123 } 121 dialogRef.afterClosed().subscribe((editedPharmacy: IPharmacy) => { 122 if(editedPharmacy) { 123 this.head.Pharmacy = this.head.Pharmacy.filter(x => x !== pharmacy); 124 this.head.Pharmacy.push(editedPharmacy); 125 this.dataService.updatePharmacyHead(this.head) 126 .subscribe((hd: IPharmacyHead) => { 127 if(hd) { 128 this.openSnackBar("Success! Pharmacy edited", "OK").onAction().subscribe(() => { 129 window.location.reload(); 130 }); 131 } 132 else { 133 this.openSnackBar("Pharmacy edit failed", "Try again"); 134 } 135 }, 136 (err: any) => console.log(err), 137 () => console.log('PharmacyHead data updated')); 138 }; 139 }); 140 } 141 142 openMedicineDialog(medicine: IMedicine): void { 143 this.dialog.open(MedicineDialogComponent, { 144 width: '450px', 145 data: medicine 124 146 }); 125 147 } 126 148 127 149 openSnackBar(message: string, action: string) : MatSnackBarRef<SimpleSnackBar> { 128 return this. _snackBar.open(message, action, {129 duration: 10000,150 return this.snackBar.open(message, action, { 151 duration: 5000, 130 152 }); 131 153 }
Note:
See TracChangeset
for help on using the changeset viewer.