diff --git a/packages/nc-gui/components/general/ViewIcon.vue b/packages/nc-gui/components/general/ViewIcon.vue new file mode 100644 index 0000000000..5d347ea34b --- /dev/null +++ b/packages/nc-gui/components/general/ViewIcon.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/packages/nc-gui/components/smartsheet/sidebar/MenuTop.vue b/packages/nc-gui/components/smartsheet/sidebar/MenuTop.vue index d8b23daa84..a08eed3735 100644 --- a/packages/nc-gui/components/smartsheet/sidebar/MenuTop.vue +++ b/packages/nc-gui/components/smartsheet/sidebar/MenuTop.vue @@ -140,7 +140,7 @@ const initSortable = (el: HTMLElement) => { if (sortable) sortable.destroy() sortable = new Sortable(el, { - handle: '.nc-drag-icon', + // handle: '.nc-drag-icon', ghostClass: 'ghost', onStart: onSortStart, onEnd: onSortEnd, @@ -213,6 +213,23 @@ function openDeleteDialog(view: ViewType) { close(1000) } } + +const setIcon = async (icon: string, view: ViewType) => { + try { + view.meta = { + ...(view.meta || {}), + icon, + } + + api.dbView.update(view.id as string, { + meta: view.meta, + }) + + $e('a:view:icon:sidebar', { icon }) + } catch (e) { + message.error(await extractSdkResponseErrorMsg(e)) + } +} diff --git a/packages/nc-gui/components/smartsheet/sidebar/RenameableMenuItem.vue b/packages/nc-gui/components/smartsheet/sidebar/RenameableMenuItem.vue index bdf6c607d8..3d5646d57c 100644 --- a/packages/nc-gui/components/smartsheet/sidebar/RenameableMenuItem.vue +++ b/packages/nc-gui/components/smartsheet/sidebar/RenameableMenuItem.vue @@ -3,7 +3,6 @@ import type { KanbanType, ViewType, ViewTypes } from 'nocodb-sdk' import type { WritableComputedRef } from '@vue/reactivity' import { IsLockedInj, - computed, inject, message, onKeyStroke, @@ -11,7 +10,6 @@ import { useNuxtApp, useUIPermission, useVModel, - viewIcons, } from '#imports' interface Props { @@ -21,9 +19,15 @@ interface Props { interface Emits { (event: 'update:view', data: Record): void + + (event: 'selectIcon', icon: string): void + (event: 'changeView', view: Record): void + (event: 'rename', view: ViewType): void + (event: 'delete', view: ViewType): void + (event: 'openModal', data: { type: ViewTypes; title?: string; copyViewId?: string; groupingFieldColumnId?: string }): void } @@ -48,8 +52,6 @@ let isStopped = $ref(false) /** Original view title when editing the view name */ let originalTitle = $ref() -const viewType = computed(() => vModel.value.type as number) - /** Debounce click handler, so we can potentially enable editing view name {@see onDblClick} */ const onClick = useDebounceFn(() => { if (isEditing || isStopped) return @@ -172,17 +174,14 @@ function onStopEdit() { @click.stop="onClick" >
-
-