fix datepicker for report create/update, fix public_until update

This commit is contained in:
Gregor Vostrak
2025-06-24 16:57:12 +02:00
parent 915204f7a6
commit a45c8a89f6
5 changed files with 66 additions and 13 deletions

View File

@@ -15,6 +15,7 @@ import { api } from '@/packages/api/src';
import { Checkbox } from '@/packages/ui/src';
import DatePicker from '@/packages/ui/src/Input/DatePicker.vue';
import { useNotificationsStore } from '@/utils/notification';
import { getLocalizedDayJs } from '@/packages/ui/src/utils/time';
const show = defineModel('show', { default: false });
const saving = ref(false);
@@ -47,10 +48,14 @@ const report = ref({
const { handleApiRequestNotifications } = useNotificationsStore();
async function submit() {
const { public_until, ...reportProperties } = report.value;
await handleApiRequestNotifications(
() =>
createReportMutation.mutateAsync({
...report.value,
...reportProperties,
public_until: public_until
? getLocalizedDayJs(public_until).utc().format()
: null,
properties: { ...props.properties },
}),
'Success',
@@ -109,7 +114,10 @@ async function submit() {
(optional)
</div>
</div>
<DatePicker id="public_until" size="input"></DatePicker>
<DatePicker
id="public_until"
v-model="report.public_until"
size="input"></DatePicker>
</div>
</div>
</div>

View File

@@ -13,6 +13,7 @@ import { Checkbox } from '@/packages/ui/src';
import DatePicker from '@/packages/ui/src/Input/DatePicker.vue';
import { useNotificationsStore } from '@/utils/notification';
import type { Report } from '@/packages/api/src';
import { getLocalizedDayJs } from '@/packages/ui/src/utils/time';
const show = defineModel('show', { default: false });
const saving = ref(false);
@@ -64,8 +65,15 @@ watch(
const { handleApiRequestNotifications } = useNotificationsStore();
async function submit() {
const { public_until, ...reportProperties } = report.value;
await handleApiRequestNotifications(
() => updateReportMutation.mutateAsync(report.value),
() =>
updateReportMutation.mutateAsync({
...reportProperties,
public_until: public_until
? getLocalizedDayJs(public_until).utc().format()
: null,
}),
'Success',
'Error',
() => {
@@ -118,9 +126,10 @@ async function submit() {
v-if="report.is_public"
class="flex items-center space-x-4">
<InputLabel for="public_until" value="Expires at" />
<DatePicker
id="public_until"
size="input"></DatePicker>
<DatePicker
id="public_until"
v-model="report.public_until"
size="input"></DatePicker>
</div>
</div>
</div>