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')
|
||||
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 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>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -31,13 +31,23 @@
|
||||
.svg-icon.align-self-center(v-html='icons[heroClass]')
|
||||
.class-name(:class='`${heroClass}-color`') {{ $t(heroClass) }}
|
||||
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")')
|
||||
.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(v-else, @click='clickSelectClass(selectedClass); close();') {{ $t('selectClass', {heroClass: $t(selectedClass)}) }}
|
||||
button.btn.btn-primary.d-inline-block(
|
||||
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
|
||||
span#classOptOutBtn.danger(@click='clickDisableClasses(); close();') {{ $t('optOutOfClasses') }}
|
||||
span#classOptOutBtn.danger(
|
||||
@click='clickDisableClasses(); close();'
|
||||
) {{ $t('optOutOfClasses') }}
|
||||
span.opt-out-description {{ $t('optOutOfClassesText') }}
|
||||
</template>
|
||||
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
button.btn.btn-primary(@click='close()') {{ $t('onwards') }}
|
||||
br
|
||||
// @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') }}
|
||||
|
||||
.container-fluid.share-buttons
|
||||
|
||||
@@ -2,17 +2,27 @@
|
||||
b-modal#login-incentives(:title="data.message", size='md', :hide-footer="true")
|
||||
.modal-body
|
||||
.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
|
||||
.col-12
|
||||
avatar.avatar(:member='user', :avatarOnly='true', :withBackground='true')
|
||||
.text-center.col-12(v-if='nextReward')
|
||||
.reward-wrap(v-if="!data.rewardText")
|
||||
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")
|
||||
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")
|
||||
h4 {{ $t('countLeft', {count: data.nextRewardAt - user.loginIncentives}) }}
|
||||
.row
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
@hide='hide')
|
||||
.modal-body.text-center
|
||||
.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
|
||||
h3(v-once) {{ $t('paymentYouReceived') }}
|
||||
questDialogDrops(:item="questData")
|
||||
|
||||
@@ -36,7 +36,9 @@
|
||||
li
|
||||
router-link(to='/hall/contributors') {{ $t('hall') }}
|
||||
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
|
||||
a(href='https://trello.com/c/odmhIqyW/440-read-first-table-of-contents', target='_blank') {{ $t('requestFeature') }}
|
||||
li(v-html='$t("communityExtensions")')
|
||||
@@ -97,7 +99,10 @@
|
||||
a.btn.btn-secondary(@click="addLevelsAndGold()") +Exp +GP +MP
|
||||
a.btn.btn-secondary(@click="addExp()") +Exp
|
||||
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="openModifyInventoryModal()") Modify Inventory
|
||||
.col-12.col-md-2.text-center
|
||||
@@ -316,7 +321,7 @@ export default {
|
||||
});
|
||||
},
|
||||
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();
|
||||
|
||||
|
||||
@@ -18,11 +18,14 @@
|
||||
span(:class="['chair_' + member.preferences.chair, specialMountClass]")
|
||||
span(:class="[getGearClass('back'), 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="[member.preferences.size + '_' + getGearClass('armor'), specialMountClass]")
|
||||
span(:class="[getGearClass('back_collar'), specialMountClass]")
|
||||
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="[getGearClass('body'), specialMountClass]")
|
||||
span(:class="[getGearClass('eyewear'), specialMountClass]")
|
||||
@@ -212,6 +215,8 @@ export default {
|
||||
|
||||
return overrideIsTwoHanded;
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
castEnd (e) {
|
||||
if (!this.$store.state.spellOptions.castingSpell) return;
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
<!-- eslint-disable -->
|
||||
<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')
|
||||
.col-6.offset-3.text-center
|
||||
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')}}
|
||||
#options-nav.container.section.text-center.customize-menu
|
||||
.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
|
||||
.svg-icon(v-html='icons.bodyIcon')
|
||||
strong(v-once) {{$t('bodyBody')}}
|
||||
.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
|
||||
.svg-icon(v-html='icons.skinIcon')
|
||||
strong(v-once) {{$t('skin')}}
|
||||
.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
|
||||
.svg-icon(v-html='icons.hairIcon')
|
||||
strong(v-once) {{$t('hair')}}
|
||||
.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
|
||||
.svg-icon(v-html='icons.accessoriesIcon')
|
||||
strong(v-once) {{$t('extra')}}
|
||||
.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
|
||||
.svg-icon(v-html='icons.backgroundsIcon')
|
||||
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"')
|
||||
.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')
|
||||
strong {{backgroundShopSets[0].text}}
|
||||
.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',
|
||||
@click='unlock("background." + bg.key)',
|
||||
:popover-title='bg.text',
|
||||
@@ -76,16 +105,22 @@ b-modal#avatar-modal(title="", :size='editing ? "lg" : "md"', :hide-header='true
|
||||
popover-trigger='mouseenter')
|
||||
.incentive-background(:class='[`background_${bg.key}`]')
|
||||
.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.background-set(v-for='set in sets', v-if='activeSubPage === key')
|
||||
.col-8.offset-2.text-center.set-title
|
||||
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)',
|
||||
:popover-title='bg.text',
|
||||
:popover='bg.notes',
|
||||
popover-trigger='mouseenter')
|
||||
popover-trigger='mouseenter'
|
||||
)
|
||||
.background(:class='[`background_${bg.key}`, backgroundLockedStatus(bg.key)]')
|
||||
i.glyphicon.glyphicon-lock(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]'
|
||||
)
|
||||
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') }}
|
||||
.svg-icon.gem(v-html='icons.gem')
|
||||
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') }}
|
||||
.task-option
|
||||
.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') }}
|
||||
.task-option
|
||||
.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') }}
|
||||
.task-option
|
||||
.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') }}
|
||||
.col-6
|
||||
.task-option
|
||||
.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') }}
|
||||
.task-option
|
||||
.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') }}
|
||||
.task-option
|
||||
.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') }}
|
||||
|
||||
.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
|
||||
.featured-label
|
||||
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()')
|
||||
.next(v-once) {{$t('next')}}
|
||||
.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-arrow.svg-icon(v-html='icons.arrowRight')
|
||||
</template>
|
||||
|
||||
@@ -2,12 +2,24 @@
|
||||
div.attributes-group
|
||||
.popover-content-attr(v-for="attr in ATTRIBUTES", :key="attr")
|
||||
.group-content
|
||||
span.popover-content-attr-cell.key(:class="{'hasValue': hasSumValue(attr) }") {{ `${$t(attr)}: ` }}
|
||||
span.popover-content-attr-cell.label.value(:class="{'green': hasSumValue(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]}` }}
|
||||
span.popover-content-attr-cell.key(
|
||||
:class="{'hasValue': hasSumValue(attr) }"
|
||||
) {{ `${$t(attr)}: ` }}
|
||||
span.popover-content-attr-cell.label.value(
|
||||
:class="{'green': hasSumValue(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>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@@ -40,8 +40,8 @@
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
@import '~client/assets/scss/colors.scss';
|
||||
@import '~client/assets/scss/modal.scss';
|
||||
@import '~@/assets/scss/colors.scss';
|
||||
@import '~@/assets/scss/modal.scss';
|
||||
|
||||
#equipgear-modal {
|
||||
@include centeredModal();
|
||||
@@ -117,16 +117,16 @@
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'client/libs/store';
|
||||
import { mapState } from '@/libs/store';
|
||||
|
||||
import svgClose from 'assets/svg/close.svg';
|
||||
import svgWarrior from 'assets/svg/warrior.svg';
|
||||
import svgWizard from 'assets/svg/wizard.svg';
|
||||
import svgRogue from 'assets/svg/rogue.svg';
|
||||
import svgHealer from 'assets/svg/healer.svg';
|
||||
import svgClose from '@/assets/svg/close.svg';
|
||||
import svgWarrior from '@/assets/svg/warrior.svg';
|
||||
import svgWizard from '@/assets/svg/wizard.svg';
|
||||
import svgRogue from '@/assets/svg/rogue.svg';
|
||||
import svgHealer from '@/assets/svg/healer.svg';
|
||||
|
||||
import Avatar from 'client/components/avatar';
|
||||
import attributesGrid from 'client/components/inventory/equipment/attributesGrid.vue';
|
||||
import Avatar from '@/components/avatar';
|
||||
import attributesGrid from '@/components/inventory/equipment/attributesGrid.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
.is-buffed(v-if="isBuffed", v-b-tooltip.hover.bottom="$t('buffed')")
|
||||
.svg-icon(v-html="icons.buff")
|
||||
.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 {{ characterLevel }}
|
||||
stats-bar(
|
||||
|
||||
@@ -18,7 +18,11 @@ div
|
||||
.col-4.offset-2
|
||||
span.dropdown-label {{ $t('sortBy') }}
|
||||
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')
|
||||
.col-10
|
||||
member-details(:member='member')
|
||||
@@ -147,13 +151,13 @@ export default {
|
||||
sortBy(this.members, [member => {
|
||||
if (this.sortOption === 'tier') {
|
||||
if (!member.contributor) return;
|
||||
return member.contributor.level;
|
||||
return member.contributor.level; // eslint-disable-line consistent-return
|
||||
} if (this.sortOption === 'name') {
|
||||
return member.profile.name;
|
||||
return member.profile.name; // eslint-disable-line consistent-return
|
||||
} if (this.sortOption === 'lvl') {
|
||||
return member.stats.lvl;
|
||||
return member.stats.lvl; // eslint-disable-line consistent-return
|
||||
} if (this.sortOption === 'class') {
|
||||
return member.stats.class;
|
||||
return member.stats.class; // eslint-disable-line consistent-return
|
||||
}
|
||||
}]);
|
||||
|
||||
|
||||
@@ -38,8 +38,13 @@
|
||||
ul
|
||||
li(v-for='(key, itemType) in user.items.gear.equipped', v-if='flatGear[key]')
|
||||
strong {{ flatGear[key].text() }}
|
||||
strong(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) }}
|
||||
strong(
|
||||
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')
|
||||
h4(v-once) {{ $t('costume') }}
|
||||
@@ -147,21 +152,51 @@
|
||||
span.hint(popover-trigger='mouseenter', popover-placement='right', :popover="$t('evenAllocationPop')") {{ $t('evenAllocation') }}
|
||||
.radio
|
||||
label
|
||||
input(type='radio', 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') }}
|
||||
input(
|
||||
type='radio',
|
||||
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
|
||||
label
|
||||
input(type='radio', name='allocationMode', 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')")
|
||||
input(
|
||||
type='radio',
|
||||
name='allocationMode',
|
||||
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
|
||||
|
|
||||
| {{ $t('distributePoints') }}
|
||||
.row(v-for='(statInfo, stat) in allocateStatsList')
|
||||
.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] }}
|
||||
.col-4(v-if='user.stats.points', @click='allocate(stat)')
|
||||
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 nconf = require('nconf');
|
||||
|
||||
const setupNconf = require('./libs/setupNconf').default;
|
||||
const setupNconf = require('./libs/setupNconf');
|
||||
|
||||
// Initialize configuration BEFORE anything
|
||||
setupNconf();
|
||||
|
||||
Reference in New Issue
Block a user