Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Menu(id, naam, type, omschrijving, samenstelling, prijs) {
- this.id = id;
- this.naam = naam;
- this.type = type;
- this.omschrijving = omschrijving;
- this.samenstelling = samenstelling;
- this.prijs = prijs;
- }
- var menusView = {
- menusRep: null,
- init: function () {
- this.menusRep = menusRepository;
- this.getMenus();
- $("#types").change(function () {
- menusView.filterType($(this).val());
- });
- },
- getMenus: function () {
- //haal menus uit json file
- $.getJSON('data/voordeelmenus.json', function (data) {
- menusRepository.menus = $.map(data, function (item) {
- return new Menu(item.id, item.naam, item.type, item.omschrijving, item.samenstelling, item.prijs);
- });
- // console.log(menusRepository.menus);
- menusView.typesToHtml();
- menusView.menusToHtml(menusView.menusRep.menus);
- });
- },
- filterType: function (type) {
- var filteredMenus = [];
- if (type === "Alles")
- this.menusToHtml(this.menusRep.menus);
- else {
- this.menusToHtml(this.menusRep.getTypeMenus(type));
- }
- },
- typesToHtml: function () {
- var types = this.menusRep.getTypes();
- $.each(types, function (index, type) {
- $("#types").append($("<option>").val(type).text(type));
- });
- },
- menusToHtml: function (menus) {
- $("#menus").empty();
- $.each(menus, function (j, menu) {
- var $samenstelling = $('<ul>');
- var $imgSamenstelling = $('<div>');
- $.each(menu.samenstelling, function (index, deel) {
- $samenstelling.append($('<li>').text(deel));
- $imgSamenstelling.append($('<img>').attr("src", "images/" + deel.replace(" ", "_") + ".png").attr("alt", deel));
- });
- var $menus = $("<div>").addClass("eenmenu")
- .append($("<h2>").text(menu.naam))
- .append($("<div>").addClass("flex")
- .append($("<section>").addClass("links")
- .append($('<p>').text("Dit menu bestaat uit:")).append($samenstelling)
- .append($('<p>').text("Type: ").append($('<span>').addClass("type").text(menu.type))))
- .append($("<section>").addClass("center")
- .append($('<p>').addClass("prijs").text("€ " + menu.prijs))
- .append($('<p>').text(menu.omschrijving)))
- .append($("<section>").addClass("rechts").append($imgSamenstelling))
- );
- $("#menus").append($menus);
- });
- $(".type").click(function () {
- $("#types").val($(this).text());
- menusView.filterType($(this).text());
- });
- }
- };
- var menusRepository = {
- menus: [],
- getTypes: function () {
- /* array laten staan */
- var types = [];
- $.each(this.menus, function (i, menu) {
- if (types.indexOf(menu.type) < 0) {
- types.push(menu.type);
- }
- });
- return types.sort();
- },
- getTypeMenus: function (type) {
- var typeMenus = [];
- $.each(this.menus, function (index, value) {
- if (value.type.indexOf(type) > -1)
- typeMenus.push(value);
- });
- return typeMenus;
- },
- // gebruik menus1 als het niet lukt menus op te halen uit JSON file
- 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)
- , 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)
- , 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)
- , 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)
- , 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)
- , 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)
- , 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)
- , 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)
- , 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)
- , 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)]
- };
- $(document).ready(function () {
- menusView.init();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement