From 99f5e8b76e8cca93079aac990fb9d3273fbda304 Mon Sep 17 00:00:00 2001 From: Raul Date: Wed, 4 May 2022 15:34:54 +0200 Subject: [PATCH] Use presorted cards on front-end view Signed-off-by: Raul --- src/components/overview/Overview.vue | 63 ++++------------------------ src/store/overview.js | 12 +++--- 2 files changed, 14 insertions(+), 61 deletions(-) diff --git a/src/components/overview/Overview.vue b/src/components/overview/Overview.vue index a7dedef39..ad325d595 100644 --- a/src/components/overview/Overview.vue +++ b/src/components/overview/Overview.vue @@ -31,44 +31,44 @@
-
+

{{ t('deck', 'Overdue') }}

-
+

{{ t('deck', 'Today') }}

-
+

{{ t('deck', 'Tomorrow') }}

-
+

{{ t('deck', 'Next 7 days') }}

-
+

{{ t('deck', 'Later') }}

-
+

{{ t('deck', 'No due') }}

-
+
@@ -83,7 +83,6 @@ import Controls from '../Controls.vue' import CardItem from '../cards/CardItem.vue' import { mapGetters } from 'vuex' -import moment from '@nextcloud/moment' import GlobalSearchResults from '../search/GlobalSearchResults.vue' const FILTER_UPCOMING = 'upcoming' @@ -125,13 +124,6 @@ export default { ...mapGetters([ 'assignedCardsDashboard', ]), - cardsByDueDate() { - switch (this.filter) { - case FILTER_UPCOMING: - return this.groupByDue(this.assignedCardsDashboard) - } - return null - }, }, watch: { '$route.params.filter'() { @@ -153,47 +145,6 @@ export default { } this.loading = false }, - - groupByDue(dataset) { - const all = { - nodue: [], - overdue: [], - today: [], - tomorrow: [], - nextSevenDays: [], - later: [], - } - dataset.forEach(card => { - if (card.duedate === null) { - all.nodue.push(card) - } else { - const hours = Math.floor(moment(card.duedate).diff(this.$root.time, 'seconds') / 60 / 60) - const d = new Date() - const currentHour = d.getHours() - if (hours < 0) { - all.overdue.push(card) - } - if (hours >= 0 && hours < (24 - currentHour)) { - all.today.push(card) - } - if (hours >= (24 - currentHour) && hours < (48 - currentHour)) { - all.tomorrow.push(card) - } - if (hours >= (48 - currentHour) && hours < (24 * 7)) { - all.nextSevenDays.push(card) - } - if (hours >= (24 * 7)) { - all.later.push(card) - } - } - }) - Object.keys(all).forEach((list) => { - all[list] = all[list].sort((a, b) => { - return (new Date(a.duedate)).getTime() - (new Date(b.duedate)).getTime() - }) - }) - return all - }, }, } diff --git a/src/store/overview.js b/src/store/overview.js index e6eeb3c02..d06095308 100644 --- a/src/store/overview.js +++ b/src/store/overview.js @@ -43,12 +43,14 @@ export default { actions: { async loadUpcoming({ commit }) { commit('setCurrentBoard', null) - const assignedCards = await apiClient.get('upcoming') - const assignedCardsFlat = assignedCards.flat() - for (const i in assignedCardsFlat) { - commit('addCard', assignedCardsFlat[i]) + const upcommingCards = await apiClient.get('upcoming') + + for (const dueStatus in upcommingCards) { + for (const idx in upcommingCards[dueStatus]) { + commit('addCard', upcommingCards[dueStatus][idx]) + } } - commit('setAssignedCards', assignedCardsFlat) + commit('setAssignedCards', upcommingCards) }, }, }