diff --git a/website/client/components/achievements/levelUp.vue b/website/client/components/achievements/levelUp.vue
index 5007520055..44c7b3eff3 100644
--- a/website/client/components/achievements/levelUp.vue
+++ b/website/client/components/achievements/levelUp.vue
@@ -93,6 +93,7 @@ export default {
data () {
let tweet = this.$t('levelUpShare');
return {
+ statsAllocationBoxIsOpen: true,
maxHealth,
tweet,
socialLevelLink: `${BASE_URL}/social/level-up`,
diff --git a/website/client/components/challenges/challengeDetail.vue b/website/client/components/challenges/challengeDetail.vue
index f683705aaf..74bf6b8ea2 100644
--- a/website/client/components/challenges/challengeDetail.vue
+++ b/website/client/components/challenges/challengeDetail.vue
@@ -26,7 +26,12 @@
| {{challenge.prize}}
.details(v-once) {{$t('prize')}}
.row
- task-column.col-6(v-for="column in columns", :type="column", :key="column")
+ task-column.col-6(
+ v-for="column in columns",
+ :type="column",
+ :key="column",
+ :taskListOverride='tasksByType[column]',
+ v-on:editTask="editTask")
.col-4.sidebar.standard-page
.acitons
div(v-if='!isMember && !isLeader')
@@ -34,7 +39,19 @@
div(v-if='isMember')
button.btn.btn-danger(v-once, @click='leaveChallenge()') {{$t('leaveChallenge')}}
div(v-if='isLeader')
- button.btn.btn-success(v-once) {{$t('addTask')}}
+ b-dropdown(:text="$t('create')")
+ b-dropdown-item(v-for="type in columns", :key="type", @click="createTask(type)")
+ | {{$t(type)}}
+ //- button.btn.btn-success(v-once) {{$t('addTask')}}
+ task-modal(
+ :task="workingTask",
+ :purpose="taskFormPurpose",
+ @cancel="cancelTaskModal()",
+ ref="taskModal",
+ :challengeId="challengeId",
+ v-on:taskCreated='taskCreated',
+ v-on:taskEdited='taskEdited',
+ )
div(v-if='isLeader')
button.btn.btn-secondary(v-once, @click='edit()') {{$t('editChallenge')}}
div(v-if='isLeader')
@@ -122,13 +139,20 @@
\ No newline at end of file
+
diff --git a/website/client/components/tasks/taskModal.vue b/website/client/components/tasks/taskModal.vue
index dcaeb955a3..0f96050b3a 100644
--- a/website/client/components/tasks/taskModal.vue
+++ b/website/client/components/tasks/taskModal.vue
@@ -42,7 +42,7 @@ form(
.svg-icon.negative(v-html="icons.negative")
.option-item-label(v-once) {{ $t('negative') }}
template(v-if="task.type !== 'reward'")
- label(v-once)
+ label(v-once)
span.float-left {{ $t('difficulty') }}
.svg-icon.info-icon(v-html="icons.information")
.d-flex.justify-content-center
@@ -87,18 +87,18 @@ form(
span.custom-control-description(v-once) {{ weekdaysMin(dayNumber) }}
template(v-if="task.frequency === 'monthly'")
label.custom-control.custom-radio
- input.custom-control-input(type='radio', v-model="repeatsOn", value="dayOfMonth")
+ input.custom-control-input(type='radio', v-model="repeatsOn", value="dayOfMonth")
span.custom-control-indicator
span.custom-control-description {{ $t('dayOfMonth') }}
label.custom-control.custom-radio
- input.custom-control-input(type='radio', v-model="repeatsOn", value="dayOfWeek")
+ input.custom-control-input(type='radio', v-model="repeatsOn", value="dayOfWeek")
span.custom-control-indicator
span.custom-control-description {{ $t('dayOfWeek') }}
.option
label(v-once) {{ $t('tags') }}
.category-wrap(@click="showTagsSelect = !showTagsSelect")
- span.category-select(v-if='task.tags.length === 0') {{$t('none')}}
+ span.category-select(v-if='task.tags && task.tags.length === 0') {{$t('none')}}
span.category-select(v-else) {{getTagsFor(task)[0]}}
.category-box(v-if="showTagsSelect")
.form-check(
@@ -123,200 +123,200 @@ form(
\ No newline at end of file
+
diff --git a/website/client/components/tasks/user.vue b/website/client/components/tasks/user.vue
index f18643b59e..888b2466b3 100644
--- a/website/client/components/tasks/user.vue
+++ b/website/client/components/tasks/user.vue
@@ -13,16 +13,16 @@
input.form-control.input-search(type="text", :placeholder="$t('search')", v-model="searchText")
.filter-panel(v-if="isFilterPanelOpen")
.tags-category.d-flex(v-for="tagsType in tagsByType", v-if="tagsType.tags.length > 0", :key="tagsType.key")
- .tags-header(v-once)
+ .tags-header(v-once)
strong {{ $t(tagsType.key) }}
- a.d-block(v-if="tagsType.key === 'tags'", v-once) {{ $t('editTags2') }}
+ a.d-block(v-if="tagsType.key === 'tags'", v-once) {{ $t('editTags2') }}
.tags-list.container
.row.no-gutters
.col-6(v-for="tag in tagsType.tags",)
label.custom-control.custom-checkbox
input.custom-control-input(
- type="checkbox",
- :checked="isTagSelected(tag)",
+ type="checkbox",
+ :checked="isTagSelected(tag)",
@change="toggleTag(tag)",
)
span.custom-control-indicator
@@ -36,7 +36,7 @@
a.cancel-filters(@click="closeFilterPanel()", v-once) {{ $t('cancel') }}
span.input-group-btn
button.btn.btn-secondary.filter-button(
- type="button",
+ type="button",
@click="toggleFilterPanel()",
:class="{'filter-button-open': selectedTags.length > 0}",
)
@@ -44,7 +44,7 @@
span(v-once) {{ $t('filter') }}
.svg-icon.filter-icon(v-html="icons.filter")
.col-1.offset-3
- //button.btn.btn-success(v-once)
+ //button.btn.btn-success(v-once)
.svg-icon.positive(v-html="icons.positive")
| {{ $t('create') }}
b-dropdown(:text="$t('create')")
@@ -53,8 +53,8 @@
.row.tasks-columns
task-column.col-3(
- v-for="column in columns",
- :type="column", :key="column",
+ v-for="column in columns",
+ :type="column", :key="column",
:isUser="true", :searchText="searchTextThrottled",
:selectedTags="selectedTags",
@editTask="editTask",
@@ -62,115 +62,115 @@