mirror of
https://github.com/directus/directus.git
synced 2026-01-29 11:38:04 -05:00
6
.changeset/neat-seahorses-reflect.md
Normal file
6
.changeset/neat-seahorses-reflect.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@directus/app': patch
|
||||
---
|
||||
|
||||
Fixed issue on the calendar layout that would attempt to save drag-and-drop time changes with a timezone to datetime
|
||||
type fields
|
||||
@@ -178,6 +178,10 @@ export default defineComponent({
|
||||
},
|
||||
});
|
||||
|
||||
const startDateFieldInfo = computed<Field>(() => {
|
||||
return fieldsInCollection.value.find((field: Field) => field.field === startDateField.value);
|
||||
});
|
||||
|
||||
const endDateField = computed({
|
||||
get() {
|
||||
return _layoutOptions.value?.endDateField;
|
||||
@@ -190,6 +194,10 @@ export default defineComponent({
|
||||
},
|
||||
});
|
||||
|
||||
const endDateFieldInfo = computed<Field>(() => {
|
||||
return fieldsInCollection.value.find((field: Field) => field.field === endDateField.value);
|
||||
});
|
||||
|
||||
const { items, loading, error, totalPages, itemCount, totalCount, changeManualSort, getItems } = useItems(
|
||||
collection,
|
||||
{
|
||||
@@ -242,11 +250,11 @@ export default defineComponent({
|
||||
if (!startDateField.value) return;
|
||||
|
||||
const itemChanges: Partial<Item> = {
|
||||
[startDateField.value]: info.event.startStr,
|
||||
[startDateField.value]: adjustForType(info.event.startStr, startDateFieldInfo.value.type),
|
||||
};
|
||||
|
||||
if (endDateField.value && info.event.endStr) {
|
||||
itemChanges[endDateField.value] = info.event.endStr;
|
||||
itemChanges[endDateField.value] = adjustForType(info.event.endStr, endDateFieldInfo.value.type);
|
||||
}
|
||||
|
||||
const endpoint = collection.value.startsWith('directus')
|
||||
@@ -261,11 +269,7 @@ export default defineComponent({
|
||||
},
|
||||
};
|
||||
|
||||
const startDateFieldInfo: Field | undefined = fieldsInCollection.value.find(
|
||||
(field: Field) => field.field === startDateField.value
|
||||
);
|
||||
|
||||
if (startDateFieldInfo?.type === 'dateTime' || startDateFieldInfo?.type === 'timestamp') {
|
||||
if (startDateFieldInfo.value?.type === 'dateTime' || startDateFieldInfo.value?.type === 'timestamp') {
|
||||
options.headerToolbar = {
|
||||
...options.headerToolbar,
|
||||
right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek',
|
||||
@@ -344,6 +348,14 @@ export default defineComponent({
|
||||
end: endDateField.value ? item[endDateField.value] : null,
|
||||
};
|
||||
}
|
||||
|
||||
function adjustForType(dateString: string, type: string) {
|
||||
if (type === 'dateTime') {
|
||||
return dateString.substring(0, 19);
|
||||
}
|
||||
|
||||
return dateString;
|
||||
}
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user