habitica/website/views/shared/header/menu.jade
Josh Holland b4d5c634b3 Close dropdowns when user clicks outside of them (fixes #5490) (#8657)
* Close dropdowns when user clicks outside of them

Fixes #5490

* Remove expandMenu and closeMenu directives and tests

* Remove unnecessary HTML attributes
2017-05-24 10:12:38 -06:00

304 lines
15 KiB
Text

nav.toolbar(ng-controller='MenuCtrl')
.toolbar-container
ul.toolbar-mobile-nav
li.toolbar-mobile(dropdown)
a(dropdown-toggle, menu='mobile')
span.glyphicon.glyphicon-align-justify
div.dropdown-menu
h4=env.t('menu')
div
ul.toolbar-submenu
li
a(ui-sref='tasks')=env.t('tasks')
ul.toolbar-submenu
li
a(ui-sref='options.profile.avatar')=env.t('avatar')
li
a(ui-sref='options.profile.backgrounds')=env.t('backgrounds')
li
a(ui-sref='options.profile.stats')=env.t('stats')
li
a(ui-sref='options.profile.achievements')=env.t('achievs')
li
a(ui-sref='options.profile.profile')=env.t('profile')
ul.toolbar-submenu
li
a(ui-sref='options.social.inbox')
span.badge.badge-danger(ng-if='user.inbox.newMessages') {{user.inbox.newMessages}}  
=env.t('inbox')
li
a(ui-sref='options.social.tavern')=env.t('tavern')
li
a(ui-sref='options.social.party')=env.t('party')
li
a(ui-sref='options.social.guilds.public')=env.t('guilds')
li
a(ui-sref='options.social.challenges')=env.t('challenges')
li
a(ui-sref='options.social.hall.heroes')=env.t('hall')
li
a(ui-sref='options.social.groupPlans')=env.t('groupPlansTitle')
ul.toolbar-submenu
li
a(ui-sref='options.inventory.drops')=env.t('market')
li
a(ui-sref='options.inventory.quests')=env.t('quests')
li
a(ui-sref='options.inventory.pets')=env.t('pets')
li
a(ui-sref='options.inventory.mounts')=env.t('mounts')
li
a(ui-sref='options.inventory.equipment')=env.t('equipment')
li
a(ui-sref='options.inventory.timetravelers')=env.t('timeTravelers')
li
a(ui-sref='options.inventory.seasonalshop')=env.t('seasonalShop')
ul.toolbar-submenu
li
a(target='_blank' ng-href='http://data.habitrpg.com?uuid={{user._id}}')=env.t('dataTool')
li
a(ui-sref='options.settings.export')=env.t('exportData')
ul.toolbar-submenu
li
a(target='_blank' href='https://habitica.com/static/faq/')=env.t('FAQ')
li
a(target='_blank' href='https://habitica.com/static/overview')=env.t('overview')
li
a(target='_blank' href='https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac')=env.t('reportBug')
li
a(target='_blank' href='https://habitica.com/#/options/groups/guilds/5481ccf3-5d2d-48a9-a871-70a7380cee5a')=env.t('askQuestion')
li
a(target='_blank' href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')=env.t('requestAF')
li
a(target='_blank' href=env.t('conLearnURL'))=env.t('contributeToHRPG')
li
a(target='_blank' href=env.t('HabiticaWikiFrontPage'))=env.t('HabiticaWiki')
ul.toolbar-controls
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')
li.toolbar-controls-button
a=env.t('close')
ul.toolbar-nav
li.toolbar-button
a(ui-sref='tasks')
span=env.t('tasks')
li.toolbar-button-dropdown(dropdown)
a(ui-sref='options.profile.avatar')
span=env.t('user')
a(dropdown-toggle)
span ☰
div.dropdown-menu
ul.toolbar-submenu
li
a(ui-sref='options.profile.avatar')=env.t('avatar')
li
a(ui-sref='options.profile.backgrounds')=env.t('backgrounds')
li
a(ui-sref='options.profile.stats')=env.t('stats')
li
a(ui-sref='options.profile.achievements')=env.t('achievs')
li
a(ui-sref='options.profile.profile')=env.t('profile')
li.toolbar-button-dropdown(dropdown)
a(ui-sref='options.social.inbox', ng-if='user.inbox.newMessages')
span.badge.badge-danger {{user.inbox.newMessages}}
a(ui-sref='options.social.tavern')
span=env.t('social')
a(dropdown-toggle)
span ☰
div.dropdown-menu
ul.toolbar-submenu
li
a(ui-sref='options.social.inbox')
span.badge.badge-danger(ng-if='user.inbox.newMessages') {{user.inbox.newMessages}}  
=env.t("inbox")
li
a(ui-sref='options.social.tavern')=env.t('tavern')
li
a(ui-sref='options.social.party')=env.t('party')
li
a(ui-sref='options.social.guilds.public')=env.t('guilds')
li
a(ui-sref='options.social.challenges')=env.t('challenges')
li
a(ui-sref='options.social.hall.heroes')=env.t('hall')
li
a(ui-sref='options.social.groupPlans')=env.t('groupPlansTitle')
li.toolbar-button-dropdown(dropdown)
a(ui-sref='options.inventory.drops')
span=env.t('inventory')
a(dropdown-toggle)
span ☰
div.dropdown-menu
ul.toolbar-submenu
li
a(ui-sref='options.inventory.drops')=env.t('market')
li
a(ui-sref='options.inventory.quests')=env.t('quests')
li
a(ui-sref='options.inventory.pets')=env.t('pets')
li
a(ui-sref='options.inventory.mounts')=env.t('mounts')
li
a(ui-sref='options.inventory.equipment')=env.t('equipment')
li
a(ui-sref='options.inventory.timetravelers')=env.t('timeTravelers')
li
a(ui-sref='options.inventory.seasonalshop')=env.t('seasonalShop')
li.toolbar-button-dropdown(dropdown)
a(target='_blank' ng-href='http://data.habitrpg.com?uuid={{user._id}}')
span=env.t('data')
a(dropdown-toggle)
span ☰
div.dropdown-menu
ul.toolbar-submenu
li
a(target='_blank' ng-href='http://data.habitrpg.com?uuid={{user._id}}')=env.t('dataTool')
li
a(ui-sref='options.settings.export')=env.t('exportData')
li.toolbar-button-dropdown.highlight(dropdown)
a(target='_blank' href='https://habitica.com/static/faq/')
span.glyphicon.glyphicon-question-sign
span=env.t('help')
a(dropdown-toggle)
span ☰
div.dropdown-menu
ul.toolbar-submenu
li
a(target='_blank' href='https://habitica.com/static/faq/')=env.t('FAQ')
li
a(target='_blank' href='https://habitica.com/static/overview')=env.t('overview')
li
a(target='_blank' href='https://habitica.com/#/options/groups/guilds/a29da26b-37de-4a71-b0c6-48e72a900dac')=env.t('reportBug')
li
a(target='_blank' href='https://habitica.com/#/options/groups/guilds/5481ccf3-5d2d-48a9-a871-70a7380cee5a')=env.t('askQuestion')
li
a(target='_blank' href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents')=env.t('requestAF')
li
a(target='_blank' href=env.t('conLearnURL'))=env.t('contributeToHRPG')
li
a(target='_blank' href=env.t('HabiticaWikiFrontPage'))=env.t('HabiticaWiki')
ul.toolbar-subscribe(ng-if='!user.purchased.plan.customerId')
li.toolbar-subscribe-button
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
li.toolbar-quest-detail(ng-if='hasQuestProgress()')
a(ng-click='$state.go("options.social.party");', popover-placement='bottom',popover-trigger='mouseenter',popover-title='{{getQuestInfo().title}}', popover='{{getQuestInfo().body}}',popover-append-to-body='true')
span.glyphicon.glyphicon-screenshot
li.toolbar-notifs(dropdown)
a(dropdown-toggle)
span.glyphicon(ng-class='iconClasses()')
span.notification-counter(ng-if='getNotificationsCount()') {{getNotificationsCount()}}
div.dropdown-menu
h4=env.t('notifications')
div
ul.toolbar-notifs-notifs
li.toolbar-notifs-no-messages(ng-if='hasNoNotifications()')=env.t('noNotifications')
li(ng-if='user.purchased.plan.mysteryItems.length')
a(ng-click='$state.go("options.inventory.drops"); ')
span.glyphicon.glyphicon-gift
span=env.t('newSubscriberItem')
li(ng-if='user.invitations.party.id')
a(ui-sref='options.social.party')
span.glyphicon.glyphicon-user
span=env.t('invitedTo', {name: '{{user.invitations.party.name}}'})
li(ng-if='user.flags.cardReceived')
a(ng-click='$state.go("options.inventory.drops"); ')
span.glyphicon.glyphicon-envelope
span=env.t('cardReceived')
a(ng-click='clearCards()', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true')
span.glyphicon.glyphicon-remove-circle
li(ng-repeat='guild in user.invitations.guilds')
a(ui-sref='options.social.guilds.public')
span.glyphicon.glyphicon-user
span=env.t('invitedTo', {name: '{{guild.name}}'})
li(ng-if='user.flags.classSelected && !user.preferences.disableClasses && user.stats.points')
a(ui-sref='options.profile.stats')
span.glyphicon.glyphicon-plus-sign
span=env.t('haveUnallocated', {points: '{{user.stats.points}}'})
li(ng-repeat='(k,v) in user.newMessages', ng-if='v.value')
a(ng-click='(k === party._id || k === user.party._id) ? $state.go("options.social.party") : $state.go("options.social.guilds.detail",{gid:k}); ')
span.glyphicon.glyphicon-comment
span {{v.name}}
a(ng-click='clearMessages(k)', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true')
span.glyphicon.glyphicon-remove-circle
li(ng-repeat='notification in user.groupNotifications')
a(ng-click='viewGroupApprovalNotification(notification, $index, true)')
span(class="{{::groupApprovalNotificationIcon(notification)}}")
span
| {{notification.data.message}}
a(ng-click='viewGroupApprovalNotification(notification, $index)',
popover=env.t('clear'),
popover-placement='right',
popover-trigger='mouseenter',
popover-append-to-body='true')
span.glyphicon.glyphicon-remove-circle
ul.toolbar-controls
li.toolbar-controls-button
a=env.t('close')
li.toolbar-audio(dropdown)
a(dropdown-toggle)
span.glyphicon(ng-class="{'glyphicon-volume-off':user.preferences.sound === 'off', 'glyphicon-volume-up':user.preferences.sound!='off'}")
div.dropdown-menu(style='min-width:150px')
h4=env.t('audioTheme')
div
ul.toolbar-submenu
// Using [{k,v}] instead of {k:v,k:v} to maintain order ('off' at top)
for theme in ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme', 'rosstavoTheme', 'dewinTheme', 'airuTheme']
li
a(ng-class="{'bg-info':user.preferences.sound === '#{theme}'}", ng-click="set({'preferences.sound':'#{theme}'})")=env.t('audioTheme_'+theme)
ul.toolbar-controls
li.toolbar-controls-button
a=env.t('close')
li.toolbar-sync
a(ng-click='User.sync()', popover=env.t('sync'),popover-placement='bottom',popover-trigger='mouseenter')
span.glyphicon.glyphicon-refresh
li.toolbar-settings(dropdown)
a(dropdown-toggle)
span.glyphicon.glyphicon-cog
div.dropdown-menu
h4=env.t('settings')
div
ul.toolbar-submenu
li
a(ng-click='logout()')=env.t('logout')
ul.toolbar-submenu
li
a(ui-sref='options.settings.settings')=env.t('site')
li
a(ui-sref='options.settings.api')=env.t('API')
li
a(ui-sref='options.settings.export')=env.t('export')
li
a(ui-sref='options.settings.promo')=env.t('promoCode')
li
a(ui-sref='options.settings.subscription')=env.t('subscription')
li
a(ui-sref='options.settings.notifications')=env.t('notifications')
ul.toolbar-submenu
li
a(href='https://habitica.com/static/faq', target='_blank')=env.t('FAQ')
ul.toolbar-controls
li.toolbar-controls-button
a=env.t('close')
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')
a.gem-wallet(ng-click='openModal("buyGems",{track:"Gems > Toolbar"})')
span.Pet_Currency_Gem2x.Gems
span.gem-text {{user.balance * 4 | number:0}}
li.toolbar-currency.gold(popover=env.t('gold') + ' ({{Shared.gold(user.stats.gp)}})', popover-placement='bottom',popover-trigger='mouseenter')
span.shop_gold
span {{Shared.gold(user.stats.gp) | roundLargeNumbers}}
li.toolbar-currency.silver(popover=env.t('silver'), popover-placement='bottom',popover-trigger='mouseenter')
span.shop_silver
span {{Shared.silver(user.stats.gp)}}
ul.toolbar-bailey(ng-class='{inactive: !_expandedMenu.menu}')
li.toolbar-bailey-container(ng-if='user.flags.tour.intro!=-2')
.npc_justin_head.npc_bailey_head(popover='Continue Tour', popover-trigger='mouseenter', popover-placement='bottom', ng-click='Guide.goto("intro", user.flags.tour.intro + 1, true)')
ul.toolbar-bailey(ng-class='{inactive: !_expandedMenu.menu}')
li.toolbar-bailey-container(ng-if='user.flags.newStuff')
div(class="#{env.worldDmg.bailey ? 'npc_bailey_broken' : 'npc_bailey'}" popover=env.t('psst'), popover-trigger='mouseenter', popover-placement='right', ng-click='openModal("newStuff",{size:"lg"})').npc_bailey_head