From 373c3e39021df999dc4195755e4c58dde166b7c6 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Fri, 2 Jun 2023 17:59:57 +0530 Subject: [PATCH] feat: drag-n-drop LTAR and Lookup creation Signed-off-by: Pranav C --- .../nc-gui/components/dashboard/TreeView.vue | 11 +++ .../nc-gui/components/smartsheet/Grid.vue | 10 +++ .../smartsheet/column/EditOrAdd.vue | 15 ++++- .../smartsheet/column/EditOrAddProvider.vue | 10 ++- .../nc-gui/components/tabs/Smartsheet.vue | 67 +++++++++++++++++-- 5 files changed, 107 insertions(+), 6 deletions(-) diff --git a/packages/nc-gui/components/dashboard/TreeView.vue b/packages/nc-gui/components/dashboard/TreeView.vue index 5940b634c5..ee685e600a 100644 --- a/packages/nc-gui/components/dashboard/TreeView.vue +++ b/packages/nc-gui/components/dashboard/TreeView.vue @@ -184,6 +184,15 @@ const initSortable = (el: Element) => { }) }, animation: 150, + setData(dataTransfer, dragEl) { + dataTransfer.setData( + 'text/json', + JSON.stringify({ + id: dragEl.dataset.id, + title: dragEl.dataset.title, + }), + ) + }, }) } @@ -699,6 +708,7 @@ const duplicateTable = async (table: TableType) => { class="nc-tree-item text-sm cursor-pointer group" :data-order="table.order" :data-id="table.id" + :data-title="table.title" :data-testid="`tree-view-table-${table.title}`" @click="addTableTab(table)" > @@ -1023,6 +1033,7 @@ const duplicateTable = async (table: TableType) => { class="nc-tree-item text-sm cursor-pointer group" :data-order="table.order" :data-id="table.id" + :data-title="table.title" :data-testid="`tree-view-table-${table.title}`" @click="addTableTab(table)" > diff --git a/packages/nc-gui/components/smartsheet/Grid.vue b/packages/nc-gui/components/smartsheet/Grid.vue index bfc8996870..d3a8e36dcd 100644 --- a/packages/nc-gui/components/smartsheet/Grid.vue +++ b/packages/nc-gui/components/smartsheet/Grid.vue @@ -428,6 +428,8 @@ const showLoading = ref(true) const skipRowRemovalOnCancel = ref(false) +const preloadColumn = ref>() + function expandForm(row: Row, state?: Record, fromToolbar = false) { const rowId = extractPkFromRow(row.row, meta.value?.columns as ColumnType[]) @@ -457,6 +459,13 @@ const onXcResizing = (cn: string, event: any) => { defineExpose({ loadData, + openColumnCreate: (data) => { + tableHead.value?.querySelector('th:last-child')?.scrollIntoView({ behavior: 'smooth' }) + setTimeout(() => { + addColumnDropdown.value = true + preloadColumn.value = data + }, 500) + }, }) // reset context menu target on hide @@ -869,6 +878,7 @@ const confirmDeleteRow = (row: number) => {