From 600ab5ad51a6b253900367092f3d4ae8f919e878 Mon Sep 17 00:00:00 2001 From: Sam <sam.saffron@gmail.com> Date: Wed, 26 Aug 2015 13:44:48 +1000 Subject: [PATCH] improve hamburger rendering fix test cases --- .../components/hamburger-menu.js.es6 | 9 +- .../templates/components/hamburger-menu.hbs | 127 +++++++++--------- .../stylesheets/common/base/hamburger.scss | 19 ++- 3 files changed, 89 insertions(+), 66 deletions(-) diff --git a/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 index 9dc957ed8..32e7d194a 100644 --- a/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 +++ b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 @@ -7,14 +7,21 @@ export default Ember.Component.extend({ visibilityChanged: function(){ if(this.get("visible")) { $('html').on('click.close-humburger', (e) => { + + if (this.get('isDestroyed')) { + $('html').off('click.close-humburger'); + return true; + } + 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'); diff --git a/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs index b85ffb0b9..7cef85af9 100644 --- a/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs +++ b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs @@ -2,77 +2,78 @@ <div class='hamburger-header clearfix'> <a href {{action "close"}} class='close-hamburger'>{{fa-icon 'times'}}</a> </div> - <ul class="location-links"> - {{#if currentUser.staff}} + <div class='hamburger-body'> + <ul class="location-links"> + {{#if currentUser.staff}} + <li> + {{#link-to "admin" class="admin-link"}} + {{fa-icon "wrench"}} {{i18n 'admin_title'}} + {{/link-to}} + </li> + <li> + {{#link-to "adminFlags" class="flagged-posts-link"}} + {{fa-icon "flag"}} {{i18n 'flags_title'}} + {{#if currentUser.site_flagged_posts_count}} + <span title={{i18n 'notifications.total_flagged'}} class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</span> + {{/if}} + {{/link-to}} + </li> + {{/if}} <li> - {{#link-to "admin" class="admin-link"}} - {{fa-icon "wrench"}} {{i18n 'admin_title'}} + {{#link-to "discovery.latest" class="latest-topics-link"}} + {{i18n 'filters.latest.title.zero'}} {{/link-to}} </li> + {{#if siteSettings.enable_badges}} + <li> + {{#link-to 'badges' class="badge-link"}}{{i18n 'badges.title'}}{{/link-to}} + </li> + {{/if}} + + {{#if siteSettings.enable_user_directory}} + <li>{{#link-to 'users' class="user-directory-link"}}{{i18n "directory.title"}}{{/link-to}}</li> + {{/if}} + + {{#if currentUser.show_queued_posts}} + <li> + {{#link-to 'queued-posts'}} + {{i18n "queue.title"}} + {{#if currentUser.post_queue_new_count}} + <span class='badge-notification flagged-posts'>{{currentUser.post_queue_new_count}}</span> + {{/if}} + {{/link-to}} + </li> + {{/if}} + + {{plugin-outlet "site-map-links"}} + + {{#if showKeyboardShortcuts}} + <li><a href {{action "keyboardShortcuts"}} class="keyboard-shortcuts-link">{{i18n 'keyboard_shortcuts_help.title'}}</a></li> + {{/if}} <li> - {{#link-to "adminFlags" class="flagged-posts-link"}} - {{fa-icon "flag"}} {{i18n 'flags_title'}} - {{#if currentUser.site_flagged_posts_count}} - <span title={{i18n 'notifications.total_flagged'}} class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</span> - {{/if}} - {{/link-to}} + <a href={{faqUrl}} class="faq-link">{{i18n 'faq'}}</a> </li> - {{/if}} - <li> - {{#link-to "discovery.latest" class="latest-topics-link"}} - {{i18n 'filters.latest.title.zero'}} - {{/link-to}} - </li> - {{#if siteSettings.enable_badges}} <li> - {{#link-to 'badges' class="badge-link"}}{{i18n 'badges.title'}}{{/link-to}} + {{#link-to 'about' class="about-link"}}{{i18n 'about.simple_title'}}{{/link-to}} </li> - {{/if}} + {{#if showMobileToggle}} + <li><a href class="mobile-toggle-link" {{action "toggleMobileView"}}>{{boundI18n mobileViewLinkTextKey}}</a></li> + {{/if}} - {{#if siteSettings.enable_user_directory}} - <li>{{#link-to 'users' class="user-directory-link"}}{{i18n "directory.title"}}{{/link-to}}</li> - {{/if}} - - {{#if currentUser.show_queued_posts}} - <li> - {{#link-to 'queued-posts'}} - {{i18n "queue.title"}} - {{#if currentUser.post_queue_new_count}} - <span class='badge-notification flagged-posts'>{{currentUser.post_queue_new_count}}</span> - {{/if}} - {{/link-to}} - </li> - {{/if}} - - {{plugin-outlet "site-map-links"}} - - {{#if showKeyboardShortcuts}} - <li><a href {{action "keyboardShortcuts"}} class="keyboard-shortcuts-link">{{i18n 'keyboard_shortcuts_help.title'}}</a></li> - {{/if}} - <li> - <a href={{faqUrl}} class="faq-link">{{i18n 'faq'}}</a> - </li> - <li> - {{#link-to 'about' class="about-link"}}{{i18n 'about.simple_title'}}{{/link-to}} - </li> - {{#if showMobileToggle}} - <li><a href class="mobile-toggle-link" {{action "toggleMobileView"}}>{{boundI18n mobileViewLinkTextKey}}</a></li> - {{/if}} - - {{plugin-outlet "site-map-links-last"}} - </ul> - - {{#if categories}} - <ul class="category-links"> - <li class="heading" title={{i18n 'filters.categories.help'}}> - {{#link-to "discovery.categories" class="categories-link"}}{{i18n 'filters.categories.title'}}{{/link-to}} - </li> - - {{#each categories as |c|}} - {{hamburger-category category=c}} - {{/each}} + {{plugin-outlet "site-map-links-last"}} </ul> - {{/if}} - <br> + {{#if categories}} + <ul class="category-links clearfix"> + <li class="heading" title={{i18n 'filters.categories.help'}}> + {{#link-to "discovery.categories" class="categories-link"}}{{i18n 'filters.categories.title'}}{{/link-to}} + </li> + + {{#each categories as |c|}} + {{hamburger-category category=c}} + {{/each}} + </ul> + {{/if}} + </div> + {{/if}} diff --git a/app/assets/stylesheets/common/base/hamburger.scss b/app/assets/stylesheets/common/base/hamburger.scss index ca61474f7..e3ffe1278 100644 --- a/app/assets/stylesheets/common/base/hamburger.scss +++ b/app/assets/stylesheets/common/base/hamburger.scss @@ -5,7 +5,7 @@ background-color: $secondary; z-index: 1002; height: 100%; - overflow: auto; + overflow: none; transition: 0.3s ease-in-out; @include transform(translateX(0)); @@ -17,8 +17,23 @@ float: right; color: dark-light-choose(scale-color($header_primary, $lightness: 50%), $header_primary); font-size: 1.5em; - margin-right: 0.5em; + margin-right: -10px; margin-top: 0.1em; + padding: 0 4 4 4px; + z-index: 9999; + } + + .hamburger-header { + position: absolute; + right: 20px; + } + + .hamburger-body { + overflow-y: auto; + overflow-x: hidden; + position: absolute; + top: 40px; + bottom: 100px; }