Esempio n. 1
0
    render: function() {
      //carica il template
      this.el.innerHTML = this.template({});
      //crea un riferimento all'elemento di contenuto
      this.contentElement = this.$el.find('#content')[0];
      $(this.el).html(this.template({}));

      var instance = this;
      var cartone = new Cartone();
      //aggiorna il numero di pizze sull'icona del Cartone
      $("#quantita_cartone").html(cartone.getNumeroPizze());

      //recupera la Pizzeria dal browser e imposta il suo nome nel sottotitolo
      //della pagina Menu
      var pizzeria = new Pizzeria();
      pizzeria.carica();
      document.getElementById("subtitle").innerHTML = 'pizzeria '+ pizzeria.get("nome");
      //inizializza tante PizzaSubView quanti model ci sono nel Menu
      this.collection.each(function(pizza) {
        var pizzaSV = new PizzaSubView({model: pizza});
        var pizzaSVall = new PizzaSubView({model: pizza});
        var categoria = pizzaSV.model.toJSON().categoria;
        //riempie le sottoliste del Menu in base alla categoria
        $(instance.el).find("#tutte").append(pizzaSVall.el);  
        if(categoria == 'Rossa') {
          $(instance.el).find("#rosse").append(pizzaSV.el);
        }         
        if(categoria == 'Bianca') {
          $(instance.el).find("#bianche").append(pizzaSV.el);
        }
      }, this);

      return this;
    },
Esempio n. 2
0
    initialize: function() {
      var instance = this;
      //recupera la pizzeria salvata nel browser
      var pizzeria = new Pizzeria();
      pizzeria.carica();
      //l'url per il fetch viene ottenuto dal nome della Pizzeria 
      //(soluzione temporanea all'assenza di server-side)
      var url = "js/JSON/" + pizzeria.get("nome") + ".JSON";

      //carica il template precompilato
      this.template = Utils.templates.menu;
      //inizializza uno spinner per il caricamento
      var opts = {
        lines: 15, //linee da disegnare
        length: 15, //lunghezza delle linee
        width: 5, //spessore delle linee
        radius: 20, //raggio del cerchio interno
        corners: 1, //rotondità degli angoli (0..1)
        shadow: true, //ombra
        hwaccel: true, //accelerazione hardware
      };  
      var target = $("#spinner_menu");
      var spinner = new Spinner(opts).spin(target);
      //inizializza il Menu ed effettua il fetch
      this.collection = new Menu(url);
      this.collection.fetch({success: function(collection) {
          instance.render();
          spinner.stop();
        }
      });
    },