Properly handle M2A fields in fieldStore and useFieldTree (#9432)

* Properly handle M2A fields in fieldStore and useFieldTree

* Fix addNode

* Rewrote use-field-tree

* Remember visited paths

* Fix error whith undefined relation.meta
This commit is contained in:
Oreille
2021-11-05 01:35:05 +01:00
committed by GitHub
parent b2f3091826
commit ef3da32ab3
8 changed files with 109 additions and 181 deletions

View File

@@ -14,7 +14,7 @@
item-value="key"
value-combining="exclusive"
@update:model-value="$emit('input', $event)"
@group-toggle="loadFieldRelations($event.value, 1)"
@group-toggle="loadFieldRelations($event.value)"
/>
</div>
</template>

View File

@@ -27,7 +27,7 @@
:items="fieldOptions"
:mandatory="false"
:groups-clickable="true"
@group-toggle="loadFieldRelations($event.value, 1)"
@group-toggle="loadFieldRelations($event.value)"
@update:modelValue="updateField(index, $event)"
>
<template #preview>{{ getFieldPreview(element) }}</template>

View File

@@ -33,7 +33,7 @@
:items="fieldOptions"
:mandatory="false"
:groups-clickable="true"
@group-toggle="loadFieldRelations($event.value, 1)"
@group-toggle="loadFieldRelations($event.value)"
@update:modelValue="addNode($event)"
>
<template v-if="inline" #prepend>
@@ -150,20 +150,12 @@ export default defineComponent({
function addNode(key: string) {
if (key === '$group') {
innerValue.value = [
...innerValue.value,
{
_and: [],
},
];
innerValue.value = innerValue.value.concat({ _and: [] });
} else {
const filterObj = {};
const field = fieldsStore.getField(collection.value, key)!;
const operator = getFilterOperatorsForType(field.type)[0];
set(filterObj, key, { ['_' + operator]: null });
innerValue.value = [...innerValue.value, filterObj] as FieldFilter[];
const node = set({}, key, { ['_' + operator]: null });
innerValue.value = innerValue.value.concat(node);
}
}