diff --git a/js/menus/MenuWrapperView.js b/js/menus/MenuWrapperView.js index 378ee3ad0ebfcd176a7c05496be63132714bb622..7d539359682b39f4f33c43e5d88a409553088a77 100644 --- a/js/menus/MenuWrapperView.js +++ b/js/menus/MenuWrapperView.js @@ -13,7 +13,7 @@ MenuWrapper = Backbone.View.extend({ initialize: function(options){ - _.bindAll(this, "render", "_updateCurrentTab", "_setVisibility"); + _.bindAll(this, "render", "_updateCurrentTab", "_setVisibility", "_hide", "_show"); //init all tab view controllers this.latticeMenu = new LatticeMenuView({model:options.lattice}); @@ -84,7 +84,7 @@ MenuWrapper = Backbone.View.extend({ var self = this; this._hide(function(){ self._populateAndShow(); - }); + }, true); }, _populateAndShow: function(){ @@ -104,12 +104,14 @@ MenuWrapper = Backbone.View.extend({ } }, - _hide: function(callback){ + _hide: function(callback, suppressModelUpdate){ this.$el.parent().animate({right: "-400"}, {done: callback}); + if (!suppressModelUpdate) this.model.set("menuIsVisible", false); }, _show: function(){ this.$el.parent().animate({right: "0"}); + this.model.set("menuIsVisible", true); }, template: _.template('\ diff --git a/js/menus/navbar.js b/js/menus/navbar.js index c18df0febe8438308632641f0a3608113230a4f4..a18cd392fc37d7ed2fd541e2e9e6f0fdc56ebc2e 100644 --- a/js/menus/navbar.js +++ b/js/menus/navbar.js @@ -20,21 +20,26 @@ NavBar = Backbone.View.extend({ _.bindAll(this, "_setMenuVis"); - this._uiStuff(); + this.listenTo(this.model, "change:menuIsVisible", this._updateShowHideButton); + this._uiStuff(); }, _setMenuVis: function(e){ e.preventDefault(); - var $button = $(e.target); + var state = this.model.get("menuIsVisible"); + this.model.set("menuIsVisible", !state); + $(e.target).blur(); + }, + + _updateShowHideButton: function(){ + var $button = $("#showHideMenu"); var state = this.model.get("menuIsVisible"); if(state){ - $button.html("<< Show Menu"); - } else { $button.html("Hide Menu >>"); + } else { + $button.html("<< Show Menu"); } - this.model.set("menuIsVisible", !state); - $button.blur(); }, _setNavSelection: function(e){