From 048a771ee137bac10d8d352fd2bbe3ba5db34025 Mon Sep 17 00:00:00 2001 From: Javier Segarra <jsegarra@verdnatura.es> Date: Wed, 9 Apr 2025 11:35:26 +0200 Subject: [PATCH] feat: refs #8891 enhance LeftMenu with expandable item groups and improved pinning functionality --- src/components/LeftMenu.vue | 98 +++++++++++++++++++++++++++---------- 1 file changed, 72 insertions(+), 26 deletions(-) diff --git a/src/components/LeftMenu.vue b/src/components/LeftMenu.vue index 8e83bf579..1b31f3f31 100644 --- a/src/components/LeftMenu.vue +++ b/src/components/LeftMenu.vue @@ -225,37 +225,83 @@ const searchModule = () => { (item.children && !filteredPinnedModules.has(item.name)) " > + <QList v-if="item.children.length > 1"> + <QExpansionItem + v-ripple + clickable + :content-inset-level="0.5" + @after-show="handleItemExpansion(item.name)" + > + <template #header> + <QItemSection avatar> + <QIcon :name="item.icon" /> + </QItemSection> + <QItemSection> + <QItemLabel>{{ t(item.title) }}</QItemLabel> + </QItemSection> + <QBtn + v-if="item.isPinned === true" + @click="togglePinned(item, $event)" + icon="remove_circle" + size="xs" + flat + round + > + <QTooltip> + {{ + t('components.leftMenu.removeFromPinned') + }} + </QTooltip> + </QBtn> + <QBtn + v-if="item.isPinned === false" + @click="togglePinned(item, $event)" + icon="push_pin" + size="xs" + flat + round + > + <QTooltip> + {{ t('components.leftMenu.addToPinned') }} + </QTooltip> + </QBtn> + </template> + <LeftMenuItemGroup + :ref="(el) => (expansionItemElements[item.name] = el)" + :item="item" + /> + </QExpansionItem> + </QList> <LeftMenuItem + v-else :item="item" group="modules" :class="search && index === 0 ? 'searched' : ''" > - <template #side> - <QBtn - v-if="item.isPinned === true" - @click="togglePinned(item, $event)" - icon="remove_circle" - size="xs" - flat - round - > - <QTooltip> - {{ t('components.leftMenu.removeFromPinned') }} - </QTooltip> - </QBtn> - <QBtn - v-if="item.isPinned === false" - @click="togglePinned(item, $event)" - icon="push_pin" - size="xs" - flat - round - > - <QTooltip> - {{ t('components.leftMenu.addToPinned') }} - </QTooltip> - </QBtn> - </template> + <QBtn + v-if="item.isPinned === true" + @click="togglePinned(item, $event)" + icon="remove_circle" + size="xs" + flat + round + > + <QTooltip> + {{ t('components.leftMenu.removeFromPinned') }} + </QTooltip> + </QBtn> + <QBtn + v-if="item.isPinned === false" + @click="togglePinned(item, $event)" + icon="push_pin" + size="xs" + flat + round + > + <QTooltip> + {{ t('components.leftMenu.addToPinned') }} + </QTooltip> + </QBtn> </LeftMenuItem> </template> </template>