diff --git a/.changeset/green-teachers-swim.md b/.changeset/green-teachers-swim.md new file mode 100644 index 0000000000..2990524552 --- /dev/null +++ b/.changeset/green-teachers-swim.md @@ -0,0 +1,5 @@ +--- +"@directus/app": patch +--- + +Ensured unconfigured tables are not displayed/selectable as releated collection diff --git a/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-relationship-m2a.vue b/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-relationship-m2a.vue index d240fee17f..0634af8b62 100644 --- a/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-relationship-m2a.vue +++ b/app/src/modules/settings/routes/data-model/field-detail/field-detail-advanced/field-detail-advanced-relationship-m2a.vue @@ -34,14 +34,17 @@ const currentPrimaryKey = computed(() => fieldsStore.getPrimaryKeyFieldForCollec const availableCollections = computed(() => { return [ - ...orderBy(collectionsStore.databaseCollections, ['collection'], ['asc']), + ...orderBy( + collectionsStore.databaseCollections.filter((collection) => collection.meta), + ['meta.sort', 'collection'], + ), { divider: true, }, { collection: t('system'), selectable: false, - children: orderBy(collectionsStore.crudSafeSystemCollections, ['collection'], ['asc']), + children: collectionsStore.crudSafeSystemCollections, }, ]; }); diff --git a/app/src/modules/settings/routes/data-model/field-detail/field-detail-simple/relationship-configuration.vue b/app/src/modules/settings/routes/data-model/field-detail/field-detail-simple/relationship-configuration.vue index 4ef55c2e22..56cb9a3fc0 100644 --- a/app/src/modules/settings/routes/data-model/field-detail/field-detail-simple/relationship-configuration.vue +++ b/app/src/modules/settings/routes/data-model/field-detail/field-detail-simple/relationship-configuration.vue @@ -22,14 +22,17 @@ const oneAllowedCollections = syncFieldDetailStoreProperty('relations.m2o.meta.o const availableCollections = computed(() => { return [ - ...orderBy(collectionsStore.databaseCollections, ['collection'], ['asc']), + ...orderBy( + collectionsStore.databaseCollections.filter((collection) => collection.meta), + ['meta.sort', 'collection'], + ), { divider: true, }, { collection: t('system'), selectable: false, - children: orderBy(collectionsStore.crudSafeSystemCollections, ['collection'], ['asc']), + children: collectionsStore.crudSafeSystemCollections, }, ]; }); diff --git a/app/src/modules/settings/routes/data-model/field-detail/shared/related-collection-select.vue b/app/src/modules/settings/routes/data-model/field-detail/shared/related-collection-select.vue index ad1a1d17d7..f8dd224ca0 100644 --- a/app/src/modules/settings/routes/data-model/field-detail/shared/related-collection-select.vue +++ b/app/src/modules/settings/routes/data-model/field-detail/shared/related-collection-select.vue @@ -19,7 +19,10 @@ const collectionExists = computed(() => { }); const availableCollections = computed(() => { - return orderBy(collectionsStore.databaseCollections, ['sort', 'collection'], ['asc']); + return orderBy( + collectionsStore.databaseCollections.filter((collection) => collection.meta), + ['meta.sort', 'collection'], + ); }); const systemCollections = collectionsStore.crudSafeSystemCollections; diff --git a/app/src/modules/settings/routes/roles/item/components/permissions-overview.vue b/app/src/modules/settings/routes/roles/item/components/permissions-overview.vue index 2d1b48f23d..25d5b13bd0 100644 --- a/app/src/modules/settings/routes/roles/item/components/permissions-overview.vue +++ b/app/src/modules/settings/routes/roles/item/components/permissions-overview.vue @@ -21,7 +21,7 @@ const { t } = useI18n(); const collectionsStore = useCollectionsStore(); -const regularCollections = computed(() => collectionsStore.databaseCollections); +const regularCollections = computed(() => orderBy(collectionsStore.databaseCollections, ['meta.sort', 'collection'])); const systemCollections = computed(() => orderBy( diff --git a/app/src/stores/collections.ts b/app/src/stores/collections.ts index a3d25e31d2..f1d6b77b33 100644 --- a/app/src/stores/collections.ts +++ b/app/src/stores/collections.ts @@ -33,8 +33,7 @@ export const useCollectionsStore = defineStore('collectionsStore', () => { collections.value.filter((collection) => { return collection.collection.startsWith('directus_') === true; }), - ['collection'], - ['asc'], + 'collection', ).filter((collection) => COLLECTIONS_DENY_LIST.includes(collection.collection) === false), ); diff --git a/contributors.yml b/contributors.yml index acff9bf31a..99b2ae7fc5 100644 --- a/contributors.yml +++ b/contributors.yml @@ -103,3 +103,4 @@ - mahendraHegde - nassan - emahuni +- khako