Skip to content

Commit 7ef5b6f

Browse files
authored
Sitemap treeview: Fix arrows/chevrons shown if not expandable (#3007)
Regression from #2904. Reported in #2970 (comment). Signed-off-by: Florian Hotze <[email protected]>
1 parent 54a3498 commit 7ef5b6f

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

bundles/org.openhab.ui/web/src/components/pagedesigner/sitemap/treeview-item.vue

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
:textColor="iconColor" :color="'blue'"
55
:selected="selected && selected === widget"
66
:opened="!widget.closed"
7+
:toggle="canHaveChildren"
78
@treeview:open="setWidgetClosed(false)"
89
@treeview:close="setWidgetClosed(true)"
910
@click="select">
10-
<draggable v-if="canHaveChildren" :list="children" group="sitemap-treeview" animation="150" fallbackOnBody="true" swapThreshold="0.6"
11+
<draggable :list="children" group="sitemap-treeview" animation="150" fallbackOnBody="true" swapThreshold="0.6"
1112
@start="onStart" @change="onChange" @end="onEnd">
1213
<sitemap-treeview-item class="sitemap-treeview-item" v-for="(childwidget, idx) in children"
1314
:key="idx"
@@ -66,18 +67,21 @@ export default {
6667
},
6768
onStart (event) {
6869
console.debug('Drag start event:', event)
70+
this.$set(this.localMoveState, 'moving', true)
6971
this.$set(this.localMoveState, 'widget', this.widget.slots.widgets[event.oldIndex])
7072
this.$set(this.localMoveState, 'oldList', this.widget.slots.widgets)
7173
this.$set(this.localMoveState, 'oldIndex', event.oldIndex)
7274
},
7375
onChange (event) {
7476
console.debug('Drag change event:', event)
7577
if (event.added) {
78+
this.$set(this.localMoveState, 'moving', false)
7679
this.validateMove(event.added.newIndex)
7780
}
7881
},
7982
onEnd (event) {
8083
console.debug('Drag end event:', event)
84+
this.$set(this.localMoveState, 'moving', false)
8185
this.validateMove(event.newIndex)
8286
},
8387
validateMove (newIndex) {
@@ -123,7 +127,7 @@ export default {
123127
return this.widget.slots?.widgets || []
124128
},
125129
canHaveChildren () {
126-
return this.LINKABLE_WIDGET_TYPES.includes(this.widget.component)
130+
return (this.LINKABLE_WIDGET_TYPES.includes(this.widget.component) && (this.children.length > 0 || this.localMoveState.moving)) === true
127131
}
128132
}
129133
}

0 commit comments

Comments
 (0)