diff --git a/frontend/src/components/project/views/ProjectTable.vue b/frontend/src/components/project/views/ProjectTable.vue
index 7d98d7375..5376233d9 100644
--- a/frontend/src/components/project/views/ProjectTable.vue
+++ b/frontend/src/components/project/views/ProjectTable.vue
@@ -94,28 +94,28 @@
#
{{ $t('task.attributes.done') }}
|
{{ $t('task.attributes.title') }}
|
{{ $t('task.attributes.priority') }}
|
@@ -128,49 +128,49 @@
{{ $t('task.attributes.dueDate') }}
|
{{ $t('task.attributes.startDate') }}
|
{{ $t('task.attributes.endDate') }}
|
{{ $t('task.attributes.percentDone') }}
|
{{ $t('task.attributes.doneAt') }}
|
{{ $t('task.attributes.created') }}
|
{{ $t('task.attributes.updated') }}
|
@@ -349,16 +349,28 @@ watch(
{deep: true},
)
-// FIXME: by doing this we can have multiple sort orders
-function sort(property: keyof SortBy) {
- const order = sortBy.value[property]
- if (typeof order === 'undefined' || order === 'none') {
- sortBy.value[property] = 'desc'
- } else if (order === 'desc') {
- sortBy.value[property] = 'asc'
+// Allow sorting by multiple columns only when ctrl is pressed
+function sort(property: keyof SortBy, event?: MouseEvent) {
+ const ctrlPressed = event?.ctrlKey || event?.metaKey
+
+ const currentOrder = sortBy.value[property]
+ let newOrder: 'asc' | 'desc' | 'none' | undefined = undefined
+ if (typeof currentOrder === 'undefined' || currentOrder === 'none') {
+ newOrder = 'desc'
+ } else if (currentOrder === 'desc') {
+ newOrder = 'asc'
+ }
+
+ if (!ctrlPressed) {
+ sortBy.value = {} as SortBy
+ }
+
+ if (newOrder) {
+ sortBy.value[property] = newOrder
} else {
delete sortBy.value[property]
}
+
setActiveColumnsSortParam()
}
|