Moved menu expand directive and created menu close directive

This commit is contained in:
TheHollidayInn
2015-08-19 08:53:51 -05:00
parent be87f69cd4
commit e762a51e4c
5 changed files with 82 additions and 42 deletions

View File

@@ -9,9 +9,7 @@ angular.module('habitrpg')
window.location.href = '/logout'; window.location.href = '/logout';
}; };
$scope.expandMenu = function(menu) { $scope._expandedMenu = null;
$scope._expandedMenu = ($scope._expandedMenu == menu) ? null : menu;
};
function selectNotificationValue(mysteryValue, invitationValue, cardValue, unallocatedValue, messageValue, noneValue) { function selectNotificationValue(mysteryValue, invitationValue, cardValue, unallocatedValue, messageValue, noneValue) {
var user = $scope.user; var user = $scope.user;

View File

@@ -0,0 +1,20 @@
'use strict';
(function(){
angular
.module('habitrpg')
.directive('closeMenu', closeMenu);
function closeMenu() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.on('click', function(event) {
scope._expandedMenu = null;
scope.$apply()
});
}
}
}
}());

View File

@@ -0,0 +1,20 @@
'use strict';
(function(){
angular
.module('habitrpg')
.directive('expandMenu', expandMenu);
function expandMenu() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.on('click', function(event) {
scope._expandedMenu = (scope._expandedMenu == attrs.menu) ? null : attrs.menu;
scope.$apply()
});
}
}
}
}());

View File

@@ -58,6 +58,8 @@
"js/filters/roundLargeNumbers.js", "js/filters/roundLargeNumbers.js",
"js/filters/taskOrdering.js", "js/filters/taskOrdering.js",
"js/directives/close-menu.directive.js",
"js/directives/expand-menu.directive.js",
"js/directives/focus-me.directive.js", "js/directives/focus-me.directive.js",
"js/directives/from-now.directive.js", "js/directives/from-now.directive.js",
"js/directives/habitrpg-tasks.directive.js", "js/directives/habitrpg-tasks.directive.js",

View File

