didInsertElement: function () { // #### Navigating within the sidebar closes it. var self = this; $('body').on('click tap', '.js-nav-item', function () { Ember.run(function () { if (mobileQuery.matches) { self.set('controller.showGlobalMobileNav', false); } }); }); // #### Close the nav if mobile and clicking outside of the nav or not the burger toggle $('.js-nav-cover').on('click tap', function () { Ember.run(function () { var isOpen = self.get('controller.showGlobalMobileNav'); if (isOpen) { self.set('controller.showGlobalMobileNav', false); } }); }); function swapUserMenuDropdownTriangleClasses(mq) { if (mq.matches) { $('.js-user-menu-dropdown-menu').removeClass('dropdown-triangle-top-right ').addClass('dropdown-triangle-bottom'); } else { $('.js-user-menu-dropdown-menu').removeClass('dropdown-triangle-bottom').addClass('dropdown-triangle-top-right'); } } // #### Listen to the viewport and change user-menu dropdown triangle classes accordingly this.set('swapUserMenuDropdownTriangleClasses', Ember.run.bind(this, swapUserMenuDropdownTriangleClasses)); mobileQuery.addListener(this.get('swapUserMenuDropdownTriangleClasses')); swapUserMenuDropdownTriangleClasses(mobileQuery); this.set('closeGlobalMobileNavOnDesktop', Ember.run.bind(this, function closeGlobalMobileNavOnDesktop(mq) { if (!mq.matches) { // Is desktop sized this.set('controller.showGlobalMobileNav', false); } })); mobileQuery.addListener(this.get('closeGlobalMobileNavOnDesktop')); },
setupCloseNavOnDesktop: function () { this.set('closeGlobalMobileNavOnDesktop', _.bind(function closeGlobalMobileNavOnDesktop(mq) { if (!mq.matches) { // Is desktop sized this.set('controller.showGlobalMobileNav', false); } }, this)); mobileQuery.addListener(this.closeGlobalMobileNavOnDesktop); }.on('didInsertElement'),
didInsertElement: function () { // #### Navigating within the sidebar closes it. var self = this; $('body').on('click tap', '.js-nav-item', function () { Ember.run(function () { if (mobileQuery.matches) { self.set('controller.showGlobalMobileNav', false); } }); }); // #### Close the nav if mobile and clicking outside of the nav or not the burger toggle $('.js-nav-cover').on('click tap', function () { Ember.run(function () { var isOpen = self.get('controller.showGlobalMobileNav'); if (isOpen) { self.set('controller.showGlobalMobileNav', false); } }); }); // TODO: ABOVE - All of this can be removed // TODO: BELOW - John wrote this, reimplement in a not-shit way // #### Toggle nav between fixed and auto $('.gh-autonav-toggle').on('click tap', function () { $('.gh-viewport').toggleClass('gh-autonav'); $('.gh-autonav-toggle i').toggleClass('icon-minimise').toggleClass('icon-maximise'); $('.gh-nav').removeClass('open'); }); // #### Open and close the nav on hover $('.gh-nav').mouseenter(function () { $('.gh-nav').addClass('open'); }); $('.gh-main').mouseenter(function () { $('.gh-nav').removeClass('open'); }); mobileQuery.addListener(this.get('closeGlobalMobileNavOnDesktop')); },
setupGlobalMobileNav: function () { // #### Navigating within the sidebar closes it. var self = this; $('body').on('click', '.js-nav-item', function () { if (mobileQuery.matches) { self.set('controller.showGlobalMobileNav', false); } }); // #### Close the nav if mobile and clicking outside of the nav or not the burger toggle $('.js-nav-cover').on('click', function () { var isOpen = self.get('controller.showGlobalMobileNav'); if (isOpen) { self.set('controller.showGlobalMobileNav', false); } }); // #### Listen to the viewport and change user-menu dropdown triangle classes accordingly mobileQuery.addListener(this.swapUserMenuPopoverTriangleClasses); this.swapUserMenuPopoverTriangleClasses(mobileQuery); }.on('didInsertElement'),
activate: function attachDesktopTransition() { this._super(); mobileQuery.addListener(this.desktopTransitionMQ); },