Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Farmatiko/ClientApp/src/app/dashboard/dashboard.component.ts

    ree137aa rde18858  
    1 import { Component, OnInit} from '@angular/core';
     1import { Component, OnInit, ViewChild, Inject, Output, EventEmitter } from '@angular/core';
     2import { Pharmacy } from '../models/Pharmacy';
     3import { MatTableDataSource } from '@angular/material/table';
     4import { MatPaginator } from '@angular/material/paginator';
     5import { MatSort } from '@angular/material/sort';
     6import { HttpClient } from '@angular/common/http';
    27import { MatDialog } from '@angular/material/dialog';
    38import { 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';
     9import { Router, RouterModule } from '@angular/router';
     10import { HomeComponent } from '../home/home.component';
     11import { Medicine } from '../models/Medicine';
     12import { PharmacyHead } from '../models/PharmacyHead';
     13import { MedicineList } from '../models/MedicineList';
    1014
    1115@Component({
     
    1519})
    1620export 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>();
    2331
    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;
    2534
     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));
    2650  }
    2751
    2852  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     }
    6253  }
    6354
    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;
    7760  }
    7861
    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;
    92101  }
    93102 
    94103  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;
    107107  }
    108108
    109   openPharmacyDialog(pharmacy: IPharmacy): void {
    110     this.dialog.open(PharmacyDialogComponent, {
    111       width: '450px',
    112       data: pharmacy
     109  test(): void {
     110    console.log('Snackbar works!');
     111    this.openSnackBar("Are you sure?", "Yes").onAction().subscribe(() => {
     112      this.router.navigate(['/']);
    113113    });
    114114  }
    115115
    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%'
    120119    });
    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      }
    146124    });
    147125  }
    148126
    149127  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,
    152130    });
    153131  }
Note: See TracChangeset for help on using the changeset viewer.