diff --git a/website/client/components/achievements/questInvitation.vue b/website/client/components/achievements/questInvitation.vue
index 5a4bb0a8bd..c8cef4b778 100644
--- a/website/client/components/achievements/questInvitation.vue
+++ b/website/client/components/achievements/questInvitation.vue
@@ -1,5 +1,5 @@
- b-modal#quest-invitation(v-if='user.party.quest.key', :title="$t('questInvitation')", size='lg', :hide-footer="true")
+ b-modal#quest-invitation(v-if='user.party.quest.key && quests[user.party.quest.key]', :title="$t('questInvitation')", size='lg', :hide-footer="true")
.modal-header
h4 {{ $t('questInvitation') }}
| {{quests[user.party.quest.key].text()}}
diff --git a/website/client/components/appHeader.vue b/website/client/components/appHeader.vue
index bf8ea145d4..690f1e3888 100644
--- a/website/client/components/appHeader.vue
+++ b/website/client/components/appHeader.vue
@@ -136,9 +136,9 @@ export default {
},
openPartyModal () {
if (this.user.party._id) {
- this.$store.state.groupId = this.user.party._id;
+ this.$store.state.memberModalOptions.groupId = this.user.party._id;
// @TODO: do we need to fetch party?
- this.$store.state.memberModalOptions.group = this.$store.state.party;
+ // this.$store.state.memberModalOptions.group = this.$store.state.party;
this.$root.$emit('show::modal', 'members-modal');
return;
}
diff --git a/website/client/components/appMenu.vue b/website/client/components/appMenu.vue
index 1d99dc1e83..68c215ed35 100644
--- a/website/client/components/appMenu.vue
+++ b/website/client/components/appMenu.vue
@@ -70,9 +70,9 @@ div
span.small-text {{ $t('editAvatar') }}
a.nav-link.dropdown-item(@click.prevent='showInbox()') {{ $t('messages') }}
a.dropdown-item(@click='showAvatar("backgrounds", "2017")') {{ $t('backgrounds') }}
- router-link.dropdown-item(:to="{name: 'stats'}") {{ $t('stats') }}
- router-link.dropdown-item(:to="{name: 'achievements'}") {{ $t('achievements') }}
- router-link.dropdown-item(:to="{name: 'profile'}") {{ $t('profile') }}
+ a.dropdown-item(@click='showProfile("stats")') {{ $t('stats') }}
+ a.dropdown-item(@click='showProfile("achievements")') {{ $t('achievements') }}
+ a.dropdown-item(@click='showProfile("profile")') {{ $t('profile') }}
router-link.dropdown-item(:to="{name: 'site'}") {{ $t('settings') }}
a.nav-link.dropdown-item(to="/", @click.prevent='logout()') {{ $t('logout') }}
@@ -278,6 +278,10 @@ export default {
this.$store.state.avatarEditorOptions.subpage = subpage;
this.$root.$emit('show::modal', 'avatar-modal');
},
+ showProfile (startingPage) {
+ this.$store.state.profileOptions.startingPage = startingPage;
+ this.$root.$emit('show::modal', 'profile');
+ },
async getUserGroupPlans () {
this.groupPlans = await this.$store.dispatch('guilds:getGroupPlans');
},
diff --git a/website/client/components/challenges/challengeModal.vue b/website/client/components/challenges/challengeModal.vue
index ef78d9bd77..26b2216d95 100644
--- a/website/client/components/challenges/challengeModal.vue
+++ b/website/client/components/challenges/challengeModal.vue
@@ -13,12 +13,12 @@
label
strong(v-once) {{$t('challengeSummary')}} *
div.summary-count {{charactersRemaining}} {{ $t('charactersRemaining') }}
- b-form-input.summary-textarea(type="text", textarea, :placeholder="$t('challengeSummaryPlaceholder')", v-model="workingChallenge.summary")
+ textarea.summary-textarea.form-control(:placeholder="$t('challengeSummaryPlaceholder')", v-model="workingChallenge.summary")
.form-group
label
strong(v-once) {{$t('challengeDescription')}} *
a.float-right {{ $t('markdownFormattingHelp') }}
- b-form-input.description-textarea(type="text", textarea, :placeholder="$t('challengeDescriptionPlaceholder')", v-model="workingChallenge.description")
+ textarea.description-textarea.form-control(:placeholder="$t('challengeDescriptionPlaceholder')", v-model="workingChallenge.description")
.form-group(v-if='creating')
label
strong(v-once) {{$t('challengeGuild')}} *
@@ -211,7 +211,22 @@ export default {
return {
creating: true,
- workingChallenge: {},
+ workingChallenge: {
+ name: '',
+ summary: '',
+ description: '',
+ categories: [],
+ group: '',
+ dailys: [],
+ habits: [],
+ leader: '',
+ members: [],
+ official: false,
+ prize: 1,
+ rewards: [],
+ shortName: '',
+ todos: [],
+ },
showCategorySelect: false,
categoryOptions,
categoriesHashByKey,
@@ -221,7 +236,7 @@ export default {
async mounted () {
this.$root.$on('shown::modal', () => {
if (this.challenge) {
- Object.assign(this.workingChallenge, this.challenge);
+ this.workingChallenge = Object.assign(this.workingChallenge, this.challenge);
this.workingChallenge.categories = [];
if (this.challenge.categories) {
diff --git a/website/client/components/chat/chatMessages.vue b/website/client/components/chat/chatMessages.vue
index e205e6c04c..acab9fd02e 100644
--- a/website/client/components/chat/chatMessages.vue
+++ b/website/client/components/chat/chatMessages.vue
@@ -20,7 +20,7 @@
.card-block
h3.leader(:class='userLevelStyle(cachedProfileData[msg.uuid])')
| {{msg.user}}
- .svg-icon(v-html="`icons.tier${cachedProfileData[msg.uuid].contributor.level}`", v-if='cachedProfileData[msg.uuid] && cachedProfileData[msg.uuid].contributor && cachedProfileData[msg.uuid].contributor.level')
+ .svg-icon(v-html="icons[`tier${cachedProfileData[msg.uuid].contributor.level}`]", v-if='cachedProfileData[msg.uuid] && cachedProfileData[msg.uuid].contributor && cachedProfileData[msg.uuid].contributor.level')
p {{msg.timestamp | timeAgo}}
.text(v-markdown='msg.text')
hr
@@ -103,16 +103,18 @@
color: #167e87;
}
- .moderator {
+ .tier8 {
color: #277eab;
}
- .staff {
+ .tier10 {
color: #6133b4;
}
- .npc {
- color: $black;
+ .tier9 {
+ color: #77f4c7;
+ fill: #77f4c7;
+ stroke: #005737;
}
// End of tier colors
@@ -202,9 +204,9 @@ import tier4 from 'assets/svg/tier-4.svg';
import tier5 from 'assets/svg/tier-5.svg';
import tier6 from 'assets/svg/tier-6.svg';
import tier7 from 'assets/svg/tier-7.svg';
-import tierMod from 'assets/svg/tier-mod.svg';
-import tierNPC from 'assets/svg/tier-npc.svg';
-import tierStaff from 'assets/svg/tier-staff.svg';
+import tier8 from 'assets/svg/tier-mod.svg';
+import tier9 from 'assets/svg/tier-npc.svg';
+import tier10 from 'assets/svg/tier-staff.svg';
export default {
props: ['chat', 'groupId', 'groupName', 'inbox'],
@@ -243,9 +245,9 @@ export default {
tier5,
tier6,
tier7,
- tierMod,
- tierNPC,
- tierStaff,
+ tier8,
+ tier9,
+ tier10,
}),
copyingMessage: {},
currentDayDividerDisplay: moment().day(),
diff --git a/website/client/components/creatorIntro.vue b/website/client/components/creatorIntro.vue
index dab4e59857..3613bbd9e8 100644
--- a/website/client/components/creatorIntro.vue
+++ b/website/client/components/creatorIntro.vue
@@ -8,7 +8,7 @@ b-modal#avatar-modal(title="", size='lg', :hide-header='true', :hide-footer='tru
.section.avatar-section.row(:class='{"page-2": modalPage === 2}')
.col-6.offset-3
.user-creation-bg
- avatar(:member='user')
+ avatar(:member='user', :avatarOnly='!editing')
.section(v-if='modalPage === 2')
// @TODO Implement in V2 .section.row
@@ -282,7 +282,7 @@ b-modal#avatar-modal(title="", size='lg', :hide-header='true', :hide-footer='tru
.next(v-once) {{$t('next')}}
.next-arrow
div(v-if='modalPage === 3', @click='done()')
- button.btn.btn-primary.next(v-once) {{$t('done')}}
+ button.btn.btn-primary.next(v-once, v-if='!loading') {{$t('done')}}