mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
Challenge fixes (#9528)
* Added challenge member search to progress dropdown * Added leave challenge modal * Allowed editing for challenge leader only * Pevented users from editing challenge task info * Set default progress default to daily * Removed reward filters from user challenge progress
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<template lang="pug">
|
||||
.row
|
||||
challenge-modal(:cloning='cloning' v-on:updatedChallenge='updatedChallenge')
|
||||
leave-challenge-modal(:challengeId='challenge._id')
|
||||
close-challenge-modal(:members='members', :challengeId='challenge._id')
|
||||
challenge-member-progress-modal(:memberId='progressMemberId', :challengeId='challenge._id')
|
||||
|
||||
@@ -33,7 +34,8 @@
|
||||
span.view-progress
|
||||
strong {{ $t('viewProgressOf') }}
|
||||
b-dropdown.create-dropdown(text="Select a Participant")
|
||||
b-dropdown-item(v-for="member in members", :key="member._id", @click="openMemberProgressModal(member._id)")
|
||||
input.form-control(type='text', v-model='searchTerm')
|
||||
b-dropdown-item(v-for="member in memberResults", :key="member._id", @click="openMemberProgressModal(member._id)")
|
||||
| {{ member.profile.name }}
|
||||
span(v-if='isLeader || isAdmin')
|
||||
b-dropdown.create-dropdown(:text="$t('addTaskToChallenge')", :variant="'success'")
|
||||
@@ -189,6 +191,8 @@ import TaskModal from '../tasks/taskModal';
|
||||
import markdownDirective from 'client/directives/markdown';
|
||||
import challengeModal from './challengeModal';
|
||||
import challengeMemberProgressModal from './challengeMemberProgressModal';
|
||||
import challengeMemberSearchMixin from 'client/mixins/challengeMemberSearch';
|
||||
import leaveChallengeModal from './leaveChallengeModal';
|
||||
|
||||
import taskDefaults from 'common/script/libs/taskDefaults';
|
||||
|
||||
@@ -198,11 +202,13 @@ import calendarIcon from 'assets/svg/calendar.svg';
|
||||
|
||||
export default {
|
||||
props: ['challengeId'],
|
||||
mixins: [challengeMemberSearchMixin],
|
||||
directives: {
|
||||
markdown: markdownDirective,
|
||||
},
|
||||
components: {
|
||||
closeChallengeModal,
|
||||
leaveChallengeModal,
|
||||
challengeModal,
|
||||
challengeMemberProgressModal,
|
||||
TaskColumn: Column,
|
||||
@@ -231,6 +237,8 @@ export default {
|
||||
workingTask: {},
|
||||
taskFormPurpose: 'create',
|
||||
progressMemberId: '',
|
||||
searchTerm: '',
|
||||
memberResults: [],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -365,19 +373,7 @@ export default {
|
||||
await this.$store.dispatch('tasks:fetchUserTasks', {forceLoad: true});
|
||||
},
|
||||
async leaveChallenge () {
|
||||
let keepChallenge = confirm('Do you want to keep challenge tasks?');
|
||||
let keep = 'keep-all';
|
||||
if (!keepChallenge) keep = 'remove-all';
|
||||
|
||||
let index = findIndex(this.user.challenges, (challengeId) => {
|
||||
return challengeId === this.searchId;
|
||||
});
|
||||
this.user.challenges.splice(index, 1);
|
||||
await this.$store.dispatch('challenges:leaveChallenge', {
|
||||
challengeId: this.searchId,
|
||||
keep,
|
||||
});
|
||||
await this.$store.dispatch('tasks:fetchUserTasks', {forceLoad: true});
|
||||
this.$root.$emit('bv::show::modal', 'leave-challenge-modal');
|
||||
},
|
||||
closeChallenge () {
|
||||
this.$root.$emit('bv::show::modal', 'close-challenge-modal');
|
||||
|
||||
Reference in New Issue
Block a user