Click on reference props to go to them

This commit is contained in:
Stefan Zermatten
2023-06-21 16:15:44 +02:00
parent d9ef848c4e
commit 3843fcff97
4 changed files with 54 additions and 8 deletions

View File

@@ -58,7 +58,10 @@ function updateReferenceNodeWork(node, userId) {
node: doc,
};
if (library) {
cache.library = { name: library.name };
cache.library = {
id: library._id,
name: library.name,
};
}
writeCache(node._id, cache);
}

View File

@@ -51,6 +51,10 @@ let ReferenceSchema = new SimpleSchema({
type: Object,
optional: true,
},
'cache.library.id': {
type: String,
optional: true,
},
'cache.library.name': {
type: String,
optional: true,

View File

@@ -52,6 +52,7 @@
:key="model._id"
class="property-viewer"
:model="model"
@select-sub-property="id => selectSubProperty(id)"
/>
<v-row dense>
<template

View File

@@ -8,17 +8,46 @@
/>
<property-field
v-else-if="model.ref && model.ref.id"
name="Linked Property"
name="Linked property"
:cols="{cols: 12, md: 6}"
>
<div style="overflow: hidden;">
<tree-node-view :model="model.cache.node" />
<div style="overflow: hidden; min-width: 100%; min-height: 100%;">
<v-btn
plain
class="normal-text"
style="min-width: 100%; min-height: 100%;"
:to="(model.cache.library && model.cache.library.id) ? `/library/${model.cache.library.id}` : undefined"
@click="$emit('select-sub-property', model.ref.id)"
>
<div
class="pa-4"
>
<tree-node-view
:model="model.cache.node"
/>
</div>
</v-btn>
</div>
</property-field>
<property-field
v-if="model.cache.library && model.cache.library.name"
name="Library"
:value="model.cache.library.name"
/>
:cols="{cols: 12, md: 6}"
>
<div style="overflow: hidden; min-width: 100%; min-height: 100%;">
<v-btn
plain
height="56"
class="normal-text"
style="min-width: 100%; min-height: 100%;"
:disabled="!model.cache.library.id"
:to="`/library/${model.cache.library.id}`"
@click="$emit('select-sub-property', model.ref.id)"
>
{{ model.cache.library.name }}
</v-btn>
</div>
</property-field>
</v-row>
</div>
</template>
@@ -26,15 +55,24 @@
<script lang="js">
import propertyViewerMixin from '/imports/client/ui/properties/viewers/shared/propertyViewerMixin.js'
import TreeNodeView from '/imports/client/ui/properties/treeNodeViews/TreeNodeView.vue';
import OutlinedInput from '/imports/client/ui/properties/viewers/shared/OutlinedInput.vue';
export default {
components: {
TreeNodeView,
OutlinedInput,
},
mixins: [propertyViewerMixin],
}
</script>
<style lang="css" scoped>
<style lang="css">
.reference-viewer .normal-text {
word-wrap: unset;
white-space: unset;
text-transform: unset;
}
.reference-viewer .normal-text span {
max-width: 100%;
}
</style>