From 9cbfa88e815ffab8237fb0e483c25519840bdf9d Mon Sep 17 00:00:00 2001 From: Nitwel Date: Mon, 10 Apr 2023 23:23:49 +0200 Subject: [PATCH] Fix default values (#15710) * Fix default values * run linter * use assign * fix working with permissions * run linter * fix set related item to empty when having junction * check for empty * Update app/src/views/private/components/drawer-item.vue --------- Co-authored-by: Rijk van Zanten Co-authored-by: Brainslug Co-authored-by: Pascal Jufer Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com> --- app/src/interfaces/files/files.vue | 2 +- .../list-o2m-tree-view/nested-draggable.vue | 20 +++++++++---------- app/src/interfaces/list-o2m/list-o2m.vue | 2 -- .../views/private/components/drawer-item.vue | 4 ++++ packages/composables/src/use-collection.ts | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/interfaces/files/files.vue b/app/src/interfaces/files/files.vue index 2eb4df2027..2877c70682 100644 --- a/app/src/interfaces/files/files.vue +++ b/app/src/interfaces/files/files.vue @@ -135,7 +135,7 @@ import DrawerCollection from '@/views/private/components/drawer-collection.vue'; import Draggable from 'vuedraggable'; import { getAssetUrl } from '@/utils/get-asset-url'; import { adjustFieldsForDisplays } from '@/utils/adjust-fields-for-displays'; -import { get, clamp, isEmpty, isNil, set } from 'lodash'; +import { get, clamp, isNil, set, isEmpty } from 'lodash'; import { usePermissionsStore } from '@/stores/permissions'; import { useUserStore } from '@/stores/user'; import { getFieldsFromTemplate } from '@directus/utils'; diff --git a/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue b/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue index 1b50265ac8..998e7d6fcc 100644 --- a/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue +++ b/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue @@ -87,23 +87,23 @@ export default { diff --git a/app/src/interfaces/list-o2m/list-o2m.vue b/app/src/interfaces/list-o2m/list-o2m.vue index c751c30ae5..c54828543f 100644 --- a/app/src/interfaces/list-o2m/list-o2m.vue +++ b/app/src/interfaces/list-o2m/list-o2m.vue @@ -474,8 +474,6 @@ function editRow({ item }: { item: DisplayItem }) { } function stageEdits(item: Record) { - if (isEmpty(item)) return; - if (newItem) { create(item); } else { diff --git a/app/src/views/private/components/drawer-item.vue b/app/src/views/private/components/drawer-item.vue index 4304f26287..db2fde67d1 100644 --- a/app/src/views/private/components/drawer-item.vue +++ b/app/src/views/private/components/drawer-item.vue @@ -403,6 +403,10 @@ function useActions() { validationErrors.value = []; } + if (props.junctionField && Object.values(defaultValues.value).some((value) => value !== null)) { + internalEdits.value[props.junctionField] = internalEdits.value[props.junctionField] ?? {}; + } + if (props.junctionField && props.relatedPrimaryKey !== '+' && relatedPrimaryKeyField.value) { set(internalEdits.value, [props.junctionField, relatedPrimaryKeyField.value.field], props.relatedPrimaryKey); } diff --git a/packages/composables/src/use-collection.ts b/packages/composables/src/use-collection.ts index 128ef0ff32..a6875b5198 100644 --- a/packages/composables/src/use-collection.ts +++ b/packages/composables/src/use-collection.ts @@ -37,7 +37,7 @@ export function useCollection(collectionKey: string | Ref): Usabl const defaults: Record = {}; for (const field of fields.value) { - if (field.schema?.default_value) { + if (field.schema !== null && 'default_value' in field.schema) { defaults[field.field] = field.schema.default_value; } }