diff --git a/packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue b/packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue index 25e9166144..4c5a444300 100644 --- a/packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue +++ b/packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue @@ -83,58 +83,62 @@ const gridDisplayValueField = computed(() => { }) const onMove = async (_event: { moved: { newIndex: number; oldIndex: number } }, undo = false) => { - // todo : sync with server - if (!fields.value) return + try { + // todo : sync with server + if (!fields.value) return - if (!undo) { - addUndo({ - undo: { - fn: () => { - if (!fields.value) return - const temp = fields.value[_event.moved.newIndex] - fields.value[_event.moved.newIndex] = fields.value[_event.moved.oldIndex] - fields.value[_event.moved.oldIndex] = temp - onMove( - { - moved: { - newIndex: _event.moved.oldIndex, - oldIndex: _event.moved.newIndex, + if (!undo) { + addUndo({ + undo: { + fn: () => { + if (!fields.value) return + const temp = fields.value[_event.moved.newIndex] + fields.value[_event.moved.newIndex] = fields.value[_event.moved.oldIndex] + fields.value[_event.moved.oldIndex] = temp + onMove( + { + moved: { + newIndex: _event.moved.oldIndex, + oldIndex: _event.moved.newIndex, + }, }, - }, - true, - ) + true, + ) + }, + args: [], }, - args: [], - }, - redo: { - fn: () => { - if (!fields.value) return - const temp = fields.value[_event.moved.oldIndex] - fields.value[_event.moved.oldIndex] = fields.value[_event.moved.newIndex] - fields.value[_event.moved.newIndex] = temp - onMove(_event, true) + redo: { + fn: () => { + if (!fields.value) return + const temp = fields.value[_event.moved.oldIndex] + fields.value[_event.moved.oldIndex] = fields.value[_event.moved.newIndex] + fields.value[_event.moved.newIndex] = temp + onMove(_event, true) + }, + args: [], }, - args: [], - }, - scope: defineViewScope({ view: activeView.value }), - }) - } + scope: defineViewScope({ view: activeView.value }), + }) + } - if (fields.value.length < 2) return + if (fields.value.length < 2) return - await Promise.all( - fields.value.map(async (field, index) => { - if (field.order !== index + 1) { - field.order = index + 1 - await saveOrUpdate(field, index, true) - } - }), - ) + await Promise.all( + fields.value.map(async (field, index) => { + if (field.order !== index + 1) { + field.order = index + 1 + await saveOrUpdate(field, index, true) + } + }), + ) - await loadViewColumns() - reloadViewDataHook?.trigger() + await loadViewColumns() + reloadViewDataHook?.trigger() - $e('a:fields:reorder') + $e('a:fields:reorder') + } catch (e) { + message.error(await extractSdkResponseErrorMsg(e)) + } } const coverOptions = computed(() => { diff --git a/packages/nocodb/src/controllers/view-columns.controller.ts b/packages/nocodb/src/controllers/view-columns.controller.ts index 6e5f0e9851..9647b342de 100644 --- a/packages/nocodb/src/controllers/view-columns.controller.ts +++ b/packages/nocodb/src/controllers/view-columns.controller.ts @@ -58,8 +58,8 @@ export class ViewColumnsController { '/api/v1/db/meta/views/:viewId/columns/:columnId', '/api/v2/meta/views/:viewId/columns/:columnId', ]) - @Acl('columnUpdate') - async columnUpdate( + @Acl('viewColumnUpdate') + async viewColumnUpdate( @Param('viewId') viewId: string, @Param('columnId') columnId: string, @Body() body: ViewColumnReqType,