| @@ -15,7 +15,7 @@ export class CustomSelectorComponent implements OnInit { | |||||
| @Input() defaultOptionId: string; | @Input() defaultOptionId: string; | ||||
| selectedOption: { | selectedOption: { | ||||
| name: string, | name: string, | ||||
| id: string | |||||
| id: string | number | |||||
| }; | }; | ||||
| showDropdown: boolean = false; | showDropdown: boolean = false; | ||||
| @@ -20,15 +20,15 @@ | |||||
| </div> | </div> | ||||
| <div class="column"> | <div class="column"> | ||||
| <button class="rect-button"> View </button> | |||||
| <button class="rect-button" (click)="goToOrdersPage('pending')"> View </button> | |||||
| </div> | </div> | ||||
| </li> | </li> | ||||
| <li> | <li> | ||||
| <div class="column-holder"> | <div class="column-holder"> | ||||
| <div class="column"> | <div class="column"> | ||||
| <header> Confirmed </header> | |||||
| <p> To be Packed </p> | |||||
| <header> Accepted </header> | |||||
| <p> To be Cooked / Packed </p> | |||||
| </div> | </div> | ||||
| <div class="column"> | <div class="column"> | ||||
| @@ -37,7 +37,7 @@ | |||||
| </div> | </div> | ||||
| <div class="column"> | <div class="column"> | ||||
| <button class="rect-button"> View </button> | |||||
| <button class="rect-button" (click)="goToOrdersPage('confirmed')"> View </button> | |||||
| </div> | </div> | ||||
| </li> | </li> | ||||
| @@ -54,7 +54,7 @@ | |||||
| </div> | </div> | ||||
| <div class="column"> | <div class="column"> | ||||
| <button class="rect-button"> View </button> | |||||
| <button class="rect-button" (click)="goToOrdersPage('delivered')"> View </button> | |||||
| </div> | </div> | ||||
| </li> | </li> | ||||
| </ul> | </ul> | ||||
| @@ -1,4 +1,4 @@ | |||||
| import { Component, OnInit } from '@angular/core'; | |||||
| import { Component, OnInit, Output, EventEmitter } from '@angular/core'; | |||||
| import { IFilterOption } from '../models/filter-option'; | import { IFilterOption } from '../models/filter-option'; | ||||
| import { OrderService } from '../services/order.service'; | import { OrderService } from '../services/order.service'; | ||||
| import * as moment from 'moment'; | import * as moment from 'moment'; | ||||
| @@ -13,6 +13,8 @@ export class DashboardComponent implements OnInit { | |||||
| orderList: any = []; | orderList: any = []; | ||||
| orderStatus: any = []; | orderStatus: any = []; | ||||
| @Output() dashboardEvents = new EventEmitter(); | |||||
| constructor( | constructor( | ||||
| private orderService: OrderService | private orderService: OrderService | ||||
| ) { } | ) { } | ||||
| @@ -68,4 +70,11 @@ export class DashboardComponent implements OnInit { | |||||
| }) | }) | ||||
| } | } | ||||
| goToOrdersPage(type: 'pending' | 'delivered' | 'confirmed') { | |||||
| this.dashboardEvents.emit({ | |||||
| nav: 'orders', | |||||
| type: type | |||||
| }); | |||||
| } | |||||
| } | } | ||||
| @@ -1,4 +1,4 @@ | |||||
| export type IFilterOption = { | export type IFilterOption = { | ||||
| name: string, | name: string, | ||||
| id: string | |||||
| id: string | number | |||||
| }; | }; | ||||
| @@ -2,19 +2,33 @@ | |||||
| <header> Order List </header> | <header> Order List </header> | ||||
| <div class="filter-container"> | <div class="filter-container"> | ||||
| <div class="selector-container"> | <div class="selector-container"> | ||||
| <app-custom-selector header="Status" [options]="statusOptions" width="200" [defaultOptionId]="statusOptions[0].id"></app-custom-selector> | |||||
| <app-custom-selector header="Date" [options]="dateOptions" width="200" [defaultOptionId]="dateOptions[0].id"></app-custom-selector> | |||||
| <div class="selector"> | |||||
| <div class="container" (click)="showFilter = !showFilter"> | |||||
| <div class="selected-value"> | |||||
| Status : <span> {{ filterOption.orderStatus }} </span> | |||||
| </div> | |||||
| <button> | |||||
| <i class="icon" [ngClass]="{'ion-md-arrow-dropdown': !showFilter, 'ion-md-arrow-dropup': showFilter}"></i> | |||||
| </button> | |||||
| </div> | |||||
| <ul *ngIf="showFilter"> | |||||
| <li *ngFor="let option of orderStatus" (click)="filterOption = option; showFilter = false"> | |||||
| {{ option.orderStatus }} | |||||
| </li> | |||||
| </ul> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div class="search-input"> | <div class="search-input"> | ||||
| <input type="text" placeholder="Quick Search"> | |||||
| <input type="text" placeholder="Quick Search: By Order ID" [(ngModel)]="searchTerm" (input)="searchOrders()"> | |||||
| <button> <i class="icon ion-md-search"></i> </button> | <button> <i class="icon ion-md-search"></i> </button> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <table class="order-table"> | |||||
| <table class="order-table" *ngIf="orderList"> | |||||
| <tbody> | <tbody> | ||||
| <tr class="heading-row"> | <tr class="heading-row"> | ||||
| <th> Order ID </th> | <th> Order ID </th> | ||||
| @@ -25,7 +39,7 @@ | |||||
| <th> Action </th> | <th> Action </th> | ||||
| </tr> | </tr> | ||||
| <tr *ngFor="let order of orderList"> | |||||
| <tr *ngFor="let order of getFilteredOrders(filterOption.orderstatus_id)"> | |||||
| <td> {{ order.orders_id }} </td> | <td> {{ order.orders_id }} </td> | ||||
| <td> | <td> | ||||
| <div> | <div> | ||||
| @@ -52,7 +66,7 @@ | |||||
| <td> | <td> | ||||
| <div class="action-buttons" *ngIf="order.orderstatus.orderstatus_id === 6"> | <div class="action-buttons" *ngIf="order.orderstatus.orderstatus_id === 6"> | ||||
| <button class="round-button" (click)="order.orderstatus.orderstatus_id = 1; updateOrder(order)"> Confirm </button> | <button class="round-button" (click)="order.orderstatus.orderstatus_id = 1; updateOrder(order)"> Confirm </button> | ||||
| <button class="round-button" (click)="showRejectionPopup = true"> Reject </button> | |||||
| <button class="round-button" (click)="order.orderstatus.orderstatus_id = 4; updateOrder(order)"> Reject </button> | |||||
| </div> | </div> | ||||
| <div class="status" [ngClass]="{'success': order.orderstatus.orderstatus_id === 1, | <div class="status" [ngClass]="{'success': order.orderstatus.orderstatus_id === 1, | ||||
| 'failed' : order.orderstatus.orderstatus_id === 2 || order.orderstatus.orderstatus_id === 4 || order.orderstatus.orderstatus_id === 5 }" | 'failed' : order.orderstatus.orderstatus_id === 2 || order.orderstatus.orderstatus_id === 4 || order.orderstatus.orderstatus_id === 5 }" | ||||
| @@ -65,89 +79,22 @@ | |||||
| </table> | </table> | ||||
| <ul class="order-list"> | <ul class="order-list"> | ||||
| <li class="card"> | |||||
| <div class="header"> | |||||
| <span> Order ID : 29320 </span> | |||||
| <span> Order Time: 2 Mins ago </span> | |||||
| </div> | |||||
| <table> | |||||
| <tr> | |||||
| <td> | |||||
| <div> KFC Bucket </div> | |||||
| </td> | |||||
| <td> | |||||
| <div> Qty: 1 </div> | |||||
| </td> | |||||
| <td> | |||||
| <div> ₹ 250 </div> | |||||
| </td> | |||||
| </tr> | |||||
| </table> | |||||
| <div class="order-status-holder"> | |||||
| <div class="status"> | |||||
| Paid online | |||||
| </div> | |||||
| <div class="action-buttons"> | |||||
| <button> Confirm </button> | |||||
| <button (click)="showRejectionPopup = true"> Reject </button> | |||||
| </div> | |||||
| </div> | |||||
| </li> | |||||
| <li class="card"> | |||||
| <li class="card" *ngFor="let order of getFilteredOrders(filterOption.orderstatus_id)"> | |||||
| <div class="header"> | <div class="header"> | ||||
| <span> Order ID : 29320 </span> | |||||
| <span> Order Time: 2 Mins ago </span> | |||||
| <span> Order ID : {{ order.orders_id }} </span> | |||||
| </div> | </div> | ||||
| <table> | |||||
| <tr> | |||||
| <td> | |||||
| <div> KFC Bucket </div> | |||||
| </td> | |||||
| <td> | |||||
| <div> Qty: 1 </div> | |||||
| </td> | |||||
| <td> | |||||
| <div> ₹ 250 </div> | |||||
| </td> | |||||
| </tr> | |||||
| </table> | |||||
| <div class="info" *ngFor="let item of order.orderedlist"> | |||||
| <div> {{ item.menu_item_name }} x {{ item.quantity }} = ₹ {{ getFixedDecimalPoints(item.total_price) }} </div> | |||||
| </div> | |||||
| <div class="order-status-holder"> | <div class="order-status-holder"> | ||||
| <div class="status"> | |||||
| Paid online | |||||
| </div> | |||||
| <div class="action-buttons"> | |||||
| <button> Confirm </button> | |||||
| <button (click)="showRejectionPopup = true"> Reject </button> | |||||
| </div> | |||||
| </div> | |||||
| </li> | |||||
| <li class="card"> | |||||
| <div class="header"> | |||||
| <span> Order ID : 29320 </span> | |||||
| <span> Order Time: 2 Mins ago </span> | |||||
| </div> | |||||
| <table> | |||||
| <tr> | |||||
| <td> | |||||
| <div> KFC Bucket </div> | |||||
| </td> | |||||
| <td> | |||||
| <div> Qty: 1 </div> | |||||
| </td> | |||||
| <td> | |||||
| <div> ₹ 250 </div> | |||||
| </td> | |||||
| </tr> | |||||
| </table> | |||||
| <div class="order-status-holder"> | |||||
| <div class="status"> | |||||
| Paid online | |||||
| </div> | |||||
| <div class="action-buttons"> | |||||
| <button> Confirm </button> | |||||
| <button (click)="showRejectionPopup = true"> Reject </button> | |||||
| <div class="status" [ngClass]="{'success': order.orderstatus.orderstatus_id === 1, | |||||
| 'failed' : order.orderstatus.orderstatus_id === 2 || order.orderstatus.orderstatus_id === 4 || order.orderstatus.orderstatus_id === 5 }" | |||||
| *ngIf="order.orderstatus.orderstatus_id !== 6"> | |||||
| {{ getOrderStatus(order.orderstatus.orderstatus_id).orderStatus }} | |||||
| </div> | |||||
| <div class="action-buttons" *ngIf="order.orderstatus.orderstatus_id === 6"> | |||||
| <button (click)="order.orderstatus.orderstatus_id = 1; updateOrder(order)"> Confirm </button> | |||||
| <button (click)="order.orderstatus.orderstatus_id = 4; updateOrder(order)"> Reject </button> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </li> | </li> | ||||
| @@ -16,14 +16,12 @@ | |||||
| display: flex; | display: flex; | ||||
| flex-grow: 1; | flex-grow: 1; | ||||
| app-custom-selector { | |||||
| .selector { | |||||
| margin: 0 10px; | margin: 0 10px; | ||||
| flex-grow: 1; | flex-grow: 1; | ||||
| @media screen and (max-width: 1023px) { | @media screen and (max-width: 1023px) { | ||||
| margin: 0; | margin: 0; | ||||
| width: 45%; | |||||
| flex-grow: 0; | |||||
| } | } | ||||
| } | } | ||||
| @@ -186,31 +184,13 @@ | |||||
| letter-spacing: 1px; | letter-spacing: 1px; | ||||
| } | } | ||||
| table { | |||||
| padding: 10px 15px; | |||||
| width: 100%; | |||||
| td { | |||||
| font-size: 14px; | |||||
| color: var(--dark-grey); | |||||
| font-weight: 500; | |||||
| letter-spacing: 0.5px; | |||||
| &:nth-child(1) { | |||||
| width: 50%; | |||||
| } | |||||
| &:nth-child(2) { | |||||
| width: 25%; | |||||
| text-align: center; | |||||
| } | |||||
| &:nth-child(3) { | |||||
| width: 25%; | |||||
| text-align: right; | |||||
| } | |||||
| } | |||||
| } | |||||
| .info { | |||||
| font-size: 14px; | |||||
| color: var(--dark-grey); | |||||
| font-weight: 500; | |||||
| letter-spacing: 0.5px; | |||||
| padding: 10px 15px; | |||||
| } | |||||
| .order-status-holder { | .order-status-holder { | ||||
| background-color: #efefef; | background-color: #efefef; | ||||
| @@ -223,6 +203,17 @@ | |||||
| justify-content: space-between; | justify-content: space-between; | ||||
| align-items: center; | align-items: center; | ||||
| .status { | |||||
| &.success { | |||||
| color: green; | |||||
| } | |||||
| &.failed { | |||||
| color: red; | |||||
| } | |||||
| } | |||||
| .action-buttons { | .action-buttons { | ||||
| display: flex; | display: flex; | ||||
| width: auto; | width: auto; | ||||
| @@ -1,5 +1,4 @@ | |||||
| import { Component, OnInit } from '@angular/core'; | |||||
| import { IFilterOption } from '../models/filter-option'; | |||||
| import { Component, OnInit, Input } from '@angular/core'; | |||||
| import { OrderService } from '../services/order.service'; | import { OrderService } from '../services/order.service'; | ||||
| import * as moment from 'moment'; | import * as moment from 'moment'; | ||||
| @@ -9,26 +8,54 @@ import * as moment from 'moment'; | |||||
| styleUrls: ['./orders.component.scss'] | styleUrls: ['./orders.component.scss'] | ||||
| }) | }) | ||||
| export class OrdersComponent implements OnInit { | export class OrdersComponent implements OnInit { | ||||
| statusOptions: Array<IFilterOption>; | |||||
| dateOptions: Array<IFilterOption>; | |||||
| showRejectionPopup: boolean = false; | showRejectionPopup: boolean = false; | ||||
| orderList: any = []; | orderList: any = []; | ||||
| tempOrderList: any = []; | |||||
| orderStatus: any = []; | orderStatus: any = []; | ||||
| searchTerm: string = ''; | |||||
| showFilter: boolean = false; | |||||
| filterOption: { | |||||
| orderStatus: string, | |||||
| orderstatus_id: number | |||||
| } = { | |||||
| orderStatus: 'All', | |||||
| orderstatus_id: 0 | |||||
| }; | |||||
| @Input() params: any; | |||||
| constructor( | constructor( | ||||
| private orderService: OrderService | private orderService: OrderService | ||||
| ) { } | ) { } | ||||
| ngOnInit() { | ngOnInit() { | ||||
| this.statusOptions = [{ | |||||
| name: 'All', | |||||
| id: 'all' | |||||
| }]; | |||||
| this.dateOptions = [{ | |||||
| name: 'Today', | |||||
| id: 'today' | |||||
| }]; | |||||
| if (this.params) { | |||||
| try { | |||||
| switch(this.params.filterType) { | |||||
| case 'pending': this.filterOption = { | |||||
| orderStatus: 'Pending', | |||||
| orderstatus_id: 6 | |||||
| }; break; | |||||
| case 'delivered': this.filterOption = { | |||||
| orderStatus: 'Delivered', | |||||
| orderstatus_id: 3 | |||||
| }; break; | |||||
| case 'confirmed': this.filterOption = { | |||||
| orderStatus: 'Accepted', | |||||
| orderstatus_id: 1 | |||||
| }; break; | |||||
| default: this.filterOption = { | |||||
| orderStatus: 'All', | |||||
| orderstatus_id: 0 | |||||
| }; break; | |||||
| } | |||||
| } catch { | |||||
| this.filterOption = { | |||||
| orderStatus: 'All', | |||||
| orderstatus_id: 0 | |||||
| }; | |||||
| } | |||||
| } | |||||
| this.orderService.getOrders().then((data) => { | this.orderService.getOrders().then((data) => { | ||||
| this.orderList = data; | this.orderList = data; | ||||
| @@ -36,13 +63,21 @@ export class OrdersComponent implements OnInit { | |||||
| this.orderList = this.orderList.filter((order) => { | this.orderList = this.orderList.filter((order) => { | ||||
| return order.orderstatus; | return order.orderstatus; | ||||
| }); | }); | ||||
| this.tempOrderList = this.orderList.filter((order) => { | |||||
| return order.orderstatus; | |||||
| }); | |||||
| }, () => { | }, () => { | ||||
| alert("Error getting the orders"); | alert("Error getting the orders"); | ||||
| }); | }); | ||||
| this.orderService.getallOrderStatus().then((data) => { | |||||
| console.log(data); | |||||
| this.orderService.getallOrderStatus().then((data: any) => { | |||||
| this.orderStatus = data; | this.orderStatus = data; | ||||
| this.orderStatus.push({ | |||||
| orderStatus: 'All', | |||||
| orderstatus_id: 0 | |||||
| }); | |||||
| }, () => { | }, () => { | ||||
| alert("Error getting the order statuses"); | alert("Error getting the order statuses"); | ||||
| }); | }); | ||||
| @@ -71,4 +106,20 @@ export class OrdersComponent implements OnInit { | |||||
| }) | }) | ||||
| } | } | ||||
| getFilteredOrders(id: number, orders?: any) { | |||||
| if (id > 0) { | |||||
| return this.tempOrderList.filter((order) => { | |||||
| return order.orderstatus.orderstatus_id === id; | |||||
| }); | |||||
| } else { | |||||
| return this.tempOrderList; | |||||
| } | |||||
| } | |||||
| searchOrders() { | |||||
| this.tempOrderList = this.orderList.filter((order: any) => { | |||||
| return order.orders_id.toString().toLowerCase().includes(this.searchTerm.toLowerCase()); | |||||
| }); | |||||
| } | |||||
| } | } | ||||
| @@ -5,7 +5,7 @@ | |||||
| (click)="selected_nav = 'faq'"> FAQ's </a> | (click)="selected_nav = 'faq'"> FAQ's </a> | ||||
| <a [ngClass]="{'active' : selected_nav === 'support'}" | <a [ngClass]="{'active' : selected_nav === 'support'}" | ||||
| (click)="selected_nav = 'support'"> Support </a> | (click)="selected_nav = 'support'"> Support </a> | ||||
| <button class="rect-button"> Logout </button> | |||||
| <button class="rect-button" (click)="logout()"> Logout </button> | |||||
| </nav> | </nav> | ||||
| </section> | </section> | ||||
| @@ -21,37 +21,37 @@ | |||||
| </section> | </section> | ||||
| <ul> | <ul> | ||||
| <li [ngClass]="{'active' : selected_nav === 'dashboard'}" (click)="selected_nav = 'dashboard'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'dashboard'}" (click)="selected_nav.name = 'dashboard'"> | |||||
| <i class="icon ion-ios-home"></i> <label> Dashboard </label> | <i class="icon ion-ios-home"></i> <label> Dashboard </label> | ||||
| </li> | </li> | ||||
| <li [ngClass]="{'active' : selected_nav === 'orders'}" (click)="selected_nav = 'orders'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'orders'}" (click)="selected_nav.name = 'orders'"> | |||||
| <i class="icon ion-ios-cube"></i> <label> Orders </label> | <i class="icon ion-ios-cube"></i> <label> Orders </label> | ||||
| </li> | </li> | ||||
| <li [ngClass]="{'active' : selected_nav === 'items'}" (click)="selected_nav = 'items'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'items'}" (click)="selected_nav.name = 'items'"> | |||||
| <i class="icon ion-ios-clipboard"></i> <label> Menu Items & Offers </label> | <i class="icon ion-ios-clipboard"></i> <label> Menu Items & Offers </label> | ||||
| </li> | </li> | ||||
| <li [ngClass]="{'active' : selected_nav === 'schedule'}" (click)="selected_nav = 'schedule'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'schedule'}" (click)="selected_nav.name = 'schedule'"> | |||||
| <i class="icon ion-ios-calendar"></i> <label> Shop Schedules </label> | <i class="icon ion-ios-calendar"></i> <label> Shop Schedules </label> | ||||
| </li> | </li> | ||||
| <li [ngClass]="{'active' : selected_nav === 'profile'}" (click)="selected_nav = 'profile'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'profile'}" (click)="selected_nav.name = 'profile'"> | |||||
| <i class="icon ion-ios-person"></i> <label> Profile </label> | <i class="icon ion-ios-person"></i> <label> Profile </label> | ||||
| </li> | </li> | ||||
| <li [ngClass]="{'active' : selected_nav === 'settings'}" (click)="selected_nav = 'settings'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'settings'}" (click)="selected_nav.name = 'settings'"> | |||||
| <i class="icon ion-ios-cog"></i> <label> Settings </label> | <i class="icon ion-ios-cog"></i> <label> Settings </label> | ||||
| </li> | </li> | ||||
| <li [ngClass]="{'active' : selected_nav === 'more'}" (click)="selected_nav = 'more'"> | |||||
| <li [ngClass]="{'active' : selected_nav.name === 'more'}" (click)="selected_nav.name = 'more'"> | |||||
| <i class="icon ion-ios-more"></i> <label> More </label> | <i class="icon ion-ios-more"></i> <label> More </label> | ||||
| </li> | </li> | ||||
| </ul> | </ul> | ||||
| </section> | </section> | ||||
| <section class="widgets"> | <section class="widgets"> | ||||
| <app-dashboard *ngIf="selected_nav === 'dashboard'"></app-dashboard> | |||||
| <app-orders *ngIf="selected_nav === 'orders'"></app-orders> | |||||
| <app-menu-items *ngIf="selected_nav === 'items'"></app-menu-items> | |||||
| <app-schedules *ngIf="selected_nav === 'schedule'"></app-schedules> | |||||
| <app-faq *ngIf="selected_nav === 'faq'"></app-faq> | |||||
| <app-support *ngIf="selected_nav === 'support'"></app-support> | |||||
| <app-dashboard *ngIf="selected_nav.name === 'dashboard'" (dashboardEvents)="getWidgetsEvents($event)"></app-dashboard> | |||||
| <app-orders [params]="selected_nav.params" *ngIf="selected_nav.name === 'orders'"></app-orders> | |||||
| <app-menu-items *ngIf="selected_nav.name === 'items'"></app-menu-items> | |||||
| <app-schedules *ngIf="selected_nav.name === 'schedule'"></app-schedules> | |||||
| <app-faq *ngIf="selected_nav.name === 'faq'"></app-faq> | |||||
| <app-support *ngIf="selected_nav.name === 'support'"></app-support> | |||||
| <app-more (navClick)="getNavPage($event)" *ngIf="selected_nav === 'more'"></app-more> | <app-more (navClick)="getNavPage($event)" *ngIf="selected_nav === 'more'"></app-more> | ||||
| </section> | </section> | ||||
| </div> | </div> | ||||
| @@ -244,6 +244,8 @@ | |||||
| .widgets { | .widgets { | ||||
| width: 80%; | width: 80%; | ||||
| height: calc(100vh - 70px); | |||||
| overflow: auto; | |||||
| @media screen and (max-width: 1023px) { | @media screen and (max-width: 1023px) { | ||||
| width: 100%; | width: 100%; | ||||
| @@ -1,4 +1,5 @@ | |||||
| import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
| import { Router } from '@angular/router'; | |||||
| @Component({ | @Component({ | ||||
| selector: 'app-widgets-holder', | selector: 'app-widgets-holder', | ||||
| @@ -6,10 +7,18 @@ import { Component, OnInit } from '@angular/core'; | |||||
| styleUrls: ['./widgets-holder.component.scss'] | styleUrls: ['./widgets-holder.component.scss'] | ||||
| }) | }) | ||||
| export class WidgetsHolderComponent implements OnInit { | export class WidgetsHolderComponent implements OnInit { | ||||
| selected_nav: string = 'dashboard'; | |||||
| selected_nav: { | |||||
| name: string, | |||||
| params: any | |||||
| } = { | |||||
| name: 'orders', | |||||
| params: '' | |||||
| }; | |||||
| vendor_info: any; | vendor_info: any; | ||||
| constructor() { } | |||||
| constructor( | |||||
| private router: Router | |||||
| ) { } | |||||
| ngOnInit() { | ngOnInit() { | ||||
| let data = JSON.parse(localStorage.vendor_info); | let data = JSON.parse(localStorage.vendor_info); | ||||
| @@ -17,7 +26,21 @@ export class WidgetsHolderComponent implements OnInit { | |||||
| } | } | ||||
| getNavPage(page: string) { | getNavPage(page: string) { | ||||
| this.selected_nav = page; | |||||
| this.selected_nav.name = page; | |||||
| } | } | ||||
| getWidgetsEvents(event: any) { | |||||
| if (event.nav === 'orders') { | |||||
| this.selected_nav.name = 'orders' | |||||
| this.selected_nav.params = { | |||||
| filterType: event.type | |||||
| }; | |||||
| } | |||||
| } | |||||
| logout() { | |||||
| localStorage.clear(); | |||||
| this.router.navigate(['/']); | |||||
| } | |||||
| } | } | ||||
| @@ -180,3 +180,71 @@ button { | |||||
| transform: translateX(2px); | transform: translateX(2px); | ||||
| } | } | ||||
| } | } | ||||
| .selector { | |||||
| position: relative; | |||||
| .container { | |||||
| display: flex; | |||||
| width: 100%; | |||||
| border-radius: 20px; | |||||
| background-color: white; | |||||
| color: var(--brand-blue); | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| position: relative; | |||||
| .selected-value { | |||||
| font-weight: 500; | |||||
| margin-left: 20px; | |||||
| font-size: 14px; | |||||
| span { | |||||
| margin-left: 5px; | |||||
| } | |||||
| } | |||||
| button { | |||||
| border-radius: 50%; | |||||
| width: 30px; | |||||
| height: 30px; | |||||
| color: var(--brand-blue); | |||||
| font-size: 20px; | |||||
| border: 1px solid var(--brand-blue); | |||||
| background-color: white; | |||||
| transition: background-color 0.3s, color 0.3s; | |||||
| &:hover { | |||||
| background-color: var(--brand-blue); | |||||
| color: white; | |||||
| } | |||||
| } | |||||
| } | |||||
| ul { | |||||
| list-style: none; | |||||
| background-color: white; | |||||
| width: 80%; | |||||
| margin: 0 auto; | |||||
| border-bottom-left-radius: 10px; | |||||
| border-bottom-right-radius: 10px; | |||||
| overflow: hidden; | |||||
| position: absolute; | |||||
| left: 10%; | |||||
| top: 100%; | |||||
| } | |||||
| li { | |||||
| padding: 10px; | |||||
| font-size: 14px; | |||||
| color: var(--brand-blue); | |||||
| cursor: pointer; | |||||
| transition: background-color 0.3s, color 0.3s; | |||||
| &:hover { | |||||
| background-color: var(--brand-blue); | |||||
| color: white; | |||||
| } | |||||
| } | |||||
| } | |||||