Browse Source

Merge pull request #7007 from nocodb/develop

pull/7008/head 0.202.7
github-actions[bot] 11 months ago committed by GitHub
parent
commit
39fde48eba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 39
      packages/nc-gui/components/smartsheet/column/SelectOptions.vue
  2. 2
      packages/nc-gui/package.json
  3. 4
      packages/nocodb/package.json
  4. 10
      pnpm-lock.yaml

39
packages/nc-gui/components/smartsheet/column/SelectOptions.vue

@ -29,7 +29,7 @@ const { optionsMagic: _optionsMagic } = useNocoEe()
const optionsWrapperDomRef = ref<HTMLElement>()
const options = ref<(Option & { status?: 'remove' })[]>([])
const options = ref<(Option & { status?: 'remove'; index?: number })[]>([])
const isAddingOption = ref(false)
@ -38,7 +38,7 @@ const OPTIONS_PAGE_COUNT = 20
const loadedOptionAnchor = ref(OPTIONS_PAGE_COUNT)
const isReverseLazyLoad = ref(false)
const renderedOptions = ref<(Option & { status?: 'remove' })[]>([])
const renderedOptions = ref<(Option & { status?: 'remove'; index?: number })[]>([])
const savedDefaultOption = ref<Option | null>(null)
const savedCdf = ref<string | null>(null)
@ -98,6 +98,12 @@ onMounted(() => {
options.value = vModel.value.colOptions.options
let indexCounter = 0
options.value.map((el) => {
el.index = indexCounter++
return el
})
loadedOptionAnchor.value = Math.min(loadedOptionAnchor.value, options.value.length)
renderedOptions.value = [...options.value].slice(0, loadedOptionAnchor.value)
@ -135,6 +141,7 @@ const addNewOption = () => {
const tempOption = {
title: '',
color: getNextColor(),
index: options.value.length,
}
options.value.push(tempOption)
@ -168,20 +175,29 @@ const addNewOption = () => {
// }
const syncOptions = () => {
vModel.value.colOptions.options = options.value.filter((op) => op.status !== 'remove')
vModel.value.colOptions.options = options.value
.filter((op) => op.status !== 'remove')
.sort((a, b) => {
const renderA = renderedOptions.value.findIndex((el) => a.index !== undefined && el.index === a.index)
const renderB = renderedOptions.value.findIndex((el) => a.index !== undefined && el.index === b.index)
if (renderA === -1 || renderB === -1) return 0
return renderA - renderB
})
.map((op) => {
const { index: _i, status: _s, ...rest } = op
return rest
})
}
const removeRenderedOption = (index: number) => {
const renderedOption = renderedOptions.value[index]
const option = options.value[loadedOptionAnchor.value + index]
renderedOption.status = 'remove'
option.status = 'remove'
if (renderedOption.index === undefined || isNaN(renderedOption.index)) return
const option = options.value[renderedOption.index]
renderedOption.status = 'remove'
if (option) {
option.status = 'remove'
}
option.status = 'remove'
syncOptions()
@ -204,7 +220,10 @@ const optionChanged = (changedId: string) => {
const undoRemoveRenderedOption = (index: number) => {
const renderedOption = renderedOptions.value[index]
const option = options.value[loadedOptionAnchor.value + index]
if (renderedOption.index === undefined || isNaN(renderedOption.index)) return
const option = options.value[renderedOption.index]
renderedOption.status = undefined
option.status = undefined

2
packages/nc-gui/package.json

@ -65,7 +65,7 @@
"locale-codes": "^1.3.1",
"monaco-editor": "^0.33.0",
"monaco-sql-languages": "^0.11.0",
"nocodb-sdk": "0.202.6",
"nocodb-sdk": "workspace:^",
"papaparse": "^5.3.2",
"parse-github-url": "^1.0.2",
"pinia": "^2.1.4",

4
packages/nocodb/package.json

@ -136,7 +136,7 @@
"ncp": "^2.0.0",
"nestjs-kafka": "^1.0.6",
"nestjs-throttler-storage-redis": "^0.3.0",
"nocodb-sdk": "0.202.6",
"nocodb-sdk": "workspace:^",
"nodemailer": "^6.4.10",
"object-hash": "^3.0.0",
"object-sizeof": "^2.6.1",
@ -228,4 +228,4 @@
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
}

10
pnpm-lock.yaml

@ -115,7 +115,7 @@ importers:
specifier: ^0.11.0
version: 0.11.0
nocodb-sdk:
specifier: 0.202.6
specifier: workspace:^
version: link:../nocodb-sdk
papaparse:
specifier: ^5.3.2
@ -653,7 +653,7 @@ importers:
specifier: ^0.3.0
version: 0.3.0(@nestjs/common@10.2.1)(@nestjs/core@10.2.1)(@nestjs/throttler@4.2.1)(ioredis@5.3.2)(reflect-metadata@0.1.13)
nocodb-sdk:
specifier: 0.202.6
specifier: workspace:^
version: link:../nocodb-sdk
nodemailer:
specifier: ^6.4.10
@ -853,7 +853,7 @@ importers:
version: 6.3.3
ts-jest:
specifier: 29.0.5
version: 29.0.5(@babel/core@7.23.2)(jest@29.5.0)(typescript@5.2.2)
version: 29.0.5(@babel/core@7.22.11)(jest@29.5.0)(typescript@5.2.2)
ts-loader:
specifier: ^9.2.3
version: 9.4.4(typescript@5.2.2)(webpack@5.88.2)
@ -23113,7 +23113,7 @@ packages:
engines: {node: '>=14.0.0'}
dev: false
/ts-jest@29.0.5(@babel/core@7.23.2)(jest@29.5.0)(typescript@5.2.2):
/ts-jest@29.0.5(@babel/core@7.22.11)(jest@29.5.0)(typescript@5.2.2):
resolution: {integrity: sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@ -23134,7 +23134,7 @@ packages:
esbuild:
optional: true
dependencies:
'@babel/core': 7.23.2
'@babel/core': 7.22.11
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
jest: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1)

Loading…
Cancel
Save