mirror of
https://github.com/directus/directus.git
synced 2026-02-06 23:04:59 -05:00
✨ adding possibility to update another field value from a custom interface (#11620)
* ✨ adding possibility to update another field value from a custom interface * Rename fieldName->fieldKey for consistency Co-authored-by: Antoine Barroux <antoine.barroux@liksi.fr> Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
:primary-key="primaryKey"
|
||||
:length="field.schema && field.schema.max_length"
|
||||
@input="$emit('update:modelValue', $event)"
|
||||
@set-field-value="$emit('setFieldValue', $event)"
|
||||
/>
|
||||
|
||||
<v-notice v-else type="warning">
|
||||
@@ -77,7 +78,7 @@ export default defineComponent({
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
emits: ['update:modelValue'],
|
||||
emits: ['update:modelValue', 'setFieldValue'],
|
||||
setup(props) {
|
||||
const { t } = useI18n();
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
:disabled="isDisabled"
|
||||
:primary-key="primaryKey"
|
||||
@update:model-value="emitValue($event)"
|
||||
@set-field-value="$emit('setFieldValue', $event)"
|
||||
/>
|
||||
|
||||
<v-dialog v-model="showRaw" @esc="showRaw = false">
|
||||
|
||||
@@ -54,7 +54,8 @@
|
||||
validationErrors.find((err) => err.field === field.field || err.field.endsWith(`(${field.field})`))
|
||||
"
|
||||
:badge="badge"
|
||||
@update:model-value="setValue(field, $event)"
|
||||
@update:model-value="setValue(field.field, $event)"
|
||||
@set-field-value="setValue($event.field, $event.value)"
|
||||
@unset="unsetValue(field)"
|
||||
@toggle-batch="toggleBatchField(field)"
|
||||
/>
|
||||
@@ -310,11 +311,12 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
function setValue(field: Field, value: any) {
|
||||
if (isDisabled(field)) return;
|
||||
function setValue(fieldKey: string, value: any) {
|
||||
const field = props.fields?.find((field) => field.field === fieldKey);
|
||||
if (!field || isDisabled(field)) return;
|
||||
|
||||
const edits = props.modelValue ? cloneDeep(props.modelValue) : {};
|
||||
edits[field.field] = value;
|
||||
edits[fieldKey] = value;
|
||||
emit('update:modelValue', edits);
|
||||
}
|
||||
|
||||
@@ -352,7 +354,7 @@ export default defineComponent({
|
||||
unsetValue(field);
|
||||
} else {
|
||||
batchActiveFields.value = [...batchActiveFields.value, field.field];
|
||||
setValue(field, field.schema?.default_value);
|
||||
setValue(field.field, field.schema?.default_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user