fix: now correctly showing the title of predefined ranges

This commit is contained in:
kolaente 2022-01-09 14:21:33 +01:00
parent c04530c540
commit 2a884dfd45
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
3 changed files with 28 additions and 19 deletions

View File

@ -0,0 +1,10 @@
// TODO: more ranges!
export const dateRanges = {
'task.show.today': ['now/d', 'now/d+1d'],
'task.show.thisWeek': ['now/w', 'now/w+1w'],
'task.show.nextWeek': ['now/w+1w', 'now/w+2w'],
'task.show.next7Days': ['now', 'now+7d'],
'task.show.thisMonth': ['now/M', 'now/M+1M'],
'task.show.nextMonth': ['now/M+1M', 'now/M+2M'],
'task.show.next30Days': ['now', 'now+30d'],
}

View File

@ -57,11 +57,12 @@
<script lang="ts" setup> <script lang="ts" setup>
import flatPickr from 'vue-flatpickr-component' import flatPickr from 'vue-flatpickr-component'
import 'flatpickr/dist/flatpickr.css' import 'flatpickr/dist/flatpickr.css'
import {computed, Ref, ref, watch} from 'vue' import {computed, ref, watch} from 'vue'
import {useI18n} from 'vue-i18n' import {useI18n} from 'vue-i18n'
import {store} from '@/store' import {store} from '@/store'
import {format} from 'date-fns' import Popup from '@/components/misc/popup.vue'
import Popup from '@/components/misc/popup'
import {dateRanges} from '@/components/date/dateRanges'
const {t} = useI18n() const {t} = useI18n()
@ -133,16 +134,6 @@ function setDateRange(range: string[] | null) {
inputChanged() inputChanged()
} }
const dateRanges = {
'task.show.today': ['now/d', 'now/d+1d'],
'task.show.thisWeek': ['now/w', 'now/w+1w'],
'task.show.nextWeek': ['now/w+1w', 'now/w+2w'],
'task.show.next7Days': ['now', 'now+7d'],
'task.show.thisMonth': ['now/M', 'now/M+1M'],
'task.show.nextMonth': ['now/M+1M', 'now/M+2M'],
'task.show.next30Days': ['now', 'now+30d'],
}
const customRangeActive = computed<Boolean>(() => { const customRangeActive = computed<Boolean>(() => {
return !Object.values(dateRanges).some(el => from.value === el[0] && to.value === el[1]) return !Object.values(dateRanges).some(el => from.value === el[0] && to.value === el[1])
}) })

View File

@ -38,6 +38,7 @@
</div> </div>
</template> </template>
<script> <script>
import {dateRanges} from '@/components/date/dateRanges'
import SingleTaskInList from '@/components/tasks/partials/singleTaskInList' import SingleTaskInList from '@/components/tasks/partials/singleTaskInList'
import {mapState} from 'vuex' import {mapState} from 'vuex'
@ -104,12 +105,19 @@ export default {
return this.$route.query.showOverdue === 'true' return this.$route.query.showOverdue === 'true'
}, },
pageTitle() { pageTitle() {
const title = this.showAll let title = ''
? this.$t('task.show.titleCurrent')
: this.$t('task.show.fromuntil', { const predefinedRange = Object.entries(dateRanges).find(([key, value]) => this.dateFrom === value[0] && this.dateTo === value[1])
from: this.format(this.dateFrom, 'PPP'), if (typeof predefinedRange !== 'undefined') {
until: this.format(this.dateTo, 'PPP'), title = this.$t(predefinedRange[0])
}) } else {
title = this.showAll
? this.$t('task.show.titleCurrent')
: this.$t('task.show.fromuntil', {
from: this.format(this.dateFrom, 'PPP'),
until: this.format(this.dateTo, 'PPP'),
})
}
this.setTitle(title) this.setTitle(title)