@@ -2,9 +2,9 @@ nav.toolbar(ng-controller='MenuCtrl')
.toolbar-container .toolbar-container
ul.toolbar-mobile-nav ul.toolbar-mobile-nav
li.toolbar-mobile li.toolbar-mobile
a(ng-click='expandMenu("mobile")', ng-class='{active: _expandedMenu=="mobile"}') a(data-expand-menu, menu="mobile", ng-class='{active: _expandedMenu=="mobile"}')
span.glyphicon.glyphicon-align-justify span.glyphicon.glyphicon-align-justify
div(ng-if='_expandedMenu=="mobile"', ng-click='expandMenu(null)') div(ng-show='_expandedMenu=="mobile"', data-close-menu)
h4=env.t('menu') h4=env.t('menu')
div div
ul.toolbar-submenu ul.toolbar-submenu
@@ -71,18 +71,18 @@ nav.toolbar(ng-controller='MenuCtrl')
li.toolbar-subscribe-button li.toolbar-subscribe-button
button(ng-if='!user.purchased.plan.customerId',ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe') button(ng-if='!user.purchased.plan.customerId',ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe')
li.toolbar-controls-button li.toolbar-controls-button
a(ng-click='expandMenu(null)')=env.t('close') a(data-close-menu)=env.t('close')
ul.toolbar-nav ul.toolbar-nav
li.toolbar-button li.toolbar-button
a(ui-sref='tasks') a(ui-sref='tasks', data-close-menu)
span=env.t('tasks') span=env.t('tasks')
li.toolbar-button-dropdown li.toolbar-button-dropdown
a(ui-sref='options.profile.avatar') a(ui-sref='options.profile.avatar', data-close-menu)
span=env.t('user') span=env.t('user')
a(ng-click='expandMenu("avatar")', ng-class='{active: _expandedMenu == "avatar"}') a(ng-class='{active: _expandedMenu == "avatar"}', data-expand-menu, menu='avatar')
span ☰ span ☰
div(ng-if='_expandedMenu == "avatar"') div(ng-show='_expandedMenu == "avatar"', data-close-menu)
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(ui-sref='options.profile.avatar')=env.t('avatar') a(ui-sref='options.profile.avatar')=env.t('avatar')
li li
@@ -94,12 +94,12 @@ nav.toolbar(ng-controller='MenuCtrl')
li.toolbar-button-dropdown li.toolbar-button-dropdown
a(ui-sref='options.social.inbox', ng-if='user.inbox.newMessages') a(ui-sref='options.social.inbox', ng-if='user.inbox.newMessages')
span.badge.badge-danger {{user.inbox.newMessages}} span.badge.badge-danger {{user.inbox.newMessages}}
a(ui-sref='options.social.tavern') a(ui-sref='options.social.tavern', data-close-menu)
span=env.t('social') span=env.t('social')
a(ng-click='expandMenu("social")', ng-class='{active: _expandedMenu == "social"}') a(ng-class='{active: _expandedMenu == "social"}', data-expand-menu, menu='social')
span ☰ span ☰
div(ng-if='_expandedMenu == "social"') div(ng-show='_expandedMenu == "social"', data-close-menu)
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(ui-sref='options.social.inbox') a(ui-sref='options.social.inbox')
span.badge.badge-danger(ng-if='user.inbox.newMessages') {{user.inbox.newMessages}}   span.badge.badge-danger(ng-if='user.inbox.newMessages') {{user.inbox.newMessages}}  
@@ -115,12 +115,12 @@ nav.toolbar(ng-controller='MenuCtrl')
li li
a(ui-sref='options.social.hall.heroes')=env.t('hall') a(ui-sref='options.social.hall.heroes')=env.t('hall')
li.toolbar-button-dropdown li.toolbar-button-dropdown
a(ui-sref='options.inventory.drops') a(ui-sref='options.inventory.drops', data-close-menu)
span=env.t('inventory') span=env.t('inventory')
a(ng-click='expandMenu("inventory")', ng-class='{active: _expandedMenu == "inventory"}') a(ng-class='{active: _expandedMenu == "inventory"}' data-expand-menu, menu='inventory')
span ☰ span ☰
div(ng-if='_expandedMenu == "inventory"') div(ng-show='_expandedMenu == "inventory"', data-close-menu)
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(ui-sref='options.inventory.drops')=env.t('market') a(ui-sref='options.inventory.drops')=env.t('market')
li li
@@ -136,12 +136,12 @@ nav.toolbar(ng-controller='MenuCtrl')
li li
a(ui-sref='options.inventory.seasonalshop')=env.t('seasonalShop') a(ui-sref='options.inventory.seasonalshop')=env.t('seasonalShop')
li.toolbar-button-dropdown li.toolbar-button-dropdown
a(target="_blank" ng-href='http://data.habitrpg.com?uuid={{user._id}}') a(target="_blank" ng-href='http://data.habitrpg.com?uuid={{user._id}}', data-close-menu)
span=env.t('data') span=env.t('data')
a(ng-click='expandMenu("data")', ng-class='{active: _expandedMenu == "data"}') a(ng-class='{active: _expandedMenu == "data"}', data-expand-menu, menu='data')
span ☰ span ☰
div(ng-if='_expandedMenu == "data"') div(ng-show='_expandedMenu == "data"', data-close-menu)
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(target="_blank" ng-href='http://data.habitrpg.com?uuid={{user._id}}')=env.t('dataTool') a(target="_blank" ng-href='http://data.habitrpg.com?uuid={{user._id}}')=env.t('dataTool')
li li
@@ -150,10 +150,10 @@ nav.toolbar(ng-controller='MenuCtrl')
a(target="_blank" href='http://habitrpg.wikia.com/wiki/') a(target="_blank" href='http://habitrpg.wikia.com/wiki/')
span.glyphicon.glyphicon-question-sign span.glyphicon.glyphicon-question-sign
span=env.t('help') span=env.t('help')
a(ng-click='expandMenu("help")', ng-class='{active: _expandedMenu == "help"}') a(ng-class='{active: _expandedMenu == "help"}', data-expand-menu, menu='help')
span ☰ span ☰
div(ng-if='_expandedMenu == "help"') div(ng-show='_expandedMenu == "help"', data-close-menu)
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(target="_blank" href='http://habitrpg.wikia.com/wiki/')=env.t('overview') a(target="_blank" href='http://habitrpg.wikia.com/wiki/')=env.t('overview')
li li
@@ -171,9 +171,9 @@ nav.toolbar(ng-controller='MenuCtrl')
button.highlight(ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe') button.highlight(ui-sref='options.settings.subscription',popover-trigger='mouseenter',popover-placement='bottom',popover-title=env.t('subscriptions'),popover=env.t('subDescription'),popover-append-to-body='true')=env.t('subscribe')
ul.toolbar-options ul.toolbar-options
li.toolbar-notifs li.toolbar-notifs
a(ng-click='expandMenu("notifs")') a(data-expand-menu, menu='notifs')
span.glyphicon(ng-class='iconClasses()') span.glyphicon(ng-class='iconClasses()')
div(ng-if='_expandedMenu=="notifs"') div(ng-show='_expandedMenu=="notifs"', data-close-menu)
h4=env.t('notifications') h4=env.t('notifications')
div div
ul.toolbar-notifs-notifs ul.toolbar-notifs-notifs
@@ -183,7 +183,7 @@ nav.toolbar(ng-controller='MenuCtrl')
span.glyphicon.glyphicon-gift span.glyphicon.glyphicon-gift
span=env.t('newSubscriberItem') span=env.t('newSubscriberItem')
li(ng-if='user.invitations.party.id') li(ng-if='user.invitations.party.id')
a(ui-sref='options.social.party', ng-click='expandMenu(null)') a(ui-sref='options.social.party')
span.glyphicon.glyphicon-user span.glyphicon.glyphicon-user
span=env.t('invitedTo', {name: '{{user.invitations.party.name}}'}) span=env.t('invitedTo', {name: '{{user.invitations.party.name}}'})
li(ng-if='user.flags.cardReceived') li(ng-if='user.flags.cardReceived')
@@ -193,11 +193,11 @@ nav.toolbar(ng-controller='MenuCtrl')
a(ng-click='clearCards()', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true') a(ng-click='clearCards()', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true')
span.glyphicon.glyphicon-remove-circle span.glyphicon.glyphicon-remove-circle
li(ng-repeat='guild in user.invitations.guilds') li(ng-repeat='guild in user.invitations.guilds')
a(ui-sref='options.social.guilds.public', ng-click='expandMenu(null)') a(ui-sref='options.social.guilds.public')
span.glyphicon.glyphicon-user span.glyphicon.glyphicon-user
span=env.t('invitedTo', {name: '{{guild.name}}'}) span=env.t('invitedTo', {name: '{{guild.name}}'})
li(ng-if='user.flags.classSelected && !user.preferences.disableClasses && user.stats.points') li(ng-if='user.flags.classSelected && !user.preferences.disableClasses && user.stats.points')
a(ui-sref='options.profile.stats', ng-click='expandMenu(null)') a(ui-sref='options.profile.stats')
span.glyphicon.glyphicon-plus-sign span.glyphicon.glyphicon-plus-sign
span=env.t('haveUnallocated', {points: '{{user.stats.points}}'}) span=env.t('haveUnallocated', {points: '{{user.stats.points}}'})
li(ng-repeat='(k,v) in user.newMessages', ng-if='v.value') li(ng-repeat='(k,v) in user.newMessages', ng-if='v.value')
@@ -209,35 +209,35 @@ nav.toolbar(ng-controller='MenuCtrl')
ul.toolbar-controls ul.toolbar-controls
li.toolbar-controls-button li.toolbar-controls-button
a(ng-click='expandMenu(null)')=env.t('close') a(data-close-menu)=env.t('close')
li.toolbar-audio li.toolbar-audio
a(ng-click='expandMenu("audio")') a(data-expand-menu, menu="audio")
span.glyphicon(ng-class="{'glyphicon-volume-off':user.preferences.sound=='off', 'glyphicon-volume-up':user.preferences.sound!='off'}") span.glyphicon(ng-class="{'glyphicon-volume-off':user.preferences.sound=='off', 'glyphicon-volume-up':user.preferences.sound!='off'}")
div(ng-if='_expandedMenu=="audio"',style='min-width:150px') div(ng-show='_expandedMenu=="audio"',style='min-width:150px', data-close-menu)
h4=env.t('audioTheme') h4=env.t('audioTheme')
div div
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
// Using [{k,v}] instead of {k:v,k:v} to maintain order ('off' at top) // Using [{k,v}] instead of {k:v,k:v} to maintain order ('off' at top)
for theme in ['off','danielTheBard', 'wattsTheme', 'gokulTheme'] for theme in ['off','danielTheBard', 'wattsTheme', 'gokulTheme']
li li
a(ng-class="{'bg-primary':user.preferences.sound=='#{theme}'}", ng-click="set({'preferences.sound':'#{theme}'})")=env.t('audioTheme_'+theme) a(ng-class="{'bg-primary':user.preferences.sound=='#{theme}'}", ng-click="set({'preferences.sound':'#{theme}'})")=env.t('audioTheme_'+theme)
ul.toolbar-controls ul.toolbar-controls
li.toolbar-controls-button li.toolbar-controls-button
a(ng-click='expandMenu(null)')=env.t('close') a(data-close-menu)=env.t('close')
li.toolbar-sync li.toolbar-sync
a(ng-click='User.sync()', popover=env.t('sync'),popover-placement='bottom',popover-trigger='mouseenter') a(ng-click='User.sync()', popover=env.t('sync'),popover-placement='bottom',popover-trigger='mouseenter')
span.glyphicon.glyphicon-refresh span.glyphicon.glyphicon-refresh
li.toolbar-settings li.toolbar-settings
a(ng-click='expandMenu("settings")') a(data-expand-menu, menu="settings")
span.glyphicon.glyphicon-cog span.glyphicon.glyphicon-cog
div(ng-if='_expandedMenu=="settings"') div(ng-show='_expandedMenu=="settings"', data-close-menu)
h4=env.t('settings') h4=env.t('settings')
div div
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(ng-click='logout()')=env.t('logout') a(ng-click='logout()')=env.t('logout')
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(ui-sref='options.settings.settings')=env.t('site') a(ui-sref='options.settings.settings')=env.t('site')
li li
@@ -250,14 +250,14 @@ nav.toolbar(ng-controller='MenuCtrl')
a(ui-sref='options.settings.subscription')=env.t('subscription') a(ui-sref='options.settings.subscription')=env.t('subscription')
li li
a(ui-sref='options.settings.notifications')=env.t('notifications') a(ui-sref='options.settings.notifications')=env.t('notifications')
ul.toolbar-submenu(ng-click='expandMenu(null)') ul.toolbar-submenu
li li
a(href="http://habitrpg.wikia.com/wiki/FAQ", target='_blank')=env.t('FAQ') a(href="http://habitrpg.wikia.com/wiki/FAQ", target='_blank')=env.t('FAQ')
li li
a(href="https://vimeo.com/57654086", target='_blank')=env.t('tutorials') a(href="https://vimeo.com/57654086", target='_blank')=env.t('tutorials')
ul.toolbar-controls ul.toolbar-controls
li.toolbar-controls-button li.toolbar-controls-button
a(ng-click='expandMenu(null)')=env.t('close') a(data-close-menu)=env.t('close')
ul.toolbar-wallet ul.toolbar-wallet
li.toolbar-gems(popover-trigger='mouseenter', popover-title=env.t('gemsPopoverTitle'), popover=env.t('gemsWhatFor'), popover-placement='bottom',popover-append-to-body='true') li.toolbar-gems(popover-trigger='mouseenter', popover-title=env.t('gemsPopoverTitle'), popover=env.t('gemsWhatFor'), popover-placement='bottom',popover-append-to-body='true')
a.gem-wallet(ng-click='openModal("buyGems",{track:"Gems > Toolbar"})') a.gem-wallet(ng-click='openModal("buyGems",{track:"Gems > Toolbar"})')