diff --git a/common/locales/en/character.json b/common/locales/en/character.json index e2517a01a9..4640580f83 100644 --- a/common/locales/en/character.json +++ b/common/locales/en/character.json @@ -1,6 +1,5 @@ { "communityGuidelinesWarning": "Please keep in mind that your Display Name, profile photo, and blurb must comply with the Community Guidelines (e.g. no profanity, no adult topics, no insults, etc). If you have any questions about whether or not something is appropriate, feel free to email admin@habitica.com!", - "statsAch": "Stats & Achievements", "profile": "Profile", "avatar": "Customize Avatar", "other": "Other", @@ -83,7 +82,8 @@ "allocateInt": "Points allocated to Intelligence:", "allocateIntPop": "Add a point to Intelligence", "noMoreAllocate": "Now that you've hit level 100, you won't gain any more Attribute Points. You can continue leveling up, or start a new adventure at level 1 by using the Orb of Rebirth, now available for free in the Market.", - "stats": "Avatar Stats", + "stats": "Stats", + "achievs": "Achievements", "strength": "Strength", "strengthText": "Strength increases the chance of random \"critical hits\" and the Gold, Experience, and drop chance boost from them. It also helps deal damage to boss monsters.", "constitution": "Constitution", diff --git a/common/locales/en/generic.json b/common/locales/en/generic.json index 325ddb702c..10282722fb 100644 --- a/common/locales/en/generic.json +++ b/common/locales/en/generic.json @@ -7,7 +7,8 @@ "titleTasks": "Tasks", "titleAvatar": "Avatar", "titleBackgrounds": "Backgrounds", - "titleStats": "Stats & Achievements", + "titleStats": "Stats", + "titleAchievs": "Achievements", "titleProfile": "Profile", "titleInbox": "Inbox", "titleTavern": "Tavern", diff --git a/website/client/js/app.js b/website/client/js/app.js index 7224e5e3c3..75728a7dda 100644 --- a/website/client/js/app.js +++ b/website/client/js/app.js @@ -84,6 +84,11 @@ window.habitrpg = angular.module('habitrpg', templateUrl: "partials/options.profile.stats.html", title: env.t('titleStats') }) + .state('options.profile.achievements', { + url: "/achievements", + templateUrl: "partials/options.profile.achievements.html", + title: env.t('titleAchievs') + }) .state('options.profile.profile', { url: "/profile", templateUrl: "partials/options.profile.profile.html", diff --git a/website/views/options/profile.jade b/website/views/options/profile.jade index 036d0cf529..b5ca6e177b 100644 --- a/website/views/options/profile.jade +++ b/website/views/options/profile.jade @@ -175,64 +175,63 @@ mixin customizeProfile(mobile) script(id='partials/options.profile.avatar.html', type='text/ng-template') +customizeProfile() -mixin profileStats +script(id='partials/options.profile.stats.html', type='text/ng-template') .container-fluid - div(class=mobile?'padding':'row') - // FIXME, get this working on mobile + div(class='row') .border-right(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "col-md-4" : "col-md-6"') - include ../shared/profiles/stats - unless mobile - .col-md-4.border-right.allocate-stats(ng-if='user.flags.classSelected && !user.preferences.disableClasses') - h3=env.t('characterBuild') - h4 - =env.t('class') + ': ' - span {{ {warrior:env.t("warrior"), wizard:env.t("mage"), rogue:env.t("rogue"), healer:env.t("healer")}[user.stats.class] }}  - a.btn.btn-danger.btn-xs(ng-click='changeClass(null)')=env.t('changeClass') - small.cost 3 - table.table.table-striped - tr - td - p(ng-if='::user.stats.lvl >= 100')!=env.t('noMoreAllocate') - p(ng-if='user.stats.points || user.stats.lvl < 100') - strong.inline - |{{user.stats.points}}  - strong.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover'))=env.t('unallocated') - td - tr - td(colspan=2) - fieldset.auto-allocate - .checkbox - label - input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})') - span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop'))=env.t('autoAllocation') - form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em') - .radio - label - input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})') - span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop'))=env.t('evenAllocation') - .radio - label - input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})') - span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop'))=env.t('classAllocation') - .radio - label - input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})') - span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop'))=env.t('taskAllocation') - div(ng-show='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)') - a.btn.btn-primary.btn-xs(ng-click='User.allocateNow({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('distributePointsPop')) - span.glyphicon.glyphicon-download - |  - =env.t('distributePoints') - +statAllocation - - + include ../shared/profiles/stats_col1 div(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "col-md-4" : "col-md-6"') button.btn.btn-default(ng-if='user.preferences.disableClasses', ng-click='User.changeClass({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('enableClassPop'))= env.t('enableClass') hr(ng-if='user.preferences.disableClasses') - include ../shared/profiles/achievements + include ../shared/profiles/stats_col2 + .col-md-4.border-left.allocate-stats(ng-if='user.flags.classSelected && !user.preferences.disableClasses') + h3=env.t('characterBuild') + h4 + =env.t('class') + ': ' + span {{ {warrior:env.t("warrior"), wizard:env.t("mage"), rogue:env.t("rogue"), healer:env.t("healer")}[user.stats.class] }}  + a.btn.btn-danger.btn-xs(ng-click='changeClass(null)')=env.t('changeClass') + small.cost 3 + table.table.table-striped + tr + td + p(ng-if='::user.stats.lvl >= 100')!=env.t('noMoreAllocate') + p(ng-if='user.stats.points || user.stats.lvl < 100') + strong.inline + |{{user.stats.points}}  + strong.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('levelPopover'))=env.t('unallocated') + td + tr + td(colspan=2) + fieldset.auto-allocate + .checkbox + label + input(type='checkbox', ng-model='user.preferences.automaticAllocation', ng-change='set({"preferences.automaticAllocation": user.preferences.automaticAllocation?true: false})', ng-click='set({"preferences.allocationMode":"taskbased"})') + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('autoAllocationPop'))=env.t('autoAllocation') + form(ng-show='user.preferences.automaticAllocation',style='margin-left:1em') + .radio + label + input(type='radio', name='allocationMode', value='flat', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "flat"})') + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('evenAllocationPop'))=env.t('evenAllocation') + .radio + label + input(type='radio', name='allocationMode', value='classbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "classbased"})') + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('classAllocationPop'))=env.t('classAllocation') + .radio + label + input(type='radio', name='allocationMode', value='taskbased', ng-model='user.preferences.allocationMode', ng-change='set({"preferences.allocationMode": "taskbased"})') + span.hint(popover-trigger='mouseenter', popover-placement='right', popover=env.t('taskAllocationPop'))=env.t('taskAllocation') + div(ng-show='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)') + a.btn.btn-primary.btn-xs(ng-click='User.allocateNow({})', popover-trigger='mouseenter', popover-placement='right', popover=env.t('distributePointsPop')) + span.glyphicon.glyphicon-download + |  + =env.t('distributePoints') + +statAllocation() -script(id='partials/options.profile.stats.html', type='text/ng-template') - +profileStats() +script(id='partials/options.profile.achievements.html', type='text/ng-template') + .container-fluid + div(class='row') + div(ng-class='user.flags.classSelected && !user.preferences.disableClasses ? "col-md-4" : "col-md-6"') + include ../shared/profiles/achievements script(id='partials/options.profile.profile.html', type='text/ng-template') .container-fluid @@ -310,7 +309,10 @@ script(id='partials/options.profile.html', type="text/ng-template") =env.t('backgrounds') li(ng-class="{ active: $state.includes('options.profile.stats') }") a(ui-sref='options.profile.stats') - =env.t('statsAch') + =env.t('stats') + li(ng-class="{ active: $state.includes('options.profile.achievements') }") + a(ui-sref='options.profile.achievements') + =env.t('achievs') li(ng-class="{ active: $state.includes('options.profile.profile') }") a(ui-sref='options.profile.profile') =env.t('profile') diff --git a/website/views/shared/header/menu.jade b/website/views/shared/header/menu.jade index 162631b2c7..a8af0f07d4 100644 --- a/website/views/shared/header/menu.jade +++ b/website/views/shared/header/menu.jade @@ -17,6 +17,8 @@ nav.toolbar(ng-controller='MenuCtrl') 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 @@ -91,6 +93,8 @@ nav.toolbar(ng-controller='MenuCtrl') 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 diff --git a/website/views/shared/modals/members.jade b/website/views/shared/modals/members.jade index ef49798624..b10aae3bd1 100644 --- a/website/views/shared/modals/members.jade +++ b/website/views/shared/modals/members.jade @@ -24,7 +24,7 @@ script(type='text/ng-template', id='modals/member.html') h3=env.t('stats') // @TODO: Figure out why this isn't showing up in front page .label.label-info {{:: {warrior:env.t("warrior"), wizard:env.t("mage"), rogue:env.t("rogue"), healer:env.t("healer")}[profile.stats.class] }} - include ../profiles/stats + include ../profiles/stats_all .col-md-6 .row +herobox() diff --git a/website/views/shared/profiles/stats.jade b/website/views/shared/profiles/stats/mixins.jade similarity index 80% rename from website/views/shared/profiles/stats.jade rename to website/views/shared/profiles/stats/mixins.jade index c82674f731..73f2ea0e4b 100644 --- a/website/views/shared/profiles/stats.jade +++ b/website/views/shared/profiles/stats/mixins.jade @@ -11,8 +11,3 @@ mixin statList(calculatedStat, popover, text, useOneTimeBinding) popover-placement='top', popover=env.t('#{popover}Text')) =env.t(text) =': {{' + binding + calculatedStat + '}}' - -include ./stats/basic-stats -include ./stats/equipment -include ./stats/attributes -include ./stats/pets-and-mounts diff --git a/website/views/shared/profiles/stats_all.jade b/website/views/shared/profiles/stats_all.jade new file mode 100644 index 0000000000..90fb2a1179 --- /dev/null +++ b/website/views/shared/profiles/stats_all.jade @@ -0,0 +1,6 @@ +include ./stats/mixins + +include ./stats/basic-stats +include ./stats/equipment +include ./stats/attributes +include ./stats/pets-and-mounts diff --git a/website/views/shared/profiles/stats_col1.jade b/website/views/shared/profiles/stats_col1.jade new file mode 100644 index 0000000000..c4b05c9194 --- /dev/null +++ b/website/views/shared/profiles/stats_col1.jade @@ -0,0 +1,5 @@ +include ./stats/mixins + +include ./stats/basic-stats +include ./stats/equipment +include ./stats/pets-and-mounts diff --git a/website/views/shared/profiles/stats_col2.jade b/website/views/shared/profiles/stats_col2.jade new file mode 100644 index 0000000000..e24c2fe9f3 --- /dev/null +++ b/website/views/shared/profiles/stats_col2.jade @@ -0,0 +1,3 @@ +include ./stats/mixins + +include ./stats/attributes