From a7e7b7f6bd1418076f43f067229b5403f3b1d625 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Thu, 29 Jan 2015 16:40:20 -0500 Subject: [PATCH] navbar working --- js/menus/MenuWrapperView.js | 8 +++++--- js/menus/navbar.js | 17 +++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/js/menus/MenuWrapperView.js b/js/menus/MenuWrapperView.js index 378ee3ad..7d539359 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 c18df0fe..a18cd392 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){ -- GitLab