From 6c08bd42651b73c1d6c175c5a08fa2912dd51f85 Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 26 Aug 2015 13:10:50 +1000 Subject: [PATCH] UX: improve hamburger in desktop - dock underneath header - click anywhere to get it to go away --- .../discourse/components/hamburger-menu.js.es6 | 18 ++++++++++++++++++ .../discourse/templates/application.hbs | 2 +- .../templates/components/hamburger-menu.hbs | 4 +++- .../stylesheets/common/base/hamburger.scss | 5 +++-- app/assets/stylesheets/desktop.scss | 1 + app/assets/stylesheets/desktop/hamburger.scss | 8 ++++++++ app/assets/stylesheets/mobile/hamburger.scss | 0 7 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 app/assets/stylesheets/desktop/hamburger.scss create mode 100644 app/assets/stylesheets/mobile/hamburger.scss diff --git a/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 index 92a0e5c1f4a..9dc957ed8c0 100644 --- a/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 +++ b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 @@ -4,6 +4,23 @@ export default Ember.Component.extend({ classNameBindings: ['visible::slideright'], elementId: 'hamburger-menu', + visibilityChanged: function(){ + if(this.get("visible")) { + $('html').on('click.close-humburger', (e) => { + const $target = $(e.target); + if ($target.closest('.dropdown.categories').length > 0) { + return; + } + console.log(e.toElement || e.relatedTarget || e.target); + this.set("visible", false); + $('html').off('click.close-humburger'); + return true; + }); + } else { + $('html').off('click.close-humburger'); + } + }.observes("visible"), + @computed() showKeyboardShortcuts() { return !Discourse.Mobile.mobileView && !this.capabilities.touch; @@ -43,6 +60,7 @@ export default Ember.Component.extend({ $('body').off('keydown.discourse-hambuger'); $('body').off('swipeleft.discourse-hamburger'); $('body').off('swiperight.discourse-hamburger'); + $('body').off('click.close-humburger'); }, @computed() diff --git a/app/assets/javascripts/discourse/templates/application.hbs b/app/assets/javascripts/discourse/templates/application.hbs index 3a3eb195586..24926f44871 100644 --- a/app/assets/javascripts/discourse/templates/application.hbs +++ b/app/assets/javascripts/discourse/templates/application.hbs @@ -1,4 +1,5 @@ {{render "header"}} +{{hamburger-menu visible=hamburgerVisible showKeyboardAction="showKeyboardShortcutsHelp"}}
@@ -19,4 +20,3 @@ {{render "topic-entrance"}} {{render "composer"}} -{{hamburger-menu visible=hamburgerVisible showKeyboardAction="showKeyboardShortcutsHelp"}} diff --git a/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs index 58e2b1150ed..b85ffb0b92c 100644 --- a/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs +++ b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs @@ -1,5 +1,7 @@ {{#if visible}} - {{fa-icon 'times'}} +