| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /*
- Switches to a different strand
- Input:
- name: name of the strand. Must end with "Strand"
- */
- let changeStrand = (name)=>{
- closeSidebar();
- for(let strand of document.querySelectorAll(".strand")){
- strand.style.display = "none";
- }
- for(let button of document.querySelectorAll(".menu > button")){
- button.classList = "";
- button.onclick = ()=>{changeStrand(`${button.id.slice(0, button.id.indexOf("Btn"))}Strand`)};
- }
- let activeButton = document.querySelector(`#${name.slice(0, name.indexOf("Strand"))}Btn`);
- activeButton.classList = "active";
- activeButton.onclick = undefined;
- document.querySelector(`#${name}`).style.display = "flex";
- window[`${name}Obj`].display();
- }
- /*
- Updates an order in the front end
- Can create, edit or remove
- order = {
- _id: id of recipe,
- name: name of recipe,
- price: price of recipe,
- ingredients: [
- ingredient: id of ingredient,
- quantity: quantity of ingredient
- ]
- }
- */
- let updateOrders = (order, remove = false)=>{
- let isNew = true;
- for(let i = 0; i < orders.length; i++){
- if(orders[i]._id === order._id){
- if(remove){
- orders.splice(i, 1);
- }else{
- orders[i] = order;
- }
- isNew = false;
- }
- }
- if(isNew){
- orders.push(order);
- }
- ordersStrandObj.isPopulated = false;
- ordersStrandObj.display();
- closeSidebar();
- }
- //Close any open sidebar
- let closeSidebar = ()=>{
- let sidebar = document.querySelector("#sidebarDiv");
- for(let i = 0; i < sidebar.children.length; i++){
- sidebar.children[i].style.display = "none";
- }
- sidebar.classList = "sidebarHide";
- }
- /*
- Open a specific sidebar
- Input:
- sidebar: the outermost element of the sidebar (must contain class sidebar)
- */
- let openSidebar = (sidebar)=>{
- document.querySelector("#sidebarDiv").classList = "sidebar";
- let sideBars = document.querySelector("#sidebarDiv").children;
- for(let i = 0; i < sideBars.length; i++){
- sideBars[i].style.display = "none";
- }
- sidebar.style.display = "flex";
- }
- let unitizeIngredients = (ingredients)=>{
- let ingredientsByUnit = [];
- for(let i = 0; i < ingredients.length; i++){
- let unitExists = false;
- for(let j = 0; j < ingredientsByUnit.length; j++){
- if(ingredients[i].ingredient.unit === ingredientsByUnit[j].name){
- ingredientsByUnit[j].ingredients.push({
- id: ingredients[i].ingredient._id,
- name: ingredients[i].ingredient.name,
- quantity: ingredients[i].quantity,
- unit: ingredients[i].ingredient.unit
- });
- unitExists = true;
- break;
- }
- }
- if(!unitExists){
- ingredientsByUnit.push({
- name: ingredients[i].ingredient.unit,
- ingredients: [{
- id: ingredients[i].ingredient._id,
- name: ingredients[i].ingredient.name,
- quantity: ingredients[i].quantity,
- unit: ingredients[i].ingredient.unit
- }]
- })
- }
- }
- return ingredientsByUnit;
- }
- homeStrandObj.display();
|