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">