@@ -47,6 +47,55 @@ | |||
</td> | |||
</tr> | |||
</table> | |||
</section> | |||
</section> | |||
<section class="popup" [ngClass]="{'active' : showAddItemModal }"> | |||
<div class="popup-box"> | |||
<header> Add Item </header> | |||
<ul class="input-list"> | |||
<li *ngIf="newItem.image_url"> | |||
<img [src]="newItem.image_url"> | |||
</li> | |||
<li> | |||
<label> Image URL </label> | |||
<input type="text" [(ngModel)]="newItem.image_url"> | |||
</li> | |||
<li> | |||
<label> Item Name </label> | |||
<input type="text" [(ngModel)]="newItem.menu_item_name"> | |||
</li> | |||
<li> | |||
<label> Is Vegetarian? </label> | |||
<div class="toggle" [ngClass]="{'on' : newItem.is_vegetarian }" | |||
(click)="newItem.is_vegetarian = !newItem.is_vegetarian"> | |||
<div class="knob"></div> | |||
</div> | |||
</li> | |||
<li> | |||
<label> Price in INR </label> | |||
<input type="number" [(ngModel)]="newItem.item_price"> | |||
</li> | |||
<li> | |||
<label> Discount in INR </label> | |||
<input type="number" [(ngModel)]="newItem.item_discount"> | |||
</li> | |||
<li> | |||
<label> Waiting Time (In Minutes) </label> | |||
<input type="number" [(ngModel)]="newItem.wait_duration"> | |||
</li> | |||
</ul> | |||
<div class="action-buttons"> | |||
<button class="rect-button" (click)="addNewItem()"> Submit </button> | |||
<button class="rect-button" (click)="showAddItemModal = false"> Cancel </button> | |||
</div> | |||
</div> | |||
</section> | |||
<button class="add-item-button active" (click)="showAddItemModal = true"> | |||
<i class="icon ion-md-add"></i> | |||
</button> | |||
</div> |
@@ -173,6 +173,10 @@ | |||
&:nth-child(1) { | |||
padding-left: 10px; | |||
} | |||
&:nth-child(7) { | |||
padding-left: 10px; | |||
} | |||
} | |||
} | |||
.subscribed-offers { | |||
@@ -413,3 +417,94 @@ | |||
} | |||
} | |||
} | |||
.add-item-button { | |||
position: fixed; | |||
right: 50px; | |||
bottom: 80px; | |||
width: 50px; | |||
height: 50px; | |||
border-radius: 50%; | |||
background-color: var(--brand-blue); | |||
color: white; | |||
border: 0px; | |||
font-size: 20px; | |||
transform: scale(0); | |||
transition: transform 0.3s; | |||
&.active { | |||
transform: scale(1); | |||
animation: ripple-effect 1s linear; | |||
animation-iteration-count: 3; | |||
} | |||
} | |||
@keyframes ripple-effect { | |||
0% { | |||
box-shadow: 0 0 0 10px rgba(black, 0.3); | |||
} | |||
30% { | |||
box-shadow: 0 0 0 20px rgba(black, 0.2); | |||
} | |||
60% { | |||
box-shadow: 0 0 0 30px rgba(black, 0.1); | |||
} | |||
100% { | |||
box-shadow: 0 0 0 50px rgba(black, 0); | |||
} | |||
} | |||
.popup-box { | |||
width: 400px; | |||
padding: 15px; | |||
.input-list { | |||
list-style: none; | |||
padding: 0; | |||
margin: 10px 0; | |||
} | |||
li { | |||
text-align: left; | |||
margin: 20px 0; | |||
position: relative; | |||
label { | |||
display: block; | |||
font-size: 14px; | |||
color: dimgrey; | |||
font-weight: 500; | |||
} | |||
img { | |||
width: 100px; | |||
height: 100px; | |||
border-radius: 10px; | |||
box-shadow: 0px 0px 5px var(--grey); | |||
margin: 0 auto; | |||
display: block; | |||
} | |||
input { | |||
width: 100%; | |||
display: block; | |||
height: 40px; | |||
border-radius: 5px; | |||
border: 2px solid var(--grey); | |||
margin-top: 10px; | |||
padding: 0 10px; | |||
font-size: 16px; | |||
&:focus { | |||
border-color: var(--brand-blue); | |||
} | |||
} | |||
.toggle { | |||
margin: 0; | |||
margin-top: 10px; | |||
cursor: pointer; | |||
} | |||
} | |||
} |
@@ -13,6 +13,32 @@ export class MenuItemsComponent implements OnInit { | |||
searchTerm: string = ''; | |||
menuItems: any = []; | |||
showAddItemModal: boolean = true; | |||
newItem: { | |||
image_url: string, | |||
is_available: boolean, | |||
is_vegetarian: boolean, | |||
item_categories: Array<any>, | |||
item_discount: number, | |||
item_price: number, | |||
menu_item_name: string, | |||
rating: number, | |||
soft_delete: boolean, | |||
wait_duration: number, | |||
} = { | |||
image_url: '', | |||
is_available: false, | |||
is_vegetarian: true, | |||
item_categories: [], | |||
item_discount: null, | |||
item_price: null, | |||
menu_item_name: '', | |||
rating: 3, | |||
soft_delete: false, | |||
wait_duration: 0 | |||
}; | |||
constructor( | |||
private itemService: ItemService | |||
) { } | |||
@@ -53,4 +79,8 @@ export class MenuItemsComponent implements OnInit { | |||
}); | |||
} | |||
addNewItem() { | |||
console.log(this.newItem); | |||
} | |||
} |
@@ -108,7 +108,7 @@ button { | |||
.popup-box { | |||
background-color: white; | |||
border-radius: 10px; | |||
padding: 50px; | |||
padding: 10px; | |||
text-align: center; | |||
transform: scale(0); | |||
transition: transform 0.3s; | |||