Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Menu(id, naam, type, omschrijving, samenstelling, prijs) {
  2.     this.id = id;
  3.     this.naam = naam;
  4.     this.type = type;
  5.     this.omschrijving = omschrijving;
  6.     this.samenstelling = samenstelling;
  7.     this.prijs = prijs;
  8. }
  9. var menusView = {
  10.     menusRep: null,
  11.     init: function () {
  12.         this.menusRep = menusRepository;
  13.         this.getMenus();
  14.         $("#types").change(function () {
  15.             menusView.filterType($(this).val());
  16.         });
  17.     },
  18.     getMenus: function () {
  19.         //haal menus uit json file
  20.         $.getJSON('data/voordeelmenus.json', function (data) {
  21.             menusRepository.menus = $.map(data, function (item) {
  22.                 return new Menu(item.id, item.naam, item.type, item.omschrijving, item.samenstelling, item.prijs);
  23.             });
  24.             // console.log(menusRepository.menus);
  25.             menusView.typesToHtml();
  26.             menusView.menusToHtml(menusView.menusRep.menus);
  27.         });
  28.     },
  29.     filterType: function (type) {
  30.         var filteredMenus = [];
  31.         if (type === "Alles")
  32.             this.menusToHtml(this.menusRep.menus);
  33.         else {
  34.             this.menusToHtml(this.menusRep.getTypeMenus(type));
  35.         }
  36.     },
  37.     typesToHtml: function () {
  38.         var types = this.menusRep.getTypes();
  39.  
  40.         $.each(types, function (index, type) {
  41.             $("#types").append($("<option>").val(type).text(type));
  42.         });
  43.     },
  44.     menusToHtml: function (menus) {
  45.         $("#menus").empty();
  46.         $.each(menus, function (j, menu) {
  47.             var $samenstelling = $('<ul>');
  48.             var $imgSamenstelling = $('<div>');
  49.             $.each(menu.samenstelling, function (index, deel) {
  50.                 $samenstelling.append($('<li>').text(deel));
  51.                 $imgSamenstelling.append($('<img>').attr("src", "images/" + deel.replace(" ", "_") + ".png").attr("alt", deel));
  52.             });
  53.             var $menus = $("<div>").addClass("eenmenu")
  54.                     .append($("<h2>").text(menu.naam))
  55.                     .append($("<div>").addClass("flex")
  56.                             .append($("<section>").addClass("links")
  57.                                     .append($('<p>').text("Dit menu bestaat uit:")).append($samenstelling)
  58.                                     .append($('<p>').text("Type: ").append($('<span>').addClass("type").text(menu.type))))
  59.                             .append($("<section>").addClass("center")
  60.                                     .append($('<p>').addClass("prijs").text("€ " + menu.prijs))
  61.                                     .append($('<p>').text(menu.omschrijving)))
  62.                             .append($("<section>").addClass("rechts").append($imgSamenstelling))
  63.  
  64.                             );
  65.             $("#menus").append($menus);
  66.         });
  67.  
  68.         $(".type").click(function () {
  69.             $("#types").val($(this).text());
  70.             menusView.filterType($(this).text());
  71.         });
  72.     }
  73. };
  74.  
  75.  
  76.  
  77. var menusRepository = {
  78.     menus: [],
  79.     getTypes: function () {
  80.         /* array laten staan */
  81.         var types = [];
  82.         $.each(this.menus, function (i, menu) {
  83.             if (types.indexOf(menu.type) < 0) {
  84.                 types.push(menu.type);
  85.             }
  86.         });
  87.         return types.sort();
  88.     },
  89.     getTypeMenus: function (type) {
  90.         var typeMenus = [];
  91.         $.each(this.menus, function (index, value) {
  92.             if (value.type.indexOf(type) > -1)
  93.                 typeMenus.push(value);
  94.         });
  95.         return typeMenus;
  96.     },
  97.     // gebruik menus1 als het niet lukt menus op te halen uit JSON file
  98.     menus1: [new Menu(1, 'AAAVoordeelmenu Cheese', 'Runds', 'Burger van rundvlees met cheddarkaas, ketchup, mosterd, uitjes en augurk op een speciaal hamburgerbroodje.', ['cheeseburger', 'grote friet', 'frisdrank', 'appel muffin'], 8.99)
  99.                 , new Menu(2, 'Voordeelmenu Double Cheese', 'Runds', 'Twee rundvlees burgers met twee plakken cheddarkaas, ketchup, mosterd, uitjes en augurk op een speciaal hamburgerbroodje.', ['doublecheese', 'medium friet', 'frisdrank'], 6.99)
  100.                 , new Menu(3, 'Voordeelmenu Vegetarisch', 'Vegetarisch', 'Een vegetarische Groenteburger met wortel, rode paprika, kleine erwten, groene bonen en ui, verse sla, tomaat en een frisse sandwichsaus op een sesambroodje.', ['groenteburger', 'grote friet', 'frisdrank', 'mcflurry kitkat'], 7.75)
  101.                 , new Menu(4, 'Voordeelmenu Chili McChicken', 'Kip', 'Broodje met krokante kip, frisse sla en sweet chilisaus.', ['chili mcchicken', 'kleine friet', 'frisdrank', 'appel muffin'], 6.99)
  102.                 , new Menu(5, 'Voordeelmenu Fish Filet', 'Vis', 'Visfilet met smeltkaas en tartaarsaus op een gestoomd broodje.', ['fish filet', 'medium friet', 'frisdrank', 'chocolate cookie'], 7.99)
  103.                 , new Menu(6, 'Voordeelmenu Hamburger Bacon', 'Runds', 'Hamburger Bacon: Burger van rundvlees met bacon (varkensvlees), ketchup, mosterd, uitjes en augurk op een speciaal hamburgerbroodje.', ['hamburger bacon', 'kleine friet', 'frisdrank', 'sidesalad', 'mcflurry stroopwafel'], 9.99)
  104.                 , new Menu(7, 'Voordeelmenu McWrap', 'Kip', 'Grote wrap met krokante kip, cheddar kaas, rucola, sla, tomaat en honing-mosterdsaus.', ['mcwrap honingmosterd', 'grote friet', 'frisdrank', 'appel muffin'], 9.49)
  105.                 , new Menu(8, 'Voordeelmenu Hamburger', 'Runds', 'Burger van rundvlees met ketchup, mosterd, uitjes en augurk op een speciaal hamburgerbroodje.', ['hamburger', 'medium friet', 'frisdrank', 'chocolate cookie'], 7.5)
  106.                 , new Menu(9, 'Voordeelmenu Chicken Sensation', 'Kip', 'Krokante kipfilet, honing-mosterdsaus, rode ui, ijsbergsla en tomaat op een sesam- en lijnzaadbroodje.', ['chicken sensation', 'kleine friet', 'frisdrank', 'appel muffin'], 8.5)
  107.                 , new Menu(10, 'Voordeelmenu McChicken', 'Kip', 'Malse kipfilet met een krokant laagje, sla en een frisse sandwichsaus op een sesambroodje.', ['mcchicken', 'grote friet', 'frisdrank', 'sidesalad', 'appel muffin'], 9.99)]
  108. };
  109. $(document).ready(function () {
  110.     menusView.init();
  111.  
  112. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement