This commit is contained in:
romankko2 committed 2023-09-18 12:22:24 +02:00
1 parent 4ed354904c
commit b16ff2e34f
4 files changed
+27 -59

No files matched your search

@@ -184,6 +184,7 @@ export default {
const end = date.setHours(Math.round(event.endTimeMinutes / 60), Math.round(event.endTimeMinutes % 60), 0)
const split = this.splits.find(split => split.id == newSplit )
if(this.$route.name == 'Dashboard - Tasks') {
const editedSubtask = {
...event.subtask,
@@ -8,7 +8,6 @@
:items="enrichedEmployees"
item-title="_fullName"
item-value="id"
:disabled="isSortingActive"
/>
<v-text-field
v-model="searchQuery"
@@ -18,7 +17,6 @@
prepend-inner-icon="mdi-magnify"
@input="onInput"
type="text"
:disabled="isSortingActive"
></v-text-field>
<v-select
v-model="sortOrder"
@@ -44,7 +42,14 @@ export default {
return {
selectedEmployeeId: null,
searchQuery: '',
sortOrder: null
sortOrder: null,
sortOptions: [
{ text: 'Zrušiť filter', value: null },
{ text: 'Názov (A-Z)', value: 'nameAsc' },
{ text: 'Názov (Z-A)', value: 'nameDesc' },
{ text: 'Dátum (Najnovší - Najstarší)', value: 'deadlineDesc' },
{ text: 'Dátum (Najstarší - Najnovší)', value: 'deadlineAsc' }
]
}
},
@@ -53,31 +58,13 @@ export default {
},
computed: {
...mapGetters('tm', ['enrichedEmployees']),
sortOptions() {
return [
{ text: 'Zrušiť filter', value: null },
{ text: 'Názov (A-Z)', value: 'nameAsc' },
{ text: 'Názov (Z-A)', value: 'nameDesc' },
{ text: 'Dátum (Najnovší - Najstarší)', value: 'deadlineDesc' },
{ text: 'Dátum (Najstarší - Najnovší)', value: 'deadlineAsc' }
]
},
isSortingActive() {
return this.sortOrder !== null && this.sortOrder !== 'null'
},
...mapGetters('tm', ['enrichedEmployees'])
},
methods: {
onInput() {
this.$emit('search', this.searchQuery)
},
updateSortOrder() {
this.$emit('update-sort-order', this.sortOrder)
}
},
watch: {
@@ -85,8 +72,8 @@ export default {
this.$emit('employee-selected', this.selectedEmployeeId)
},
sortOrder() {
this.updateSortOrder()
sortOrder(value) {
this.$emit('update-sort-order', value)
}
}
}
@@ -4,7 +4,7 @@
<Z-tasks-search @search="onSearch" @employee-selected="onEmployeeSelected" @update-sort-order="onUpdateSortOrder" />
<W-loadable :content="filteredOngoingTasks" :emptyMessage="searchQuery.length ? 'Neboli nájdené žiadne úlohy' : 'Nenašli sa žiadne záznamy'">
<A-ongoing-table :subtasks="selectedTasks" />
<A-ongoing-table :subtasks="filteredOngoingTasks" />
</W-loadable>
</div>
@@ -40,51 +40,41 @@ export default {
if (!this.ongoingSubtasks)
return null
return this.ongoingSubtasks.filter(subtask => {
let filteredSubtasks = this.ongoingSubtasks.filter(subtask => {
return this.filterParams(this.searchQuery, subtask.master_task?.name || subtask.title) || this.filterParams(this.searchQuery, subtask.project_code)
})
},
sortedOngoingTasks() {
if (!this.ongoingSubtasks)
return null
let sortedTasks = this.ongoingSubtasks
//Sorting by name A-Z
if (this.sortOrder === 'nameAsc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const nameA = (a.title || a.master_task || '').toLowerCase()
const nameB = (b.title || b.master_task || '').toLowerCase()
return nameA.localeCompare(nameB)
})
//Sorting by name Z-A
} else if (this.sortOrder === 'nameDesc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const nameA = (a.title || a.master_task || '').toLowerCase()
const nameB = (b.title || b.master_task || '').toLowerCase()
return nameB.localeCompare(nameA)
})
//Sorting by date Newest-Oldest
} else if (this.sortOrder === 'deadlineDesc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const deadlineA = a.deadline ? new Date(a.deadline) : new Date(this.getMasterTaskDeadline(a))
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
return deadlineB - deadlineA
})
//Sorting by date Oldest-Newest
} else if (this.sortOrder === 'deadlineAsc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const deadlineA = a.deadline ? new Date(a.deadline) : new Date(this.getMasterTaskDeadline(a))
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
return deadlineA - deadlineB
})
}
return sortedTasks
},
selectedTasks() {
return this.sortOrder ? this.sortedOngoingTasks : this.filteredOngoingTasks
return filteredSubtasks
}
},
@@ -4,7 +4,7 @@
<Z-tasks-search @search="onSearch" @employee-selected="onEmployeeSelected" @update-sort-order="onUpdateSortOrder" />
<W-loadable :content="filteredUnscheduledTasks" :emptyMessage="searchQuery.length ? 'Neboli nájdené žiadne úlohy' : 'Nenašli sa žiadne záznamy'">
<A-unscheduled-table :subtasks="selectedTasks" />
<A-unscheduled-table :subtasks="filteredUnscheduledTasks" />
</W-loadable>
</div>
@@ -39,51 +39,41 @@ export default {
if (!this.unscheduledSubtasks)
return null
return this.unscheduledSubtasks.filter(subtask => {
let filteredSubtasks = this.unscheduledSubtasks.filter(subtask => {
return this.filterParams(this.searchQuery, subtask.master_task?.name || subtask.title) || this.filterParams(this.searchQuery, subtask.project_code)
})
},
sortedUnscheduledTasks() {
if (!this.unscheduledSubtasks)
return null
let sortedTasks = this.unscheduledSubtasks
//Sorting by name A-Z
if (this.sortOrder === 'nameAsc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const nameA = (a.title || a.master_task || '').toLowerCase()
const nameB = (b.title || b.master_task || '').toLowerCase()
return nameA.localeCompare(nameB)
})
//Sorting by name Z-A
} else if (this.sortOrder === 'nameDesc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
// const { nameA, nameB } = this._getTaskTitleOrMastertaskName(a, b)
const nameA = (a.title || a.master_task || '').toLowerCase()
const nameB = (b.title || b.master_task || '').toLowerCase()
return nameB.localeCompare(nameA)
})
//Sorting by date Newest-Oldest
} else if (this.sortOrder === 'deadlineDesc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const deadlineA = a.deadline ? new Date(a.deadline) : new Date(this.getMasterTaskDeadline(a))
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
return deadlineB - deadlineA
})
//Sorting by date Oldest-Newest
} else if (this.sortOrder === 'deadlineAsc') {
sortedTasks.sort((a, b) => {
filteredSubtasks.sort((a, b) => {
const deadlineA = a.deadline ? new Date(a.deadline) : new Date(this.getMasterTaskDeadline(a))
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
return deadlineA - deadlineB
})
}
return sortedTasks
},
selectedTasks() {
return this.sortOrder ? this.sortedUnscheduledTasks : this.filteredUnscheduledTasks
return filteredSubtasks
}
},