Fixed property trees in detail dialogs not showing any props

This commit is contained in:
ThaumRystra
2024-04-30 12:47:24 +02:00
parent a40163b9cf
commit 8b3e95e1ae
5 changed files with 106 additions and 26 deletions

View File

@@ -0,0 +1,78 @@
<template lang="html">
<tree-node-list
v-if="model"
:children="children"
:group="group"
:organize="organize"
:start-expanded="expanded"
:root="model.root"
@selected="e => $emit('selected', e)"
@move-within-root="moveWithinRoot"
@move-between-roots="moveBetweenRoots"
/>
</template>
<script lang="js">
import { docsToForest, getFilter } from '/imports/api/parenting/parentingFunctions';
import TreeNodeList from '/imports/client/ui/components/tree/TreeNodeList.vue';
import { moveBetweenRoots, moveWithinRoot } from '/imports/api/parenting/organizeMethods';
import { getCollectionByName } from '/imports/api/parenting/parentingFunctions';
export default {
components: {
TreeNodeList,
},
props: {
// The document for which we are finding children
model: {
type: Object,
default: undefined,
},
organize: Boolean,
group: {
type: String,
default: 'creatureProperties'
},
collection: {
type: String,
default: 'creatureProperties'
},
expanded: Boolean,
},
meteor: {
children() {
const collection = getCollectionByName(this.collection);
const docs = collection.find({
removed: { $ne: true },
...getFilter.descendants(this.model),
}, {
sort: { left: 1 }
}).fetch();
this.$emit('length', docs.length);
return docsToForest(docs);
},
},
methods: {
moveWithinRoot({ doc, newPosition }) {
moveWithinRoot.callAsync({
docRef: {
id: doc._id,
collection: this.collection,
},
newPosition,
});
},
moveBetweenRoots({ doc, newPosition, newRootRef }) {
moveBetweenRoots.callAsync({
docRef: {
id: doc._id,
collection: this.collection,
},
newPosition,
newRootRef,
});
},
},
};
</script>

View File

@@ -167,10 +167,11 @@
style="width: 100%"
class="pa-2 no-hover"
>
<creature-properties-tree
<descendant-properties-tree
style="width: 100%;"
organize
:root="{collection, id: model._id}"
:model="model"
:root="model.root"
:collection="collection"
@selected="e => $emit('select-sub-property', e)"
/>
@@ -225,7 +226,7 @@ import InlineComputationField from '/imports/client/ui/properties/forms/shared/I
import FormSection, { FormSections } from '/imports/client/ui/properties/forms/shared/FormSection.vue';
import propertyFormIndex from '/imports/client/ui/properties/forms/shared/propertyFormIndex';
import IconColorMenu from '/imports/client/ui/properties/forms/shared/IconColorMenu.vue';
import CreaturePropertiesTree from '/imports/client/ui/creature/creatureProperties/CreaturePropertiesTree.vue';
import DescendantPropertiesTree from '/imports/client/ui/creature/creatureProperties/DescendantPropertiesTree.vue';
import OutlinedInput from '/imports/client/ui/properties/viewers/shared/OutlinedInput.vue';
import { getSuggestedChildren } from '/imports/constants/PROPERTIES';
import PROPERTIES from '/imports/constants/PROPERTIES';
@@ -243,7 +244,7 @@ export default {
FormSection,
FormSections,
IconColorMenu,
CreaturePropertiesTree,
DescendantPropertiesTree,
OutlinedInput,
...propertyFormIndex,
},

View File

@@ -134,9 +134,9 @@
name="Child properties"
:cols="{cols: 12}"
>
<creature-properties-tree
<descendant-properties-tree
style="width: 100%;"
:root="{collection, id: model._id}"
:model="model"
:collection="collection"
@length="childrenLength = $event"
@selected="selectSubProperty"
@@ -155,14 +155,14 @@ import CreaturePropertiesTree from '/imports/client/ui/creature/creatureProperti
import PropertyField from '/imports/client/ui/properties/viewers/shared/PropertyField.vue';
import { getPropertyName } from '/imports/constants/PROPERTIES';
import CreatureProperties from '/imports/api/creature/creatureProperties/CreatureProperties';
import TreeNodeView from '/imports/client/ui/properties/treeNodeViews/TreeNodeView.vue';
import DescendantPropertiesTree from '/imports/client/ui/creature/creatureProperties/DescendantPropertiesTree.vue';
export default {
components: {
...propertyViewerIndex,
CreaturePropertiesTree,
PropertyField,
TreeNodeView,
DescendantPropertiesTree,
},
props: {
model: {