@@ -29,15 +29,16 @@ export class DashboardComponent implements OnInit { | |||
ngOnInit() { | |||
this.calculateOrders(); | |||
console.log(this.profile_info) | |||
} | |||
calculateOrders() { | |||
this.profile_type = localStorage.current_login_type; | |||
if (this.profile_type === 'ROLE_VENDOR') { | |||
this.profile_info = JSON.parse(localStorage.vendor_info); | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
this.orderService.getOrders().then((data) => { | |||
this.orderService.getOrdersForOutlet(this.profile_info.outlet_id).then((data) => { | |||
this.orderList = data; | |||
for (let i = 0; i < this.orderList.length; i += 1) { | |||
@@ -52,8 +53,7 @@ export class DashboardComponent implements OnInit { | |||
alert("Error getting the orders"); | |||
}); | |||
} else if (this.profile_type === 'OUTLET') { | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
this.orderService.getOrdersForOutlet(this.profile_info.outlet_id).then((data) => { | |||
@@ -17,7 +17,7 @@ export class LoginComponent implements OnInit { | |||
// ramsesrh suresh | |||
login_types = ['ROLE_VENDOR', 'OUTLET']; | |||
login_types = ['ROLE_VENDOR', 'ROLE_OUTLET']; | |||
errorMessage: string = ''; | |||
@@ -47,7 +47,7 @@ export class LoginComponent implements OnInit { | |||
if (this.credentials.login_type === 'ROLE_VENDOR') { | |||
console.log("Logging as Vendor") | |||
this.router.navigate(['outlets']); | |||
this.router.navigate(['/outlets']); | |||
}else{ | |||
console.log("Logging as Outlet") | |||
this.router.navigate(['shop-details']); | |||
@@ -47,10 +47,12 @@ export class MenuItemsComponent implements OnInit { | |||
this.profile_type = localStorage.current_login_type; | |||
if (this.profile_type === 'ROLE_VENDOR') { | |||
this.profile_info = JSON.parse(localStorage.vendor_info); | |||
} else if (this.profile_type === 'OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
} | |||
console.log(this.profile_info); | |||
this.menuItems = JSON.parse(JSON.stringify(this.profile_info.menuitems)); | |||
@@ -63,7 +65,7 @@ export class MenuItemsComponent implements OnInit { | |||
if (this.profile_type === 'ROLE_VENDOR') { | |||
localStorage.vendor_info = JSON.stringify(this.profile_info); | |||
} else if (this.profile_type === 'OUTLET') { | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
localStorage.outlet_info = JSON.stringify(this.profile_info); | |||
} | |||
@@ -88,7 +90,7 @@ export class MenuItemsComponent implements OnInit { | |||
if (this.profile_type === 'ROLE_VENDOR') { | |||
localStorage.vendor_info = JSON.stringify(this.profile_info); | |||
} else if (this.profile_type === 'OUTLET') { | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
localStorage.outlet_info = JSON.stringify(this.profile_info); | |||
} | |||
@@ -115,7 +115,7 @@ export class OrdersComponent implements OnInit { | |||
}); | |||
} else if (this.profile_type === 'OUTLET') { | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
this.orderService.getOrdersForOutlet(this.profile_info.outlet_id).then((data) => { | |||
@@ -1,7 +1,10 @@ | |||
<section class="nav-bar"> | |||
<div> | |||
<div class="navmenu"> | |||
<img src="assets/logo.svg" alt="Logo"> | |||
<header>Welcome to {{venderInfo.vendorName}}</header> | |||
<div> | |||
<header>Welcome to {{venderInfo.vendorName}}</header> | |||
<span>Vendor Id: {{venderInfo.vendor_Id}}</span> | |||
</div> | |||
</div> | |||
<nav> | |||
<a> Support</a> | |||
@@ -9,42 +12,45 @@ | |||
</nav> | |||
</section> | |||
<section> | |||
<li class="outlet-menu" *ngFor='let outlet of outlets' (click)="selectedOutlet(outlet);"> | |||
<section class="outlet-menu"> | |||
<li class="outlets" *ngFor='let outlet of outlets' (click)="selectedOutlet(outlet);"> | |||
<figure> | |||
<img src="{{outlet.image_url}}"> | |||
<img class="outlet-img" src="{{outlet.image_url}}"> | |||
</figure> | |||
<div class="upfold"> | |||
<h4>{{outlet.outlet_name}}</h4> | |||
<span>Id:{{outlet.outlet_id}} </span> | |||
<div> | |||
<div class="rating"> Rating: {{ outlet.rating }} <i class="icon ion-ios-star"></i> </div> | |||
<div class="upfold-header"> | |||
<span>Outlet Id: {{outlet.outlet_id}} </span> | |||
<span>Type: {{outlet.outlet_type}}</span> | |||
<span>Timings: 9:00am to 10:00pm</span> | |||
</div> | |||
<p>{{outlet.description}}</p> | |||
</div> | |||
<div class="upfold-content"> | |||
<h4>MenuItems: {{outlet.menuitems.length}}</h4> | |||
<div class="menuitems"> | |||
<li *ngFor="let menuitem of outlet.menuitems; let index = index"> | |||
<figure> | |||
<img class="menu-img" src={{menuitem.image_url}}> | |||
</figure> | |||
<div class="menuitem-content"> | |||
<div> | |||
<div class="menu-header"> | |||
<h5>{{menuitem.menu_item_name}}</h5> | |||
<span>Price: ₹ {{menuitem.item_price}} <img src="../../assets/timer.svg"> {{menuitem.wait_duration}} </span> | |||
<span>Availiblity | |||
<span>Price: ₹ {{menuitem.item_price}} <img src="../../assets/timer.svg"> | |||
{{menuitem.wait_duration}} </span> | |||
<span>Availiblity | |||
<img *ngIf='menuitem.is_available === true' class="availibleStatus" src="../../assets/check.svg"> | |||
<img *ngIf='menuitem.is_available === false' class="availibleStatus" src="../../assets/cancel.svg"> | |||
</span> | |||
</div> | |||
<div> | |||
<div class="veg-category"> | |||
<span *ngIf="menuitem.is_vegetarian === true"><img src="../../assets/veg.svg"></span> | |||
<span *ngIf="menuitem.is_vegetarian === false"><img src="../../assets/non-veg.svg"></span> | |||
</div> | |||
</div> | |||
</li> | |||
</div> | |||
@@ -11,12 +11,19 @@ | |||
background-color: white; | |||
header{ | |||
display: inline-flex; | |||
vertical-align: middle; | |||
font-weight: 600; | |||
color: var(--dark-grey); | |||
padding-left: 15px; | |||
} | |||
.navmenu{ | |||
display: inline-flex; | |||
align-items: center; | |||
} | |||
span{ | |||
display: block; | |||
padding-left: 15px; | |||
} | |||
@media screen and (max-width: 1023px) { | |||
display: none; | |||
@@ -69,194 +76,353 @@ | |||
} | |||
} | |||
section { | |||
list-style: none; | |||
// section { | |||
// list-style: none; | |||
.outlet-menu { | |||
position: relative; | |||
margin: 50px; | |||
filter: brightness(120%); | |||
cursor: pointer; | |||
display: flex; | |||
flex-direction: rows; | |||
height: 25vh; | |||
// .outlet-menu { | |||
// position: relative; | |||
// margin: 50px; | |||
// filter: brightness(120%); | |||
// cursor: pointer; | |||
// display: flex; | |||
// flex-direction: rows; | |||
// height: 25vh; | |||
&:before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
height: 100%; | |||
width: 100%; | |||
border-radius: 10px; | |||
box-shadow: 0 0 5px 0px var(--grey); | |||
border: 2px solid var(--grey); | |||
filter: brightness(130%); | |||
} | |||
// &:before { | |||
// content: ''; | |||
// position: absolute; | |||
// top: 0; | |||
// left: 0; | |||
// height: 100%; | |||
// width: 100%; | |||
// border-radius: 10px; | |||
// box-shadow: 0 0 5px 0px var(--grey); | |||
// border: 2px solid var(--grey); | |||
// filter: brightness(130%); | |||
// } | |||
// figure { | |||
// display: flex; | |||
// width: 20%; | |||
// img { | |||
// display: block; | |||
// border-radius: 30px; | |||
// width: calc(100% - 10px); | |||
// height: 100%; | |||
// margin: 0 auto; | |||
// padding: 20px; | |||
// } | |||
// } | |||
// } | |||
// } | |||
// .upfold { | |||
// padding: 0 20px; | |||
// position: relative; | |||
// width: 40%; | |||
// h4 { | |||
// font-size: 18px; | |||
// color: var(--dark-grey); | |||
// margin: 15px 0px 5px; | |||
// display: inline-block; | |||
// padding-right: 10px; | |||
// } | |||
// p { | |||
// margin: 10px 0 0; | |||
// text-align: justify; | |||
// color: var(--dark-grey); | |||
// max-height: 100px; | |||
// overflow: auto; | |||
// } | |||
// div { | |||
// position: relative; | |||
// padding: 10px 0; | |||
// span { | |||
// display: block; | |||
// font-weight: 200; | |||
// font-size: 15px; | |||
// } | |||
// &:before { | |||
// content: ''; | |||
// position: absolute; | |||
// top: 0; | |||
// left: 0; | |||
// height: 100%; | |||
// width: 100%; | |||
// border-bottom: 1px solid var(--grey); | |||
// } | |||
// } | |||
// span { | |||
// color: var(--dark-grey); | |||
// font-weight: 500; | |||
// } | |||
// } | |||
// .upfold-content { | |||
// display: block; | |||
// position: relative; | |||
// width: 40%; | |||
// padding: 0 0 0 20px; | |||
// h4 { | |||
// position: sticky; | |||
// top: 0; | |||
// font-size: 18px; | |||
// color: var(--dark-grey); | |||
// padding: 10px 0; | |||
// display: inline-block; | |||
// padding-right: 10px; | |||
// width: 100%; | |||
// z-index: 0; | |||
// background-color: white; | |||
// &:before { | |||
// content: ''; | |||
// position: absolute; | |||
// top: 0; | |||
// width: 100%; | |||
// height: 100%; | |||
// box-shadow: 0 0 5px 0px var(--grey); | |||
// border-top: 2px solid var(--grey); | |||
// filter: brightness(130%); | |||
// z-index: 1; | |||
// } | |||
// } | |||
// .menuitems { | |||
// overflow: auto; | |||
// max-height: calc(100% - 5vh); | |||
// li{ | |||
// margin: 15px 0; | |||
// position: relative; | |||
// display: flex; | |||
// z-index: 0; | |||
// &:before{ | |||
// content: ''; | |||
// top: 0; | |||
// position: absolute; | |||
// width: 100%; | |||
// height: 100%; | |||
// border-bottom: 1px solid var(--grey); | |||
// padding-top: 7px; | |||
// z-index: -1; | |||
// background: var(--grey); | |||
// filter: brightness(135%); | |||
// border-radius: 10px; | |||
// } | |||
// .menu-img { | |||
// width: 70px; | |||
// height: 70px; | |||
// padding: 0; | |||
// border-radius: 10px; | |||
// } | |||
// } | |||
// .menuitem-content { | |||
// display: flex; | |||
// justify-content: space-between; | |||
// align-items: center; | |||
// padding: 0 10px; | |||
// width: 100%; | |||
// h5 { | |||
// color: var(--dark-grey); | |||
// font-size: 15px; | |||
// } | |||
// img{ | |||
// width: 20px; | |||
// } | |||
// span { | |||
// font-size: 14px; | |||
// color: var(--dark-grey); | |||
// font-weight: 500; | |||
// padding-right: 10px; | |||
// display: block; | |||
// img{ | |||
// vertical-align: middle; | |||
// width: 14px; | |||
// } | |||
// } | |||
// } | |||
// } | |||
// } | |||
figure { | |||
display: flex; | |||
width: 20%; | |||
img { | |||
display: block; | |||
border-radius: 30px; | |||
width: calc(100% - 10px); | |||
height: 100%; | |||
margin: 0 auto; | |||
padding: 20px; | |||
} | |||
} | |||
} | |||
.outlet-menu{ | |||
display: grid; | |||
grid-template-columns: repeat(4, 1fr); | |||
list-style: none; | |||
} | |||
.upfold { | |||
padding: 0 20px; | |||
.outlets{ | |||
list-style: none; | |||
position: relative; | |||
width: 40%; | |||
margin: 30px; | |||
filter: brightness(120%); | |||
cursor: pointer; | |||
display: flex; | |||
flex-direction: column; | |||
padding: 10px; | |||
h4 { | |||
font-size: 18px; | |||
color: var(--dark-grey); | |||
margin: 15px 0px 5px; | |||
display: inline-block; | |||
padding-right: 10px; | |||
&:before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
height: 100%; | |||
width: 100%; | |||
border-radius: 10px; | |||
box-shadow: 0 0 5px 0px var(--grey); | |||
border: 2px solid var(--grey); | |||
filter: brightness(130%); | |||
} | |||
p { | |||
margin: 10px 0 0; | |||
text-align: justify; | |||
color: var(--dark-grey); | |||
max-height: 100px; | |||
overflow: auto; | |||
figure{ | |||
position: relative; | |||
display: block; | |||
} | |||
.outlet-img{ | |||
display: block; | |||
height: 100px; | |||
margin: 0 auto; | |||
border-radius: 10px; | |||
width: 100%; | |||
height: 150px; | |||
} | |||
} | |||
.upfold{ | |||
div { | |||
display: flex; | |||
justify-content: space-between; | |||
.upfold-header{ | |||
position: relative; | |||
padding: 10px 0; | |||
width: 100%; | |||
h4 { | |||
font-size: 15px; | |||
color: var(--dark-grey); | |||
margin: 15px 0px 5px; | |||
display: inline-block; | |||
padding-right: 10px; | |||
} | |||
span{ | |||
display: block; | |||
font-size: 12px; | |||
color: var(--dark-grey); | |||
font-weight: 500; | |||
} | |||
&:before { | |||
content: ''; | |||
&:before{ | |||
content: ""; | |||
position: absolute; | |||
width: 100%; | |||
border-bottom: 1px solid var(--grey); | |||
top: 0; | |||
left: 0; | |||
height: 100%; | |||
width: 100%; | |||
border-bottom: 1px solid var(--grey); | |||
span { | |||
margin: 0 auto; | |||
} | |||
padding: 4px 0; | |||
} | |||
} | |||
h4 { | |||
font-size: 15px; | |||
color: var(--dark-grey); | |||
margin: 15px 0px 5px; | |||
padding-right: 10px; | |||
position: relative; | |||
} | |||
span { | |||
.rating{ | |||
display: block; | |||
float: right; | |||
font-size: 12px; | |||
color: var(--dark-grey); | |||
font-weight: 500; | |||
} | |||
} | |||
.upfold-content { | |||
display: block; | |||
position: relative; | |||
width: 40%; | |||
padding: 0 0 0 20px; | |||
h4 { | |||
position: sticky; | |||
top: 0; | |||
font-size: 18px; | |||
color: var(--dark-grey); | |||
padding: 10px 0; | |||
display: inline-block; | |||
padding-right: 10px; | |||
width: 100%; | |||
z-index: 0; | |||
background-color: white; | |||
&:before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
width: 100%; | |||
height: 100%; | |||
box-shadow: 0 0 5px 0px var(--grey); | |||
.menuitems{ | |||
position: relative; | |||
max-height: 20vh; | |||
overflow: auto; | |||
border-top: 2px solid var(--grey); | |||
filter: brightness(130%); | |||
z-index: 1; | |||
li{ | |||
display: flex; | |||
flex-direction: row; | |||
figure{ | |||
position: relative; | |||
.menu-img{ | |||
width: 60px; | |||
height: 60px; | |||
border-radius: 10px; | |||
} | |||
} | |||
} | |||
.menuitems { | |||
overflow: auto; | |||
max-height: calc(100% - 5vh); | |||
li{ | |||
margin: 15px 0; | |||
position: relative; | |||
display: flex; | |||
z-index: 0; | |||
&:before{ | |||
content: ''; | |||
top: 0; | |||
position: absolute; | |||
width: 100%; | |||
height: 100%; | |||
border-bottom: 1px solid var(--grey); | |||
padding-top: 7px; | |||
z-index: -1; | |||
background: var(--grey); | |||
filter: brightness(135%); | |||
border-radius: 10px; | |||
.menuitem-content{ | |||
width: 100%; | |||
display: flex; | |||
flex-direction: row; | |||
align-items: center; | |||
justify-content: space-between; | |||
padding: 0 10px; | |||
} | |||
.menu-img { | |||
width: 70px; | |||
height: 70px; | |||
padding: 0; | |||
border-radius: 10px; | |||
} | |||
.menu-header{ | |||
padding-bottom: 10px; | |||
} | |||
h5 { | |||
font-size: 12px; | |||
color: var(--dark-grey); | |||
display: inline-block; | |||
} | |||
.menuitem-content { | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
padding: 0 10px; | |||
width: 100%; | |||
span{ | |||
display: block; | |||
color: var(--dark-grey); | |||
font-size: 10px; | |||
h5 { | |||
color: var(--dark-grey); | |||
font-size: 15px; | |||
} | |||
img{ | |||
width: 20px; | |||
width: 10px; | |||
vertical-align: middle; | |||
} | |||
} | |||
} | |||
.veg-category{ | |||
span { | |||
font-size: 14px; | |||
color: var(--dark-grey); | |||
font-weight: 500; | |||
padding-right: 10px; | |||
display: block; | |||
span { | |||
font-size: 14px; | |||
color: var(--dark-grey); | |||
font-weight: 500; | |||
padding-right: 10px; | |||
display: block; | |||
img{ | |||
vertical-align: middle; | |||
width: 14px; | |||
} | |||
img{ | |||
vertical-align: middle; | |||
width: 14px; | |||
} | |||
} | |||
} | |||
} | |||
} |
@@ -31,7 +31,8 @@ export class OutletsComponent implements OnInit { | |||
} | |||
selectedOutlet(outlet: any) { | |||
console.log(outlet) | |||
localStorage.outlet_info = JSON.stringify(outlet) | |||
this.router.navigate(['/shop-details']) | |||
} | |||
logout() { | |||
@@ -71,7 +71,7 @@ export class SchedulesComponent implements OnInit { | |||
if (this.profile_type === 'ROLE_VENDOR') { | |||
this.profile_info = JSON.parse(localStorage.vendor_info); | |||
} else if (this.profile_type === 'OUTLET') { | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
} | |||
@@ -1,5 +1,11 @@ | |||
<section class="nav-bar"> | |||
<img src="assets/logo.svg" alt="Logo"> | |||
<div class="navmenu"> | |||
<img src="assets/logo.svg" alt="Logo"> | |||
<div *ngIf="profile_type === 'ROLE_VENDOR'"> | |||
<header>Welcome to {{profile_info.vendorName}}</header> | |||
<span>Vendor Id: {{profile_info.vendor_Id}}</span> | |||
</div> | |||
</div> | |||
<nav> | |||
<a [ngClass]="{'active' : selected_nav.name === 'faq'}" | |||
(click)="selected_nav.name = 'faq'"> FAQ's </a> | |||
@@ -12,22 +18,14 @@ | |||
<div class="container"> | |||
<section class="side-navigation"> | |||
<section class="user-info" *ngIf="profile_type === 'ROLE_VENDOR'"> | |||
<img> | |||
<div class="name"> {{ profile_info.vendorName }} </div> | |||
<div class="other-info"> Vendor ID: {{ profile_info.vendor_Id }} </div> | |||
<div class="other-info"> {{ profile_info.outlet.length }} Outlets </div> | |||
<div class="other-info"> Average Rating: 3 <i class="icon ion-ios-star"></i> </div> | |||
</section> | |||
<section class="user-info" *ngIf="profile_type === 'OUTLET'"> | |||
<section class="user-info"> | |||
<img> | |||
<div class="name"> {{ profile_info.outlet_name }} </div> | |||
<div class="other-info"> Outlet ID: {{ profile_info.outlet_id }} </div> | |||
<div class="other-info"> {{ profile_info.menuitems.length }} Menu Items </div> | |||
<div class="other-info"> Average Rating: {{ profile_info.rating }} <i class="icon ion-ios-star"></i> </div> | |||
</section> | |||
<ul> | |||
<li [ngClass]="{'active' : selected_nav.name === 'dashboard'}" [routerLink]="['/shop-details/dashboard']"> | |||
<i class="icon ion-ios-home"></i> <label> Dashboard </label> | |||
@@ -61,5 +59,6 @@ | |||
<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.name === 'more'"></app-more> | |||
<app-outlets *ngIf="selected_nav.name === 'outlets'"></app-outlets> | |||
</section> | |||
</div> |
@@ -14,6 +14,21 @@ | |||
display: none; | |||
} | |||
header{ | |||
font-weight: 600; | |||
color: var(--dark-grey); | |||
padding-left: 15px; | |||
} | |||
.navmenu{ | |||
display: inline-flex; | |||
align-items: center; | |||
} | |||
span{ | |||
display: block; | |||
padding-left: 15px; | |||
} | |||
img { | |||
width: 70px; | |||
} | |||
@@ -38,12 +38,14 @@ export class WidgetsHolderComponent implements OnInit { | |||
this.profile_type = localStorage.current_login_type; | |||
if (this.profile_type === 'ROLE_VENDOR') { | |||
this.profile_info = JSON.parse(localStorage.vendor_info); | |||
} else if (this.profile_type === 'OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
} else if (this.profile_type === 'ROLE_OUTLET') { | |||
this.profile_info = JSON.parse(localStorage.outlet_info); | |||
} else { | |||
this.router.navigate(['/login']); | |||
} | |||
console.log(this.profile_info) | |||
} | |||
logout() { | |||