From be9dbf9c464bc2046b98ed849c2403fb46ddd979 Mon Sep 17 00:00:00 2001 From: lzieniew Date: Sun, 6 Aug 2023 17:33:22 +0000 Subject: [PATCH] Sort by label --- src/views/project/ProjectTable.vue | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/views/project/ProjectTable.vue b/src/views/project/ProjectTable.vue index 9ef40db05..0108ec03b 100644 --- a/src/views/project/ProjectTable.vue +++ b/src/views/project/ProjectTable.vue @@ -85,6 +85,7 @@ {{ $t('task.attributes.labels') }} + {{ $t('task.attributes.assignees') }} @@ -250,15 +251,24 @@ Object.assign(params.value, { // 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' - } else { - delete sortBy.value[property] - } - sortByParam.value = sortBy.value + if (property === 'labels') { + tasks.value.sort((a, b) => { + // Assuming labels is an array and we're sorting by the first label + if (a.labels[0] < b.labels[0]) return -1; + if (a.labels[0] > b.labels[0]) return 1; + return 0; + }); + } else { + const order = sortBy.value[property] + if (typeof order === 'undefined' || order === 'none') { + sortBy.value[property] = 'desc' + } else if (order === 'desc') { + sortBy.value[property] = 'asc' + } else { + delete sortBy.value[property] + } + sortByParam.value = sortBy.value + } } // TODO: re-enable opening task detail in modal