mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
Added new award flow to challenges (#10512)
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
challenge-modal(v-on:updatedChallenge='updatedChallenge')
|
challenge-modal(v-on:updatedChallenge='updatedChallenge')
|
||||||
leave-challenge-modal(:challengeId='challenge._id')
|
leave-challenge-modal(:challengeId='challenge._id')
|
||||||
close-challenge-modal(:members='members', :challengeId='challenge._id')
|
close-challenge-modal(:members='members', :challengeId='challenge._id')
|
||||||
challenge-member-progress-modal(:memberId='progressMemberId', :challengeId='challenge._id')
|
challenge-member-progress-modal(:challengeId='challenge._id')
|
||||||
.col-12.col-md-8.standard-page
|
.col-12.col-md-8.standard-page
|
||||||
.row
|
.row
|
||||||
.col-12.col-md-6
|
.col-12.col-md-6
|
||||||
@@ -231,7 +231,6 @@ export default {
|
|||||||
creatingTask: {},
|
creatingTask: {},
|
||||||
workingTask: {},
|
workingTask: {},
|
||||||
taskFormPurpose: 'create',
|
taskFormPurpose: 'create',
|
||||||
progressMemberId: '',
|
|
||||||
searchTerm: '',
|
searchTerm: '',
|
||||||
memberResults: [],
|
memberResults: [],
|
||||||
};
|
};
|
||||||
@@ -345,6 +344,7 @@ export default {
|
|||||||
this.tasksByType[task.type].splice(index, 1);
|
this.tasksByType[task.type].splice(index, 1);
|
||||||
},
|
},
|
||||||
showMemberModal () {
|
showMemberModal () {
|
||||||
|
// @TODO: Change these to options and add a custom event to members modal
|
||||||
this.$store.state.memberModalOptions.challengeId = this.challenge._id;
|
this.$store.state.memberModalOptions.challengeId = this.challenge._id;
|
||||||
this.$store.state.memberModalOptions.groupId = 'challenge'; // @TODO: change these terrible settings
|
this.$store.state.memberModalOptions.groupId = 'challenge'; // @TODO: change these terrible settings
|
||||||
this.$store.state.memberModalOptions.group = this.group;
|
this.$store.state.memberModalOptions.group = this.group;
|
||||||
@@ -374,8 +374,9 @@ export default {
|
|||||||
Object.assign(this.challenge, eventData.challenge);
|
Object.assign(this.challenge, eventData.challenge);
|
||||||
},
|
},
|
||||||
openMemberProgressModal (member) {
|
openMemberProgressModal (member) {
|
||||||
this.progressMemberId = member._id;
|
this.$root.$emit('habitica:challenge:member-progress', {
|
||||||
this.$root.$emit('bv::show::modal', 'challenge-member-modal');
|
progressMemberId: member._id,
|
||||||
|
});
|
||||||
},
|
},
|
||||||
async exportChallengeCsv () {
|
async exportChallengeCsv () {
|
||||||
// let response = await this.$store.dispatch('challenges:exportChallengeCsv', {
|
// let response = await this.$store.dispatch('challenges:exportChallengeCsv', {
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
b-modal#challenge-member-modal(title="User Progress", size='lg')
|
b-modal#challenge-member-modal(title="User Progress", size='lg')
|
||||||
|
.row.award-row
|
||||||
|
.col-12.text-center
|
||||||
|
button.btn.btn-primary(v-once, @click='closeChallenge()') {{ $t('awardWinners') }}
|
||||||
.row
|
.row
|
||||||
task-column.col-6(
|
task-column.col-6(
|
||||||
v-for="column in columns",
|
v-for="column in columns",
|
||||||
@@ -8,12 +11,19 @@
|
|||||||
:taskListOverride='tasksByType[column]')
|
:taskListOverride='tasksByType[column]')
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.award-row {
|
||||||
|
padding-top: 1rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import Column from '../tasks/column';
|
import Column from '../tasks/column';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['challengeId', 'memberId'],
|
props: ['challengeId'],
|
||||||
components: {
|
components: {
|
||||||
TaskColumn: Column,
|
TaskColumn: Column,
|
||||||
},
|
},
|
||||||
@@ -26,8 +36,19 @@ export default {
|
|||||||
todo: [],
|
todo: [],
|
||||||
reward: [],
|
reward: [],
|
||||||
},
|
},
|
||||||
|
memberId: '',
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
mounted () {
|
||||||
|
this.$root.$on('habitica:challenge:member-progress', (data) => {
|
||||||
|
if (!data.progressMemberId) return;
|
||||||
|
this.memberId = data.progressMemberId;
|
||||||
|
this.$root.$emit('bv::show::modal', 'challenge-member-modal');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
beforeDestroy () {
|
||||||
|
this.$root.$off('habitica:challenge:member-progress');
|
||||||
|
},
|
||||||
watch: {
|
watch: {
|
||||||
async memberId (id) {
|
async memberId (id) {
|
||||||
if (!id) return;
|
if (!id) return;
|
||||||
@@ -45,5 +66,14 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
methods: {
|
||||||
|
async closeChallenge () {
|
||||||
|
this.challenge = await this.$store.dispatch('challenges:selectChallengeWinner', {
|
||||||
|
challengeId: this.challengeId,
|
||||||
|
winnerId: this.memberId,
|
||||||
|
});
|
||||||
|
this.$router.push('/challenges/myChallenges');
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ div
|
|||||||
span.dropdown-icon-item
|
span.dropdown-icon-item
|
||||||
.svg-icon.inline(v-html="icons.removeIcon")
|
.svg-icon.inline(v-html="icons.removeIcon")
|
||||||
span.text {{$t('removeManager2')}}
|
span.text {{$t('removeManager2')}}
|
||||||
|
b-dropdown-item(@click='viewProgress(member)')
|
||||||
|
span.dropdown-icon-item
|
||||||
|
span.text {{ $t('viewProgress') }}
|
||||||
.row(v-if='isLoadMoreAvailable')
|
.row(v-if='isLoadMoreAvailable')
|
||||||
.col-12.text-center
|
.col-12.text-center
|
||||||
button.btn.btn-secondary(@click='loadMoreMembers()') {{ $t('loadMore') }}
|
button.btn.btn-secondary(@click='loadMoreMembers()') {{ $t('loadMore') }}
|
||||||
@@ -475,6 +478,11 @@ export default {
|
|||||||
groupData.leader = member;
|
groupData.leader = member;
|
||||||
this.$root.$emit('updatedGroup', groupData);
|
this.$root.$emit('updatedGroup', groupData);
|
||||||
},
|
},
|
||||||
|
viewProgress (member) {
|
||||||
|
this.$root.$emit('habitica:challenge:member-progress', {
|
||||||
|
progressMemberId: member._id,
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -132,6 +132,7 @@
|
|||||||
"locationRequired": "Location of challenge is required ('Add to')",
|
"locationRequired": "Location of challenge is required ('Add to')",
|
||||||
"categoiresRequired": "One or more categories must be selected",
|
"categoiresRequired": "One or more categories must be selected",
|
||||||
"viewProgressOf": "View Progress Of",
|
"viewProgressOf": "View Progress Of",
|
||||||
|
"viewProgress": "View Progress",
|
||||||
"selectMember": "Select Member",
|
"selectMember": "Select Member",
|
||||||
"confirmKeepChallengeTasks": "Do you want to keep challenge tasks?",
|
"confirmKeepChallengeTasks": "Do you want to keep challenge tasks?",
|
||||||
"selectParticipant": "Select a Participant"
|
"selectParticipant": "Select a Participant"
|
||||||
|
|||||||
Reference in New Issue
Block a user