/** * Created by aghassaei on 5/27/15. */ define(['jquery', 'underscore', 'backbone', 'plist', 'lattice', 'text!navViewMenuTemplate'], function($, _, Backbone, plist, lattice, template){ return Backbone.View.extend({ el: "#navViewMenu", events: { "click a": "_makeSelection", "click #reset3DView": "_reset3DNavigation" }, initialize: function(){ _.bindAll(this, "render"); }, _makeSelection: function(e){ var $target = $(e.target); if ($target.hasClass("customClick")) return; e.preventDefault(); if ($target.prop("tagName") == "SPAN") $target = $target.parent(); var property = $target.data("property"); var value = $target.data("value"); var owner = this._getPropertyOwner($target); if (owner) { if (value) owner.set(property, value); else owner.set(property, !owner.get(property)); } }, _getPropertyOwner: function($target){ if ($target.hasClass("appState")) return this.model; console.warn("no owner found for:"); console.warn($target); return null; }, _reset3DNavigation: function(e){ e.preventDefault(); this.model.reset3DNavigation(); }, render: function(){ this.$el.html(this.template(_.extend(this.model.toJSON(), plist, lattice.toJSON()))); var self = this; _.each($(".boolProperty"), function(item){ var $item = $(item); if (self.model.get($item.data("property"))) $item.html('<span class="fui-check"></span>' + $item.html()); }) }, template: _.template(template) }); });