diff --git a/app/src/components/v-input/v-input.vue b/app/src/components/v-input/v-input.vue
index e01adcd716..893285f36d 100644
--- a/app/src/components/v-input/v-input.vue
+++ b/app/src/components/v-input/v-input.vue
@@ -84,6 +84,10 @@ export default defineComponent({
type: [String, Number],
default: null,
},
+ nullable: {
+ type: Boolean,
+ default: true,
+ },
slug: {
type: Boolean,
default: false,
@@ -197,6 +201,11 @@ export default defineComponent({
function emitValue(event: InputEvent) {
let value = (event.target as HTMLInputElement).value;
+ if (props.nullable === true && !value) {
+ emit('input', null);
+ return;
+ }
+
if (props.type === 'number') {
emit('input', Number(value));
} else {
diff --git a/app/src/displays/related-values/index.ts b/app/src/displays/related-values/index.ts
index 99c24dfa7e..f421f220f6 100644
--- a/app/src/displays/related-values/index.ts
+++ b/app/src/displays/related-values/index.ts
@@ -20,13 +20,15 @@ export default defineDisplay(({ i18n }) => ({
options: options,
types: ['alias', 'string', 'uuid', 'integer', 'bigInteger', 'json'],
groups: ['m2m', 'm2o', 'o2m'],
- fields: (options: Options, { field, collection }) => {
+ fields: (options: Options | null, { field, collection }) => {
const relatedCollection = getRelatedCollection(collection, field);
const { primaryKeyField } = useCollection(ref(relatedCollection as string));
if (!relatedCollection) return [];
- const fields = adjustFieldsForDisplays(getFieldsFromTemplate(options.template), relatedCollection);
+ const fields = options?.template
+ ? adjustFieldsForDisplays(getFieldsFromTemplate(options.template), relatedCollection)
+ : [];
if (fields.includes(primaryKeyField.value.field) === false) {
fields.push(primaryKeyField.value.field);
diff --git a/app/src/displays/related-values/related-values.vue b/app/src/displays/related-values/related-values.vue
index 2b262bcfaa..7679691ca8 100644
--- a/app/src/displays/related-values/related-values.vue
+++ b/app/src/displays/related-values/related-values.vue
@@ -1,6 +1,10 @@
-
+
{{ $tc('item_count', value.length) }}
@@ -10,7 +14,7 @@
-
+
@@ -18,7 +22,7 @@
-
+