diff --git a/src/components/tasks/partials/kanban-card.vue b/src/components/tasks/partials/kanban-card.vue
new file mode 100644
index 000000000..d2ff37e34
--- /dev/null
+++ b/src/components/tasks/partials/kanban-card.vue
@@ -0,0 +1,111 @@
+
+ markTaskAsDone(task)"
+ @click.exact="() => $router.push({ name: 'task.kanban.detail', params: { id: task.id } })"
+ @click.meta="() => markTaskAsDone(task)"
+ class="task loader-container draggable"
+ >
+
+ Done
+
+ #{{ task.index }}
+
+
+ {{ task.identifier }}
+
+
+
+
+
+
+
+ {{ formatDateSince(task.dueDate) }}
+
+
+
{{ task.title }}
+
+
+
+
+
+
diff --git a/src/views/list/views/Kanban.vue b/src/views/list/views/Kanban.vue
index 615838c00..ca21ff936 100644
--- a/src/views/list/views/Kanban.vue
+++ b/src/views/list/views/Kanban.vue
@@ -127,72 +127,7 @@
:key="`bucket${bucket.id}-task${task.id}`"
v-for="task in bucket.tasks"
>
-
markTaskAsDone(task)"
- @click.exact="() => $router.push({ name: 'task.kanban.detail', params: { id: task.id } })"
- @click.meta="() => markTaskAsDone(task)"
- class="task loader-container draggable"
- >
-
- Done
-
- #{{ task.index }}
-
-
- {{ task.identifier }}
-
-
-
-
-
-
-
- {{ formatDateSince(task.dueDate) }}
-
-
-
{{ task.title }}
-
-
-
+
@@ -280,10 +215,6 @@ import TaskService from '../../../services/task'
import BucketModel from '../../../models/bucket'
import {Container, Draggable} from 'vue-smooth-dnd'
-import PriorityLabel from '../../../components/tasks/partials/priorityLabel'
-import User from '../../../components/misc/user'
-import Labels from '../../../components/tasks/partials/labels'
-
import {filterObject} from '@/helpers/filterObject'
import {applyDrag} from '@/helpers/applyDrag'
import {mapState} from 'vuex'
@@ -292,21 +223,21 @@ import Rights from '../../../models/rights.json'
import {LOADING, LOADING_MODULE} from '@/store/mutation-types'
import FilterPopup from '@/components/list/partials/filter-popup.vue'
import Dropdown from '@/components/misc/dropdown.vue'
-import {playPop} from '@/helpers/playPop'
import createTask from '@/components/tasks/mixins/createTask'
import {getCollapsedBucketState, saveCollapsedBucketState} from '@/helpers/saveCollapsedBucketState'
import {calculateItemPosition} from '../../../helpers/calculateItemPosition'
+import draggable from 'vuedraggable'
+import KanbanCard from '../../../components/tasks/partials/kanban-card'
export default {
name: 'Kanban',
components: {
+ KanbanCard,
Dropdown,
FilterPopup,
Container,
Draggable,
- Labels,
- User,
- PriorityLabel,
+ draggable,
},
data() {
return {
@@ -463,24 +394,6 @@ export default {
})
}
},
- markTaskAsDone(task) {
- this.oneTaskUpdating = true
- this.$set(this.taskUpdating, task.id, true)
- task.done = !task.done
- this.$store.dispatch('tasks/update', task)
- .then(() => {
- if (task.done) {
- playPop()
- }
- })
- .catch(e => {
- this.error(e)
- })
- .finally(() => {
- this.$set(this.taskUpdating, task.id, false)
- this.oneTaskUpdating = false
- })
- },
getTaskPayload(bucketId) {
return index => {
const bucket = this.buckets[filterObject(this.buckets, b => b.id === bucketId)]