- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Farmatiko/ClientApp/src/app/dashboard/dashboard.component.ts
ree137aa rde18858 1 import { Component, OnInit} from '@angular/core'; 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'; 2 7 import { MatDialog } from '@angular/material/dialog'; 3 8 import { MatSnackBar, MatSnackBarRef, SimpleSnackBar } from '@angular/material/snack-bar'; 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'; 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'; 10 14 11 15 @Component({ … … 15 19 }) 16 20 export class DashboardComponent implements OnInit { 17 public pharmacies: IPharmacy[] = []; 18 public head: IPharmacyHead; 19 public filteredPharmacies: IPharmacy[] = []; 20 public filteredMedicines: IMedicine[] = []; 21 public request: IPharmacyHeadRequest; 22 public token: string; 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>(); 23 31 24 constructor(private dataService: DataService, private dialog: MatDialog, private snackBar: MatSnackBar, private router: Router, private route: ActivatedRoute) { 32 @ViewChild(MatPaginator, {static: true}) paginator: MatPaginator; 33 @ViewChild(MatSort) sort: MatSort; 25 34 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)); 26 50 } 27 51 28 52 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 }62 53 } 63 54 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!')); 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; 77 60 } 78 61 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 } 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; 92 101 } 93 102 94 103 applyFilterPharmacies(filterValue: string) { 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 } 104 filterValue = filterValue.trim(); 105 filterValue = filterValue.toLowerCase(); 106 this.dataSourcePharmacies.filter = filterValue; 107 107 } 108 108 109 openPharmacyDialog(pharmacy: IPharmacy): void {110 this.dialog.open(PharmacyDialogComponent, {111 width: '450px',112 data: pharmacy109 test(): void { 110 console.log('Snackbar works!'); 111 this.openSnackBar("Are you sure?", "Yes").onAction().subscribe(() => { 112 this.router.navigate(['/']); 113 113 }); 114 114 } 115 115 116 openEditPharmacyDialog(pharmacy: IPharmacy): void { 117 let dialogRef = this.dialog.open(EditPharmacyDialogComponent, { 118 width: '450px', 119 data: pharmacy 116 openDialog():void { 117 let dialogRef = this.dialog.open(HomeComponent, { 118 width: '70%' 120 119 }); 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 120 dialogRef.afterClosed().subscribe(result => { 121 if(result) { 122 this.openSnackBar("Success", "OK"); 123 } 146 124 }); 147 125 } 148 126 149 127 openSnackBar(message: string, action: string) : MatSnackBarRef<SimpleSnackBar> { 150 return this. snackBar.open(message, action, {151 duration: 5000,128 return this._snackBar.open(message, action, { 129 duration: 10000, 152 130 }); 153 131 }
Note:
See TracChangeset
for help on using the changeset viewer.