mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-21 22:39:34 +00:00
fixy
This commit is contained in:
1 parent
4ed354904c
commit
b16ff2e34f
4 files changed
+63
-95
No files matched your search
@@ -184,29 +184,30 @@ export default {
|
|||||||
const end = date.setHours(Math.round(event.endTimeMinutes / 60), Math.round(event.endTimeMinutes % 60), 0)
|
const end = date.setHours(Math.round(event.endTimeMinutes / 60), Math.round(event.endTimeMinutes % 60), 0)
|
||||||
|
|
||||||
const split = this.splits.find(split => split.id == newSplit )
|
const split = this.splits.find(split => split.id == newSplit )
|
||||||
|
|
||||||
if(this.$route.name == 'Dashboard - Tasks') {
|
if(this.$route.name == 'Dashboard - Tasks') {
|
||||||
const editedSubtask = {
|
const editedSubtask = {
|
||||||
...event.subtask,
|
...event.subtask,
|
||||||
timeblocks: [...event.subtask.timeblocks, {
|
timeblocks: [...event.subtask.timeblocks, {
|
||||||
id: event._timeblock_id,
|
id: event._timeblock_id,
|
||||||
is_finished: 0,
|
is_finished: 0,
|
||||||
start: tmUtils.formatDateTimeForBackend(start),
|
start: tmUtils.formatDateTimeForBackend(start),
|
||||||
end: tmUtils.formatDateTimeForBackend(end)
|
end: tmUtils.formatDateTimeForBackend(end)
|
||||||
}],
|
}],
|
||||||
timesheets: event.subtask.timesheets.map((timesheet) => {
|
timesheets: event.subtask.timesheets.map((timesheet) => {
|
||||||
delete timesheet.employee_name
|
delete timesheet.employee_name
|
||||||
return timesheet
|
return timesheet
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
const { subtask } = await this.$axios.put_auth(`v1/subtasks/${editedSubtask.id}`, editedSubtask)
|
const { subtask } = await this.$axios.put_auth(`v1/subtasks/${editedSubtask.id}`, editedSubtask)
|
||||||
this.$events.emit('on-subtask-edited', subtask)
|
this.$events.emit('on-subtask-edited', subtask)
|
||||||
|
|
||||||
if (subtask.employee_id == this.$store.getters['auth/user'].id)
|
if (subtask.employee_id == this.$store.getters['auth/user'].id)
|
||||||
this.$events.emit('show-task-add-time-modal', { subtask })
|
this.$events.emit('show-task-add-time-modal', { subtask })
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.$toast.error(error.message || error)
|
this.$toast.error(error.message || error)
|
||||||
}
|
}
|
||||||
} else if(this.$route.name == 'Dashboard - Teams') {
|
} else if(this.$route.name == 'Dashboard - Teams') {
|
||||||
const editedSubtask = {
|
const editedSubtask = {
|
||||||
...event.subtask,
|
...event.subtask,
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
:items="enrichedEmployees"
|
:items="enrichedEmployees"
|
||||||
item-title="_fullName"
|
item-title="_fullName"
|
||||||
item-value="id"
|
item-value="id"
|
||||||
:disabled="isSortingActive"
|
|
||||||
/>
|
/>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="searchQuery"
|
v-model="searchQuery"
|
||||||
@@ -18,7 +17,6 @@
|
|||||||
prepend-inner-icon="mdi-magnify"
|
prepend-inner-icon="mdi-magnify"
|
||||||
@input="onInput"
|
@input="onInput"
|
||||||
type="text"
|
type="text"
|
||||||
:disabled="isSortingActive"
|
|
||||||
></v-text-field>
|
></v-text-field>
|
||||||
<v-select
|
<v-select
|
||||||
v-model="sortOrder"
|
v-model="sortOrder"
|
||||||
@@ -44,7 +42,14 @@ export default {
|
|||||||
return {
|
return {
|
||||||
selectedEmployeeId: null,
|
selectedEmployeeId: null,
|
||||||
searchQuery: '',
|
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: {
|
computed: {
|
||||||
...mapGetters('tm', ['enrichedEmployees']),
|
...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'
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onInput() {
|
onInput() {
|
||||||
this.$emit('search', this.searchQuery)
|
this.$emit('search', this.searchQuery)
|
||||||
},
|
},
|
||||||
|
|
||||||
updateSortOrder() {
|
|
||||||
this.$emit('update-sort-order', this.sortOrder)
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
@@ -85,8 +72,8 @@ export default {
|
|||||||
this.$emit('employee-selected', this.selectedEmployeeId)
|
this.$emit('employee-selected', this.selectedEmployeeId)
|
||||||
},
|
},
|
||||||
|
|
||||||
sortOrder() {
|
sortOrder(value) {
|
||||||
this.updateSortOrder()
|
this.$emit('update-sort-order', value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<Z-tasks-search @search="onSearch" @employee-selected="onEmployeeSelected" @update-sort-order="onUpdateSortOrder" />
|
<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'">
|
<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>
|
</W-loadable>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -40,51 +40,41 @@ export default {
|
|||||||
if (!this.ongoingSubtasks)
|
if (!this.ongoingSubtasks)
|
||||||
return null
|
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)
|
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
|
//Sorting by name A-Z
|
||||||
if (this.sortOrder === 'nameAsc') {
|
if (this.sortOrder === 'nameAsc') {
|
||||||
sortedTasks.sort((a, b) => {
|
filteredSubtasks.sort((a, b) => {
|
||||||
const nameA = (a.title || a.master_task || '').toLowerCase()
|
const nameA = (a.title || a.master_task || '').toLowerCase()
|
||||||
const nameB = (b.title || b.master_task || '').toLowerCase()
|
const nameB = (b.title || b.master_task || '').toLowerCase()
|
||||||
return nameA.localeCompare(nameB)
|
return nameA.localeCompare(nameB)
|
||||||
})
|
})
|
||||||
//Sorting by name Z-A
|
//Sorting by name Z-A
|
||||||
} else if (this.sortOrder === 'nameDesc') {
|
} else if (this.sortOrder === 'nameDesc') {
|
||||||
sortedTasks.sort((a, b) => {
|
filteredSubtasks.sort((a, b) => {
|
||||||
const nameA = (a.title || a.master_task || '').toLowerCase()
|
const nameA = (a.title || a.master_task || '').toLowerCase()
|
||||||
const nameB = (b.title || b.master_task || '').toLowerCase()
|
const nameB = (b.title || b.master_task || '').toLowerCase()
|
||||||
return nameB.localeCompare(nameA)
|
return nameB.localeCompare(nameA)
|
||||||
})
|
})
|
||||||
//Sorting by date Newest-Oldest
|
//Sorting by date Newest-Oldest
|
||||||
} else if (this.sortOrder === 'deadlineDesc') {
|
} 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 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))
|
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
|
||||||
return deadlineB - deadlineA
|
return deadlineB - deadlineA
|
||||||
})
|
})
|
||||||
//Sorting by date Oldest-Newest
|
//Sorting by date Oldest-Newest
|
||||||
} else if (this.sortOrder === 'deadlineAsc') {
|
} 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 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))
|
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
|
||||||
return deadlineA - deadlineB
|
return deadlineA - deadlineB
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return sortedTasks
|
|
||||||
},
|
|
||||||
|
|
||||||
selectedTasks() {
|
return filteredSubtasks
|
||||||
return this.sortOrder ? this.sortedOngoingTasks : this.filteredOngoingTasks
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<Z-tasks-search @search="onSearch" @employee-selected="onEmployeeSelected" @update-sort-order="onUpdateSortOrder" />
|
<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'">
|
<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>
|
</W-loadable>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -39,51 +39,41 @@ export default {
|
|||||||
if (!this.unscheduledSubtasks)
|
if (!this.unscheduledSubtasks)
|
||||||
return null
|
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)
|
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') {
|
if (this.sortOrder === 'nameAsc') {
|
||||||
sortedTasks.sort((a, b) => {
|
filteredSubtasks.sort((a, b) => {
|
||||||
const nameA = (a.title || a.master_task || '').toLowerCase()
|
const nameA = (a.title || a.master_task || '').toLowerCase()
|
||||||
const nameB = (b.title || b.master_task || '').toLowerCase()
|
const nameB = (b.title || b.master_task || '').toLowerCase()
|
||||||
return nameA.localeCompare(nameB)
|
return nameA.localeCompare(nameB)
|
||||||
})
|
})
|
||||||
//Sorting by name Z-A
|
//Sorting by name Z-A
|
||||||
} else if (this.sortOrder === 'nameDesc') {
|
} else if (this.sortOrder === 'nameDesc') {
|
||||||
sortedTasks.sort((a, b) => {
|
filteredSubtasks.sort((a, b) => {
|
||||||
const nameA = (a.title || a.master_task || '').toLowerCase()
|
// const { nameA, nameB } = this._getTaskTitleOrMastertaskName(a, b)
|
||||||
const nameB = (b.title || b.master_task || '').toLowerCase()
|
const nameA = (a.title || a.master_task || '').toLowerCase()
|
||||||
return nameB.localeCompare(nameA)
|
const nameB = (b.title || b.master_task || '').toLowerCase()
|
||||||
})
|
return nameB.localeCompare(nameA)
|
||||||
|
})
|
||||||
//Sorting by date Newest-Oldest
|
//Sorting by date Newest-Oldest
|
||||||
} else if (this.sortOrder === 'deadlineDesc') {
|
} 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 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))
|
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
|
||||||
return deadlineB - deadlineA
|
return deadlineB - deadlineA
|
||||||
})
|
})
|
||||||
//Sorting by date Oldest-Newest
|
//Sorting by date Oldest-Newest
|
||||||
} else if (this.sortOrder === 'deadlineAsc') {
|
} 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 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))
|
const deadlineB = b.deadline ? new Date(b.deadline) : new Date(this.getMasterTaskDeadline(b))
|
||||||
return deadlineA - deadlineB
|
return deadlineA - deadlineB
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return sortedTasks
|
|
||||||
},
|
|
||||||
|
|
||||||
selectedTasks() {
|
return filteredSubtasks
|
||||||
return this.sortOrder ? this.sortedUnscheduledTasks : this.filteredUnscheduledTasks
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user