fix: now correctly showing the title of predefined ranges
This commit is contained in:
parent
4d23fae9ad
commit
6c55411f71
3 changed files with 28 additions and 19 deletions
10
src/components/date/dateRanges.ts
Normal file
10
src/components/date/dateRanges.ts
Normal 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'],
|
||||||
|
}
|
|
@ -59,11 +59,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()
|
||||||
|
|
||||||
|
@ -135,16 +136,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])
|
||||||
})
|
})
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
@ -106,12 +107,19 @@ export default {
|
||||||
return this.$route.query.showOverdue === 'true'
|
return this.$route.query.showOverdue === 'true'
|
||||||
},
|
},
|
||||||
pageTitle() {
|
pageTitle() {
|
||||||
const title = this.showAll
|
let title = ''
|
||||||
|
|
||||||
|
const predefinedRange = Object.entries(dateRanges).find(([key, value]) => this.dateFrom === value[0] && this.dateTo === value[1])
|
||||||
|
if (typeof predefinedRange !== 'undefined') {
|
||||||
|
title = this.$t(predefinedRange[0])
|
||||||
|
} else {
|
||||||
|
title = this.showAll
|
||||||
? this.$t('task.show.titleCurrent')
|
? this.$t('task.show.titleCurrent')
|
||||||
: this.$t('task.show.fromuntil', {
|
: this.$t('task.show.fromuntil', {
|
||||||
from: this.format(this.dateFrom, 'PPP'),
|
from: this.format(this.dateFrom, 'PPP'),
|
||||||
until: this.format(this.dateTo, 'PPP'),
|
until: this.format(this.dateTo, 'PPP'),
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
this.setTitle(title)
|
this.setTitle(title)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue