diff --git a/package.json b/package.json index 52d603d9..f320d893 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "scripts": { "dev": "vite", "build": "vite build", - "lint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore .", - "lint:fix": "eslint --fix --ext .js,.vue,.ts --ignore-path .gitignore .", + "lint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore resources/js", + "lint:fix": "eslint --fix --ext .js,.vue,.ts --ignore-path .gitignore resources/js", "type-check": "vue-tsc --noEmit", "test:e2e": "rm -rf test-results/.auth && npx playwright test", "zod:generate": "npx openapi-zod-client http://localhost:80/docs/api.json --output resources/js/packages/api/src/openapi.json.client.ts --base-url /api" diff --git a/resources/js/Pages/Reporting.vue b/resources/js/Pages/Reporting.vue index 2ae4ea85..8073cee5 100644 --- a/resources/js/Pages/Reporting.vue +++ b/resources/js/Pages/Reporting.vue @@ -198,7 +198,7 @@ async function downloadExport(format: ExportFormat) { 'Export successful', 'Export failed' ); - window.open(response.download_url, '_self')?.focus(); + window.open(response.download_url, '_blank')?.focus(); } } const { getNameForReportingRowEntry, emptyPlaceholder } = useReportingStore(); diff --git a/resources/js/packages/ui/src/Input/DateRangePicker.vue b/resources/js/packages/ui/src/Input/DateRangePicker.vue index bded7b1e..42cebd22 100644 --- a/resources/js/packages/ui/src/Input/DateRangePicker.vue +++ b/resources/js/packages/ui/src/Input/DateRangePicker.vue @@ -2,7 +2,11 @@ import { CalendarIcon } from '@heroicons/vue/20/solid'; import Dropdown from '@/packages/ui/src/Input/Dropdown.vue'; import DatePicker from '@/packages/ui/src/Input/DatePicker.vue'; -import { formatDate, getDayJsInstance } from '@/packages/ui/src/utils/time'; +import { + formatDateLocalized, + getDayJsInstance, + getLocalizedDayJs, +} from '@/packages/ui/src/utils/time'; import { ref } from 'vue'; const start = defineModel('start', { default: '' }); @@ -12,39 +16,46 @@ const emit = defineEmits(['submit']); const open = ref(false); +function setToday() { + start.value = getLocalizedDayJs().startOf('day').format(); + end.value = getLocalizedDayJs().endOf('day').format(); + emit('submit'); + open.value = false; +} + function setThisWeek() { - start.value = getDayJsInstance()().startOf('week').format(); - end.value = getDayJsInstance()().endOf('week').format(); + start.value = getLocalizedDayJs().startOf('week').format(); + end.value = getLocalizedDayJs().endOf('week').format(); emit('submit'); open.value = false; } function setLastWeek() { - start.value = getDayJsInstance()() + start.value = getLocalizedDayJs() .subtract(1, 'week') .startOf('week') .format(); - end.value = getDayJsInstance()().subtract(1, 'week').endOf('week').format(); + end.value = getLocalizedDayJs().subtract(1, 'week').endOf('week').format(); emit('submit'); open.value = false; } function setLast14Days() { - start.value = getDayJsInstance()().subtract(14, 'days').format(); - end.value = getDayJsInstance()().format(); + start.value = getLocalizedDayJs().subtract(14, 'days').format(); + end.value = getLocalizedDayJs().format(); emit('submit'); open.value = false; } function setThisMonth() { - start.value = getDayJsInstance()().startOf('month').format(); - end.value = getDayJsInstance()().endOf('month').format(); + start.value = getLocalizedDayJs().startOf('month').format(); + end.value = getLocalizedDayJs().endOf('month').format(); emit('submit'); open.value = false; } function setLastMonth() { - start.value = getDayJsInstance()() + start.value = getLocalizedDayJs() .subtract(1, 'month') .startOf('month') .format(); - end.value = getDayJsInstance()() + end.value = getLocalizedDayJs() .subtract(1, 'month') .endOf('month') .format(); @@ -52,8 +63,8 @@ function setLastMonth() { open.value = false; } function setLast30Days() { - start.value = getDayJsInstance()().subtract(30, 'days').format(); - end.value = getDayJsInstance()().format(); + start.value = getLocalizedDayJs().subtract(30, 'days').format(); + end.value = getLocalizedDayJs().format(); emit('submit'); open.value = false; } @@ -64,23 +75,23 @@ function setLast90Days() { open.value = false; } function setLast12Months() { - start.value = getDayJsInstance()().subtract(12, 'months').format(); - end.value = getDayJsInstance()().format(); + start.value = getLocalizedDayJs().subtract(12, 'months').format(); + end.value = getLocalizedDayJs().format(); emit('submit'); open.value = false; } function setThisYear() { - start.value = getDayJsInstance()().startOf('year').format(); - end.value = getDayJsInstance()().endOf('year').format(); + start.value = getLocalizedDayJs().startOf('year').format(); + end.value = getLocalizedDayJs().endOf('year').format(); emit('submit'); open.value = false; } function setLastYear() { - start.value = getDayJsInstance()() + start.value = getLocalizedDayJs() .subtract(1, 'year') .startOf('year') .format(); - end.value = getDayJsInstance()().subtract(1, 'year').endOf('year').format(); + end.value = getLocalizedDayJs().subtract(1, 'year').endOf('year').format(); emit('submit'); open.value = false; } @@ -97,9 +108,9 @@ function setLastYear() { class="px-2 py-1 bg-input-background border border-input-border font-medium rounded-lg flex items-center space-x-2">
- {{ formatDate(start) }} + {{ formatDateLocalized(start) }} - - {{ formatDate(end) }} + {{ formatDateLocalized(end) }}
@@ -109,6 +120,7 @@ function setLastYear() { class="flex divide-x divide-border-secondary justify-between">
+ diff --git a/resources/js/packages/ui/src/TimeEntry/TimeEntryRangeSelector.vue b/resources/js/packages/ui/src/TimeEntry/TimeEntryRangeSelector.vue index 4135cf77..017c30ef 100644 --- a/resources/js/packages/ui/src/TimeEntry/TimeEntryRangeSelector.vue +++ b/resources/js/packages/ui/src/TimeEntry/TimeEntryRangeSelector.vue @@ -1,7 +1,10 @@