mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
misc
This commit is contained in:
@@ -5,7 +5,12 @@
|
|||||||
img.not-found-img(src='~@/assets/images/404.png')
|
img.not-found-img(src='~@/assets/images/404.png')
|
||||||
h1.not-found Sometimes even the bravest adventurer gets lost.
|
h1.not-found Sometimes even the bravest adventurer gets lost.
|
||||||
h2.not-found Looks like this link is broken or the page may have moved, sorry!
|
h2.not-found Looks like this link is broken or the page may have moved, sorry!
|
||||||
h2.not-found Head back to the <router-link to="/">Homepage</router-link> or <router-link :to="contactUsLink">Contact Us</router-link> about the issue.
|
h2.not-found
|
||||||
|
| Head back to the
|
||||||
|
<router-link to="/">Homepage</router-link>
|
||||||
|
| or
|
||||||
|
<router-link :to="contactUsLink">Contact Us</router-link>
|
||||||
|
| about the issue.
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -31,13 +31,23 @@
|
|||||||
.svg-icon.align-self-center(v-html='icons[heroClass]')
|
.svg-icon.align-self-center(v-html='icons[heroClass]')
|
||||||
.class-name(:class='`${heroClass}-color`') {{ $t(heroClass) }}
|
.class-name(:class='`${heroClass}-color`') {{ $t(heroClass) }}
|
||||||
div(v-for='heroClass in classes')
|
div(v-for='heroClass in classes')
|
||||||
.class-explanation.text-center(v-if='selectedClass === heroClass') {{ $t(`${heroClass}Text`) }}
|
.class-explanation.text-center(
|
||||||
|
v-if='selectedClass === heroClass'
|
||||||
|
) {{ $t(`${heroClass}Text`) }}
|
||||||
.text-center(v-markdown='$t("chooseClassLearnMarkdown")')
|
.text-center(v-markdown='$t("chooseClassLearnMarkdown")')
|
||||||
.modal-actions.text-center
|
.modal-actions.text-center
|
||||||
button.btn.btn-primary.d-inline-block(v-if='!selectedClass', :disabled='true') {{ $t('select') }}
|
button.btn.btn-primary.d-inline-block(
|
||||||
button.btn.btn-primary.d-inline-block(v-else, @click='clickSelectClass(selectedClass); close();') {{ $t('selectClass', {heroClass: $t(selectedClass)}) }}
|
v-if='!selectedClass',
|
||||||
|
:disabled='true'
|
||||||
|
) {{ $t('select') }}
|
||||||
|
button.btn.btn-primary.d-inline-block(
|
||||||
|
v-else,
|
||||||
|
@click='clickSelectClass(selectedClass); close();'
|
||||||
|
) {{ $t('selectClass', {heroClass: $t(selectedClass)}) }}
|
||||||
.opt-out-wrapper
|
.opt-out-wrapper
|
||||||
span#classOptOutBtn.danger(@click='clickDisableClasses(); close();') {{ $t('optOutOfClasses') }}
|
span#classOptOutBtn.danger(
|
||||||
|
@click='clickDisableClasses(); close();'
|
||||||
|
) {{ $t('optOutOfClasses') }}
|
||||||
span.opt-out-description {{ $t('optOutOfClassesText') }}
|
span.opt-out-description {{ $t('optOutOfClassesText') }}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
button.btn.btn-primary(@click='close()') {{ $t('onwards') }}
|
button.btn.btn-primary(@click='close()') {{ $t('onwards') }}
|
||||||
br
|
br
|
||||||
// @TODO: Keep this? .checkbox
|
// @TODO: Keep this? .checkbox
|
||||||
input(type='checkbox', v-model='user.preferences.suppressModals.levelUp', @change='changeLevelupSuppress()')
|
input(type='checkbox', v-model=
|
||||||
|
'user.preferences.suppressModals.levelUp', @change='changeLevelupSuppress()')
|
||||||
label(style='display:inline-block') {{ $t('dontShowAgain') }}
|
label(style='display:inline-block') {{ $t('dontShowAgain') }}
|
||||||
|
|
||||||
.container-fluid.share-buttons
|
.container-fluid.share-buttons
|
||||||
|
|||||||
@@ -2,17 +2,27 @@
|
|||||||
b-modal#login-incentives(:title="data.message", size='md', :hide-footer="true")
|
b-modal#login-incentives(:title="data.message", size='md', :hide-footer="true")
|
||||||
.modal-body
|
.modal-body
|
||||||
.row
|
.row
|
||||||
h3.col-12.text-center(v-if='data.rewardText') {{ $t('unlockedReward', {reward: data.rewardText}) }}
|
h3.col-12.text-center(
|
||||||
|
v-if='data.rewardText'
|
||||||
|
) {{ $t('unlockedReward', {reward: data.rewardText}) }}
|
||||||
.row.reward-row
|
.row.reward-row
|
||||||
.col-12
|
.col-12
|
||||||
avatar.avatar(:member='user', :avatarOnly='true', :withBackground='true')
|
avatar.avatar(:member='user', :avatarOnly='true', :withBackground='true')
|
||||||
.text-center.col-12(v-if='nextReward')
|
.text-center.col-12(v-if='nextReward')
|
||||||
.reward-wrap(v-if="!data.rewardText")
|
.reward-wrap(v-if="!data.rewardText")
|
||||||
div(v-if="nextReward.rewardKey.length === 1", :class="nextReward.rewardKey[0]")
|
div(v-if="nextReward.rewardKey.length === 1", :class="nextReward.rewardKey[0]")
|
||||||
.reward(v-for="reward in nextReward.rewardKey", v-if="nextReward.rewardKey.length > 1", :class='reward')
|
.reward(
|
||||||
|
v-for="reward in nextReward.rewardKey",
|
||||||
|
v-if="nextReward.rewardKey.length > 1",
|
||||||
|
:class='reward'
|
||||||
|
)
|
||||||
.reward-wrap(v-if="data.rewardText")
|
.reward-wrap(v-if="data.rewardText")
|
||||||
div(v-if="data.rewardKey.length === 1", :class="data.rewardKey[0]")
|
div(v-if="data.rewardKey.length === 1", :class="data.rewardKey[0]")
|
||||||
.reward(v-for="reward in data.rewardKey", v-if="data.rewardKey.length > 1", :class='reward')
|
.reward(
|
||||||
|
v-for="reward in data.rewardKey",
|
||||||
|
v-if="data.rewardKey.length > 1",
|
||||||
|
:class='reward'
|
||||||
|
)
|
||||||
.col-12.text-center(v-if="data && data.nextRewardAt")
|
.col-12.text-center(v-if="data && data.nextRewardAt")
|
||||||
h4 {{ $t('countLeft', {count: data.nextRewardAt - user.loginIncentives}) }}
|
h4 {{ $t('countLeft', {count: data.nextRewardAt - user.loginIncentives}) }}
|
||||||
.row
|
.row
|
||||||
|
|||||||
@@ -4,7 +4,10 @@
|
|||||||
@hide='hide')
|
@hide='hide')
|
||||||
.modal-body.text-center
|
.modal-body.text-center
|
||||||
.quest(:class='`quest_${user.party.quest.completed}`')
|
.quest(:class='`quest_${user.party.quest.completed}`')
|
||||||
p(v-if='questData.completion && typeof questData.completion === "function"', v-html='questData.completion()')
|
p(
|
||||||
|
v-if='questData.completion && typeof questData.completion === "function"',
|
||||||
|
v-html='questData.completion()'
|
||||||
|
)
|
||||||
.quest-rewards.text-center
|
.quest-rewards.text-center
|
||||||
h3(v-once) {{ $t('paymentYouReceived') }}
|
h3(v-once) {{ $t('paymentYouReceived') }}
|
||||||
questDialogDrops(:item="questData")
|
questDialogDrops(:item="questData")
|
||||||
|
|||||||
@@ -36,7 +36,9 @@
|
|||||||
li
|
li
|
||||||
router-link(to='/hall/contributors') {{ $t('hall') }}
|
router-link(to='/hall/contributors') {{ $t('hall') }}
|
||||||
li
|
li
|
||||||
router-link(to='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac') {{ $t('reportBug') }}
|
router-link(
|
||||||
|
to='/groups/guild/a29da26b-37de-4a71-b0c6-48e72a900dac'
|
||||||
|
) {{ $t('reportBug') }}
|
||||||
li
|
li
|
||||||
a(href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents', target='_blank') {{ $t('requestFeature') }}
|
a(href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents', target='_blank') {{ $t('requestFeature') }}
|
||||||
li(v-html='$t("communityExtensions")')
|
li(v-html='$t("communityExtensions")')
|
||||||
@@ -97,7 +99,10 @@
|
|||||||
a.btn.btn-secondary(@click="addLevelsAndGold()") +Exp +GP +MP
|
a.btn.btn-secondary(@click="addLevelsAndGold()") +Exp +GP +MP
|
||||||
a.btn.btn-secondary(@click="addExp()") +Exp
|
a.btn.btn-secondary(@click="addExp()") +Exp
|
||||||
a.btn.btn-secondary(@click="addOneLevel()") +1 Level
|
a.btn.btn-secondary(@click="addOneLevel()") +1 Level
|
||||||
a.btn.btn-secondary(@click="addQuestProgress()", tooltip="+1000 to boss quests. 300 items to collection quests") Quest Progress Up
|
a.btn.btn-secondary(
|
||||||
|
@click="addQuestProgress()",
|
||||||
|
tooltip="+1000 to boss quests. 300 items to collection quests"
|
||||||
|
) Quest Progress Up
|
||||||
a.btn.btn-secondary(@click="makeAdmin()") Make Admin
|
a.btn.btn-secondary(@click="makeAdmin()") Make Admin
|
||||||
a.btn.btn-secondary(@click="openModifyInventoryModal()") Modify Inventory
|
a.btn.btn-secondary(@click="openModifyInventoryModal()") Modify Inventory
|
||||||
.col-12.col-md-2.text-center
|
.col-12.col-md-2.text-center
|
||||||
@@ -316,7 +321,7 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
async addMissedDay (numberOfDays) {
|
async addMissedDay (numberOfDays) {
|
||||||
if (!confirm(`Are you sure you want to reset the day by ${numberOfDays} day(s)?`)) return;
|
if (!window.confirm(`Are you sure you want to reset the day by ${numberOfDays} day(s)?`)) return;
|
||||||
|
|
||||||
const date = moment(this.user.lastCron).subtract(numberOfDays, 'days').toDate();
|
const date = moment(this.user.lastCron).subtract(numberOfDays, 'days').toDate();
|
||||||
|
|
||||||
|
|||||||
@@ -18,11 +18,14 @@
|
|||||||
span(:class="['chair_' + member.preferences.chair, specialMountClass]")
|
span(:class="['chair_' + member.preferences.chair, specialMountClass]")
|
||||||
span(:class="[getGearClass('back'), specialMountClass]")
|
span(:class="[getGearClass('back'), specialMountClass]")
|
||||||
span(:class="[skinClass, specialMountClass]")
|
span(:class="[skinClass, specialMountClass]")
|
||||||
span(:class="[member.preferences.size + '_shirt_' + member.preferences.shirt, specialMountClass]")
|
span(
|
||||||
|
:class="[member.preferences.size + '_shirt_' + member.preferences.shirt, specialMountClass]"
|
||||||
|
)
|
||||||
span(:class="['head_0', specialMountClass]")
|
span(:class="['head_0', specialMountClass]")
|
||||||
span(:class="[member.preferences.size + '_' + getGearClass('armor'), specialMountClass]")
|
span(:class="[member.preferences.size + '_' + getGearClass('armor'), specialMountClass]")
|
||||||
span(:class="[getGearClass('back_collar'), specialMountClass]")
|
span(:class="[getGearClass('back_collar'), specialMountClass]")
|
||||||
template(v-for="type in ['bangs', 'base', 'mustache', 'beard']")
|
template(v-for="type in ['bangs', 'base', 'mustache', 'beard']")
|
||||||
|
// eslint-disable-next-line max-len
|
||||||
span(:class="['hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color, specialMountClass]")
|
span(:class="['hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color, specialMountClass]")
|
||||||
span(:class="[getGearClass('body'), specialMountClass]")
|
span(:class="[getGearClass('body'), specialMountClass]")
|
||||||
span(:class="[getGearClass('eyewear'), specialMountClass]")
|
span(:class="[getGearClass('eyewear'), specialMountClass]")
|
||||||
@@ -212,6 +215,8 @@ export default {
|
|||||||
|
|
||||||
return overrideIsTwoHanded;
|
return overrideIsTwoHanded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
},
|
},
|
||||||
castEnd (e) {
|
castEnd (e) {
|
||||||
if (!this.$store.state.spellOptions.castingSpell) return;
|
if (!this.$store.state.spellOptions.castingSpell) return;
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
|
<!-- eslint-disable -->
|
||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true', :hide-footer='true', :modal-class="{'page-2':modalPage > 1 && !editing}")
|
<!-- eslint-disable -->
|
||||||
|
b-modal#avatar-modal(
|
||||||
|
title="",
|
||||||
|
:size='editing ? "lg" : "md"',
|
||||||
|
:hide-header='true',
|
||||||
|
:hide-footer='true',
|
||||||
|
:modal-class="{'page-2':modalPage > 1 && !editing}",
|
||||||
|
)
|
||||||
.section.row.welcome-section(v-if='modalPage === 1 && !editing')
|
.section.row.welcome-section(v-if='modalPage === 1 && !editing')
|
||||||
.col-6.offset-3.text-center
|
.col-6.offset-3.text-center
|
||||||
h3(v-once) {{$t('welcomeTo')}}
|
h3(v-once) {{$t('welcomeTo')}}
|
||||||
@@ -16,27 +24,43 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
|||||||
button.btn.btn-secondary(v-once) {{$t('randomize')}}
|
button.btn.btn-secondary(v-once) {{$t('randomize')}}
|
||||||
#options-nav.container.section.text-center.customize-menu
|
#options-nav.container.section.text-center.customize-menu
|
||||||
.row
|
.row
|
||||||
.menu-container(@click='changeTopPage("body", "size")', :class='{"col-3": !editing, "col-2 offset-1": editing, active: activeTopPage === "body"}')
|
.menu-container(
|
||||||
|
@click='changeTopPage("body", "size")',
|
||||||
|
:class='{"col-3": !editing, "col-2 offset-1": editing, active: activeTopPage === "body"}'
|
||||||
|
)
|
||||||
.menu-item
|
.menu-item
|
||||||
.svg-icon(v-html='icons.bodyIcon')
|
.svg-icon(v-html='icons.bodyIcon')
|
||||||
strong(v-once) {{$t('bodyBody')}}
|
strong(v-once) {{$t('bodyBody')}}
|
||||||
.indicator
|
.indicator
|
||||||
.menu-container(@click='changeTopPage("skin", "color")', :class='{"col-3": !editing, "col-2": editing, active: activeTopPage === "skin"}')
|
.menu-container(
|
||||||
|
@click='changeTopPage("skin", "color")',
|
||||||
|
:class='{"col-3": !editing, "col-2": editing, active: activeTopPage === "skin"}'
|
||||||
|
)
|
||||||
.menu-item
|
.menu-item
|
||||||
.svg-icon(v-html='icons.skinIcon')
|
.svg-icon(v-html='icons.skinIcon')
|
||||||
strong(v-once) {{$t('skin')}}
|
strong(v-once) {{$t('skin')}}
|
||||||
.indicator
|
.indicator
|
||||||
.menu-container(@click='changeTopPage("hair", "color")', :class='{"col-3": !editing, "col-2": editing, active: activeTopPage === "hair"}')
|
.menu-container(
|
||||||
|
@click='changeTopPage("hair", "color")',
|
||||||
|
:class='{"col-3": !editing, "col-2": editing, active: activeTopPage === "hair"}'
|
||||||
|
)
|
||||||
.menu-item
|
.menu-item
|
||||||
.svg-icon(v-html='icons.hairIcon')
|
.svg-icon(v-html='icons.hairIcon')
|
||||||
strong(v-once) {{$t('hair')}}
|
strong(v-once) {{$t('hair')}}
|
||||||
.indicator
|
.indicator
|
||||||
.menu-container(@click='changeTopPage("extra", "glasses")', :class='{"col-3": !editing, "col-2": editing, active: activeTopPage === "extra"}')
|
.menu-container(
|
||||||
|
@click='changeTopPage("extra", "glasses")',
|
||||||
|
:class='{"col-3": !editing, "col-2": editing, active: activeTopPage === "extra"}'
|
||||||
|
)
|
||||||
.menu-item
|
.menu-item
|
||||||
.svg-icon(v-html='icons.accessoriesIcon')
|
.svg-icon(v-html='icons.accessoriesIcon')
|
||||||
strong(v-once) {{$t('extra')}}
|
strong(v-once) {{$t('extra')}}
|
||||||
.indicator
|
.indicator
|
||||||
.menu-container.col-2(@click='changeTopPage("backgrounds", "2019")', v-if='editing', :class='{active: activeTopPage === "backgrounds"}')
|
.menu-container.col-2(
|
||||||
|
@click='changeTopPage("backgrounds", "2019")',
|
||||||
|
v-if='editing',
|
||||||
|
:class='{active: activeTopPage === "backgrounds"}'
|
||||||
|
)
|
||||||
.menu-item
|
.menu-item
|
||||||
.svg-icon(v-html='icons.backgroundsIcon')
|
.svg-icon(v-html='icons.backgroundsIcon')
|
||||||
strong(v-once) {{$t('backgrounds')}}
|
strong(v-once) {{$t('backgrounds')}}
|
||||||
@@ -64,11 +88,16 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
|||||||
|
|
||||||
#backgrounds.section.container.customize-section(v-if='activeTopPage === "backgrounds"')
|
#backgrounds.section.container.customize-section(v-if='activeTopPage === "backgrounds"')
|
||||||
.row.title-row
|
.row.title-row
|
||||||
toggle-switch.backgroundFilterToggle(:label="'Hide locked backgrounds'", v-model='filterBackgrounds')
|
toggle-switch.backgroundFilterToggle(
|
||||||
|
:label="'Hide locked backgrounds'",
|
||||||
|
v-model='filterBackgrounds',
|
||||||
|
)
|
||||||
.row.text-center.title-row(v-if='!filterBackgrounds')
|
.row.text-center.title-row(v-if='!filterBackgrounds')
|
||||||
strong {{backgroundShopSets[0].text}}
|
strong {{backgroundShopSets[0].text}}
|
||||||
.row.title-row(v-if='!filterBackgrounds')
|
.row.title-row(v-if='!filterBackgrounds')
|
||||||
.col-12(v-if='showPlainBackgroundBlurb(backgroundShopSets[0].identifier, backgroundShopSets[0].items)') {{ $t('incentiveBackgroundsUnlockedWithCheckins') }}
|
.col-12(
|
||||||
|
v-if='showPlainBackgroundBlurb(backgroundShopSets[0].identifier, backgroundShopSets[0].items)'
|
||||||
|
) {{ $t('incentiveBackgroundsUnlockedWithCheckins') }}
|
||||||
.col-2(v-for='bg in backgroundShopSets[0].items',
|
.col-2(v-for='bg in backgroundShopSets[0].items',
|
||||||
@click='unlock("background." + bg.key)',
|
@click='unlock("background." + bg.key)',
|
||||||
:popover-title='bg.text',
|
:popover-title='bg.text',
|
||||||
@@ -76,16 +105,22 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
|||||||
popover-trigger='mouseenter')
|
popover-trigger='mouseenter')
|
||||||
.incentive-background(:class='[`background_${bg.key}`]')
|
.incentive-background(:class='[`background_${bg.key}`]')
|
||||||
.small-rectangle
|
.small-rectangle
|
||||||
sub-menu.text-center(:items="bgSubMenuItems", :activeSubPage="activeSubPage", @changeSubPage="changeSubPage($event)")
|
sub-menu.text-center(
|
||||||
|
:items="bgSubMenuItems",
|
||||||
|
:activeSubPage="activeSubPage",
|
||||||
|
@changeSubPage="changeSubPage($event)"
|
||||||
|
)
|
||||||
.row.customize-menu(v-if='!filterBackgrounds' v-for='(sets, key) in backgroundShopSetsByYear')
|
.row.customize-menu(v-if='!filterBackgrounds' v-for='(sets, key) in backgroundShopSetsByYear')
|
||||||
.row.background-set(v-for='set in sets', v-if='activeSubPage === key')
|
.row.background-set(v-for='set in sets', v-if='activeSubPage === key')
|
||||||
.col-8.offset-2.text-center.set-title
|
.col-8.offset-2.text-center.set-title
|
||||||
strong {{set.text}}
|
strong {{set.text}}
|
||||||
.col-4.text-center.customize-option.background-button(v-for='bg in set.items',
|
.col-4.text-center.customize-option.background-button(
|
||||||
|
v-for='bg in set.items',
|
||||||
@click='!user.purchased.background[bg.key] ? backgroundSelected(bg) : unlock("background." + bg.key)',
|
@click='!user.purchased.background[bg.key] ? backgroundSelected(bg) : unlock("background." + bg.key)',
|
||||||
:popover-title='bg.text',
|
:popover-title='bg.text',
|
||||||
:popover='bg.notes',
|
:popover='bg.notes',
|
||||||
popover-trigger='mouseenter')
|
popover-trigger='mouseenter'
|
||||||
|
)
|
||||||
.background(:class='[`background_${bg.key}`, backgroundLockedStatus(bg.key)]')
|
.background(:class='[`background_${bg.key}`, backgroundLockedStatus(bg.key)]')
|
||||||
i.glyphicon.glyphicon-lock(v-if='!user.purchased.background[bg.key]')
|
i.glyphicon.glyphicon-lock(v-if='!user.purchased.background[bg.key]')
|
||||||
.purchase-background.single(v-if='!user.purchased.background[bg.key]')
|
.purchase-background.single(v-if='!user.purchased.background[bg.key]')
|
||||||
@@ -97,7 +132,10 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
|||||||
v-if='!user.purchased.background[bg.key]'
|
v-if='!user.purchased.background[bg.key]'
|
||||||
)
|
)
|
||||||
span.svg-icon.inline.icon-12.color(v-html="icons.pin")
|
span.svg-icon.inline.icon-12.color(v-html="icons.pin")
|
||||||
.purchase-background.set(v-if='!ownsSet("background", set.items) && set.identifier !== "incentiveBackgrounds"' @click='unlock(setKeys("background", set.items))')
|
.purchase-background.set(
|
||||||
|
v-if='!ownsSet("background", set.items) && set.identifier !== "incentiveBackgrounds"',
|
||||||
|
@click='unlock(setKeys("background", set.items))'
|
||||||
|
)
|
||||||
span.label {{ $t('purchaseAll') }}
|
span.label {{ $t('purchaseAll') }}
|
||||||
.svg-icon.gem(v-html='icons.gem')
|
.svg-icon.gem(v-html='icons.gem')
|
||||||
span.price 15
|
span.price 15
|
||||||
@@ -122,31 +160,58 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
|||||||
label.custom-control-label(v-once, for="work") {{ $t('work') }}
|
label.custom-control-label(v-once, for="work") {{ $t('work') }}
|
||||||
.task-option
|
.task-option
|
||||||
.custom-control.custom-checkbox
|
.custom-control.custom-checkbox
|
||||||
input.custom-control-input#excercise(type="checkbox", value='exercise', v-model='taskCategories')
|
input.custom-control-input#excercise(
|
||||||
|
type="checkbox",
|
||||||
|
value='exercise',
|
||||||
|
v-model='taskCategories'
|
||||||
|
)
|
||||||
label.custom-control-label(v-once, for="excercise") {{ $t('exercise') }}
|
label.custom-control-label(v-once, for="excercise") {{ $t('exercise') }}
|
||||||
.task-option
|
.task-option
|
||||||
.custom-control.custom-checkbox
|
.custom-control.custom-checkbox
|
||||||
input.custom-control-input#health_wellness(type="checkbox", value='health_wellness', v-model='taskCategories')
|
input.custom-control-input#health_wellness(
|
||||||
|
type="checkbox",
|
||||||
|
value='health_wellness',
|
||||||
|
v-model='taskCategories'
|
||||||
|
)
|
||||||
label.custom-control-label(v-once, for="health_wellness") {{ $t('health_wellness') }}
|
label.custom-control-label(v-once, for="health_wellness") {{ $t('health_wellness') }}
|
||||||
.task-option
|
.task-option
|
||||||
.custom-control.custom-checkbox
|
.custom-control.custom-checkbox
|
||||||
input.custom-control-input#school(type="checkbox", value='school', v-model='taskCategories')
|
input.custom-control-input#school(
|
||||||
|
type="checkbox",
|
||||||
|
value='school',
|
||||||
|
v-model='taskCategories'
|
||||||
|
)
|
||||||
label.custom-control-label(v-once, for="school") {{ $t('school') }}
|
label.custom-control-label(v-once, for="school") {{ $t('school') }}
|
||||||
.col-6
|
.col-6
|
||||||
.task-option
|
.task-option
|
||||||
.custom-control.custom-checkbox
|
.custom-control.custom-checkbox
|
||||||
input.custom-control-input#chores(type="checkbox", value='chores', v-model='taskCategories')
|
input.custom-control-input#chores(
|
||||||
|
type="checkbox",
|
||||||
|
value='chores',
|
||||||
|
v-model='taskCategories'
|
||||||
|
)
|
||||||
label.custom-control-label(v-once, for="chores") {{ $t('chores') }}
|
label.custom-control-label(v-once, for="chores") {{ $t('chores') }}
|
||||||
.task-option
|
.task-option
|
||||||
.custom-control.custom-checkbox
|
.custom-control.custom-checkbox
|
||||||
input.custom-control-input#creativity(type="checkbox", value='creativity', v-model='taskCategories')
|
input.custom-control-input#creativity(
|
||||||
|
type="checkbox",
|
||||||
|
value='creativity',
|
||||||
|
v-model='taskCategories'
|
||||||
|
)
|
||||||
label.custom-control-label(v-once, for="creativity") {{ $t('creativity') }}
|
label.custom-control-label(v-once, for="creativity") {{ $t('creativity') }}
|
||||||
.task-option
|
.task-option
|
||||||
.custom-control.custom-checkbox
|
.custom-control.custom-checkbox
|
||||||
input.custom-control-input#self_care(type="checkbox", value='self_care', v-model='taskCategories')
|
input.custom-control-input#self_care(
|
||||||
|
type="checkbox",
|
||||||
|
value='self_care',
|
||||||
|
v-model='taskCategories'
|
||||||
|
)
|
||||||
label.custom-control-label(v-once, for="self_care") {{ $t('self_care') }}
|
label.custom-control-label(v-once, for="self_care") {{ $t('self_care') }}
|
||||||
|
|
||||||
.section.d-flex.justify-content-center.justin-outer-section(:class='{top: modalPage > 1}', v-if='!editing')
|
.section.d-flex.justify-content-center.justin-outer-section(
|
||||||
|
:class='{top: modalPage > 1}',
|
||||||
|
v-if='!editing'
|
||||||
|
)
|
||||||
.justin-section.d-flex.align-items-center
|
.justin-section.d-flex.align-items-center
|
||||||
.featured-label
|
.featured-label
|
||||||
span.rectangle
|
span.rectangle
|
||||||
@@ -182,7 +247,11 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
|||||||
div.next-outer(v-if='modalPage < 3', @click='next()')
|
div.next-outer(v-if='modalPage < 3', @click='next()')
|
||||||
.next(v-once) {{$t('next')}}
|
.next(v-once) {{$t('next')}}
|
||||||
.next-arrow.svg-icon(v-html='icons.arrowRight')
|
.next-arrow.svg-icon(v-html='icons.arrowRight')
|
||||||
div.next-outer(v-if='modalPage === 3 && !loading', @click='done()', :class="{disabled: taskCategories.length === 0}")
|
div.next-outer(
|
||||||
|
v-if='modalPage === 3 && !loading',
|
||||||
|
@click='done()',
|
||||||
|
:class="{disabled: taskCategories.length === 0}"
|
||||||
|
)
|
||||||
.next(v-once) {{$t('finish')}}
|
.next(v-once) {{$t('finish')}}
|
||||||
.next-arrow.svg-icon(v-html='icons.arrowRight')
|
.next-arrow.svg-icon(v-html='icons.arrowRight')
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -2,12 +2,24 @@
|
|||||||
div.attributes-group
|
div.attributes-group
|
||||||
.popover-content-attr(v-for="attr in ATTRIBUTES", :key="attr")
|
.popover-content-attr(v-for="attr in ATTRIBUTES", :key="attr")
|
||||||
.group-content
|
.group-content
|
||||||
span.popover-content-attr-cell.key(:class="{'hasValue': hasSumValue(attr) }") {{ `${$t(attr)}: ` }}
|
span.popover-content-attr-cell.key(
|
||||||
span.popover-content-attr-cell.label.value(:class="{'green': hasSumValue(attr) }") {{ `${stats.sum[attr]}` }}
|
:class="{'hasValue': hasSumValue(attr) }"
|
||||||
span.popover-content-attr-cell.label.bold(:class="{'hasValue': hasGearValue(attr) }") {{ $t('gear') }}:
|
) {{ `${$t(attr)}: ` }}
|
||||||
span.popover-content-attr-cell.label(:class="{'hasValue': hasGearValue(attr) }") {{ stats.gear[attr] }}
|
span.popover-content-attr-cell.label.value(
|
||||||
span.popover-content-attr-cell.label.bold(:class="{'hasValue': hasClassBonus(attr) }") {{ $t('classEquipBonus') }}:
|
:class="{'green': hasSumValue(attr) }"
|
||||||
span.popover-content-attr-cell.label(:class="{'hasValue': hasClassBonus(attr) }") {{ `${stats.classBonus[attr]}` }}
|
) {{ `${stats.sum[attr]}` }}
|
||||||
|
span.popover-content-attr-cell.label.bold(
|
||||||
|
:class="{'hasValue': hasGearValue(attr) }"
|
||||||
|
) {{ $t('gear') }}:
|
||||||
|
span.popover-content-attr-cell.label(
|
||||||
|
:class="{'hasValue': hasGearValue(attr) }"
|
||||||
|
) {{ stats.gear[attr] }}
|
||||||
|
span.popover-content-attr-cell.label.bold(
|
||||||
|
:class="{'hasValue': hasClassBonus(attr) }"
|
||||||
|
) {{ $t('classEquipBonus') }}:
|
||||||
|
span.popover-content-attr-cell.label(
|
||||||
|
:class="{'hasValue': hasClassBonus(attr) }"
|
||||||
|
) {{ `${stats.classBonus[attr]}` }}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
@@ -40,8 +40,8 @@
|
|||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
||||||
@import '~client/assets/scss/colors.scss';
|
@import '~@/assets/scss/colors.scss';
|
||||||
@import '~client/assets/scss/modal.scss';
|
@import '~@/assets/scss/modal.scss';
|
||||||
|
|
||||||
#equipgear-modal {
|
#equipgear-modal {
|
||||||
@include centeredModal();
|
@include centeredModal();
|
||||||
@@ -117,16 +117,16 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapState } from 'client/libs/store';
|
import { mapState } from '@/libs/store';
|
||||||
|
|
||||||
import svgClose from 'assets/svg/close.svg';
|
import svgClose from '@/assets/svg/close.svg';
|
||||||
import svgWarrior from 'assets/svg/warrior.svg';
|
import svgWarrior from '@/assets/svg/warrior.svg';
|
||||||
import svgWizard from 'assets/svg/wizard.svg';
|
import svgWizard from '@/assets/svg/wizard.svg';
|
||||||
import svgRogue from 'assets/svg/rogue.svg';
|
import svgRogue from '@/assets/svg/rogue.svg';
|
||||||
import svgHealer from 'assets/svg/healer.svg';
|
import svgHealer from '@/assets/svg/healer.svg';
|
||||||
|
|
||||||
import Avatar from 'client/components/avatar';
|
import Avatar from '@/components/avatar';
|
||||||
import attributesGrid from 'client/components/inventory/equipment/attributesGrid.vue';
|
import attributesGrid from '@/components/inventory/equipment/attributesGrid.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@@ -20,7 +20,9 @@
|
|||||||
.is-buffed(v-if="isBuffed", v-b-tooltip.hover.bottom="$t('buffed')")
|
.is-buffed(v-if="isBuffed", v-b-tooltip.hover.bottom="$t('buffed')")
|
||||||
.svg-icon(v-html="icons.buff")
|
.svg-icon(v-html="icons.buff")
|
||||||
.small-text.character-level
|
.small-text.character-level
|
||||||
span.mr-1(v-if="member.auth && member.auth.local && member.auth.local.username") @{{ member.auth.local.username }}
|
span.mr-1(
|
||||||
|
v-if="member.auth && member.auth.local && member.auth.local.username"
|
||||||
|
) @{{ member.auth.local.username }}
|
||||||
span.mr-1(v-if="member.auth && member.auth.local && member.auth.local.username") •
|
span.mr-1(v-if="member.auth && member.auth.local && member.auth.local.username") •
|
||||||
span {{ characterLevel }}
|
span {{ characterLevel }}
|
||||||
stats-bar(
|
stats-bar(
|
||||||
|
|||||||
@@ -18,7 +18,11 @@ div
|
|||||||
.col-4.offset-2
|
.col-4.offset-2
|
||||||
span.dropdown-label {{ $t('sortBy') }}
|
span.dropdown-label {{ $t('sortBy') }}
|
||||||
b-dropdown(:text="$t('sort')", right=true)
|
b-dropdown(:text="$t('sort')", right=true)
|
||||||
b-dropdown-item(v-for='sortOption in sortOptions', @click='sort(sortOption.value)', :key='sortOption.value') {{sortOption.text}}
|
b-dropdown-item(
|
||||||
|
v-for='sortOption in sortOptions',
|
||||||
|
@click='sort(sortOption.value)',
|
||||||
|
:key='sortOption.value'
|
||||||
|
) {{sortOption.text}}
|
||||||
.row(v-for='member in sortedMembers')
|
.row(v-for='member in sortedMembers')
|
||||||
.col-10
|
.col-10
|
||||||
member-details(:member='member')
|
member-details(:member='member')
|
||||||
@@ -147,13 +151,13 @@ export default {
|
|||||||
sortBy(this.members, [member => {
|
sortBy(this.members, [member => {
|
||||||
if (this.sortOption === 'tier') {
|
if (this.sortOption === 'tier') {
|
||||||
if (!member.contributor) return;
|
if (!member.contributor) return;
|
||||||
return member.contributor.level;
|
return member.contributor.level; // eslint-disable-line consistent-return
|
||||||
} if (this.sortOption === 'name') {
|
} if (this.sortOption === 'name') {
|
||||||
return member.profile.name;
|
return member.profile.name; // eslint-disable-line consistent-return
|
||||||
} if (this.sortOption === 'lvl') {
|
} if (this.sortOption === 'lvl') {
|
||||||
return member.stats.lvl;
|
return member.stats.lvl; // eslint-disable-line consistent-return
|
||||||
} if (this.sortOption === 'class') {
|
} if (this.sortOption === 'class') {
|
||||||
return member.stats.class;
|
return member.stats.class; // eslint-disable-line consistent-return
|
||||||
}
|
}
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
|||||||
@@ -38,8 +38,13 @@
|
|||||||
ul
|
ul
|
||||||
li(v-for='(key, itemType) in user.items.gear.equipped', v-if='flatGear[key]')
|
li(v-for='(key, itemType) in user.items.gear.equipped', v-if='flatGear[key]')
|
||||||
strong {{ flatGear[key].text() }}
|
strong {{ flatGear[key].text() }}
|
||||||
strong(v-if='flatGear[key].str || flatGear[key].con || flatGear[key].per || flatGear[key].int') :
|
strong(
|
||||||
span(v-for='stat in ["str","con","per","int"]', v-if='flatGear[key][stat]') {{flatGear[key][stat]}} {{ $t(stat) }}
|
v-if='flatGear[key].str || flatGear[key].con || flatGear[key].per || flatGear[key].int'
|
||||||
|
) :
|
||||||
|
span(
|
||||||
|
v-for='stat in ["str","con","per","int"]',
|
||||||
|
v-if='flatGear[key][stat]'
|
||||||
|
) {{flatGear[key][stat]}} {{ $t(stat) }}
|
||||||
|
|
||||||
div(v-if='user.preferences.costume')
|
div(v-if='user.preferences.costume')
|
||||||
h4(v-once) {{ $t('costume') }}
|
h4(v-once) {{ $t('costume') }}
|
||||||
@@ -147,21 +152,51 @@
|
|||||||
span.hint(popover-trigger='mouseenter', popover-placement='right', :popover="$t('evenAllocationPop')") {{ $t('evenAllocation') }}
|
span.hint(popover-trigger='mouseenter', popover-placement='right', :popover="$t('evenAllocationPop')") {{ $t('evenAllocation') }}
|
||||||
.radio
|
.radio
|
||||||
label
|
label
|
||||||
input(type='radio', name='allocationMode', value='classbased',
|
input(
|
||||||
v-model='user.preferences.allocationMode', @change='set({"preferences.allocationMode": "classbased"})')
|
type='radio',
|
||||||
span.hint(popover-trigger='mouseenter', popover-placement='right', :popover="$t('classAllocationPop')") {{ $t('classAllocation') }}
|
name='allocationMode',
|
||||||
|
value='classbased',
|
||||||
|
v-model='user.preferences.allocationMode',
|
||||||
|
@change='set({"preferences.allocationMode": "classbased"})'
|
||||||
|
)
|
||||||
|
span.hint(
|
||||||
|
popover-trigger='mouseenter',
|
||||||
|
popover-placement='right',
|
||||||
|
:popover="$t('classAllocationPop')"
|
||||||
|
) {{ $t('classAllocation') }}
|
||||||
.radio
|
.radio
|
||||||
label
|
label
|
||||||
input(type='radio', name='allocationMode', value='taskbased', v-model='user.preferences.allocationMode', @change='set({"preferences.allocationMode": "taskbased"})')
|
input(
|
||||||
span.hint(popover-trigger='mouseenter', popover-placement='right', :popover="$t('taskAllocationPop')") {{ $t('taskAllocation') }}
|
type='radio',
|
||||||
div(v-if='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)')
|
name='allocationMode',
|
||||||
button.btn.btn-primary.btn-xs(@click='allocateNow({})', popover-trigger='mouseenter', popover-placement='right', :popover="$t('distributePointsPop')")
|
value='taskbased',
|
||||||
|
v-model='user.preferences.allocationMode',
|
||||||
|
@change='set({"preferences.allocationMode": "taskbased"})'
|
||||||
|
)
|
||||||
|
span.hint(
|
||||||
|
popover-trigger='mouseenter',
|
||||||
|
popover-placement='right',
|
||||||
|
:popover="$t('taskAllocationPop')"
|
||||||
|
) {{ $t('taskAllocation') }}
|
||||||
|
div(
|
||||||
|
v-if='user.preferences.automaticAllocation && !(user.preferences.allocationMode === "taskbased") && (user.stats.points > 0)'
|
||||||
|
)
|
||||||
|
button.btn.btn-primary.btn-xs(
|
||||||
|
@click='allocateNow({})',
|
||||||
|
popover-trigger='mouseenter',
|
||||||
|
popover-placement='right',
|
||||||
|
:popover="$t('distributePointsPop')"
|
||||||
|
)
|
||||||
span.glyphicon.glyphicon-download
|
span.glyphicon.glyphicon-download
|
||||||
|
|
|
|
||||||
| {{ $t('distributePoints') }}
|
| {{ $t('distributePoints') }}
|
||||||
.row(v-for='(statInfo, stat) in allocateStatsList')
|
.row(v-for='(statInfo, stat) in allocateStatsList')
|
||||||
.col-8
|
.col-8
|
||||||
span.hint(popover-trigger='mouseenter', popover-placement='right', :popover='$t(statInfo.popover)')
|
span.hint(
|
||||||
|
popover-trigger='mouseenter',
|
||||||
|
popover-placement='right',
|
||||||
|
:popover='$t(statInfo.popover)'
|
||||||
|
)
|
||||||
| {{ $t(statInfo.title) + user.stats[stat] }}
|
| {{ $t(statInfo.title) + user.stats[stat] }}
|
||||||
.col-4(v-if='user.stats.points', @click='allocate(stat)')
|
.col-4(v-if='user.stats.points', @click='allocate(stat)')
|
||||||
button.btn.btn-primary(popover-trigger='mouseenter', popover-placement='right',
|
button.btn.btn-primary(popover-trigger='mouseenter', popover-placement='right',
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ if (process.env.NODE_ENV !== 'production') {
|
|||||||
const cluster = require('cluster');
|
const cluster = require('cluster');
|
||||||
const nconf = require('nconf');
|
const nconf = require('nconf');
|
||||||
|
|
||||||
const setupNconf = require('./libs/setupNconf').default;
|
const setupNconf = require('./libs/setupNconf');
|
||||||
|
|
||||||
// Initialize configuration BEFORE anything
|
// Initialize configuration BEFORE anything
|
||||||
setupNconf();
|
setupNconf();
|
||||||
|
|||||||
Reference in New Issue
Block a user