+
{{ importMeta.header }}
+
+
+
+
+
+
+
+
+
+
+ {{ $t('general.upload') }}
+
+
+
+
+
+
+
+
+ {{ $t('msg.info.import.clickOrDrag') }}
+
+
+ {{ importMeta.uploadHint }}
+
+
-
-
-
-
-
-
-
- {{ $t('msg.info.import.clickOrDrag') }}
-
-
- {{ importMeta.uploadHint }}
-
-
-
-
-
-
-
-
-
- JSON Editor
-
-
-
-
-
-
-
-
-
-
-
-
- URL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{{ $t('title.advancedSettings') }}
-
-
-
-
-
-
-
-
- {{ $t('labels.flattenNested') }}
-
-
+
+
+
+
+
+
+ JSON Editor
+
+
+
+
+
+
+
+
+
+
+
+
+ URL
+
+
+
+
+
+
+
-
-
-
{{ $t('labels.importData') }}
+
+
+
+
+
+
{{ $t('title.advancedSettings') }}
+
+
+
+
+
+
+
+ Auto-Select Field Types
+
+
+
+
+
+ Use First Row as Headers
+
+
+
+
+
+
+ {{ $t('labels.flattenNested') }}
+
+
+
+
+
+ {{ $t('labels.importData') }}
+
-
-
+
Back
@@ -419,14 +492,14 @@ const customReqCbk = (customReqArgs: { file: any; onSuccess: () => void }) => {
key="pre-import"
type="primary"
class="nc-btn-import"
- :loading="loading"
+ :loading="preImportLoading"
:disabled="disablePreImportButton"
@click="handlePreImport"
>
{{ $t('activity.import') }}
-
+
{{ $t('activity.import') }}
diff --git a/packages/nc-gui/components/shared-view/Gallery.vue b/packages/nc-gui/components/shared-view/Gallery.vue
index 7d7bbb5e2c..363001839e 100644
--- a/packages/nc-gui/components/shared-view/Gallery.vue
+++ b/packages/nc-gui/components/shared-view/Gallery.vue
@@ -7,7 +7,7 @@ const reloadEventHook = createEventHook()
provide(ReloadViewDataHookInj, reloadEventHook)
-provide(ReadonlyInj, true)
+provide(ReadonlyInj, ref(true))
provide(MetaInj, meta)
diff --git a/packages/nc-gui/components/shared-view/Grid.vue b/packages/nc-gui/components/shared-view/Grid.vue
index 2d51c958a8..03d7068f51 100644
--- a/packages/nc-gui/components/shared-view/Grid.vue
+++ b/packages/nc-gui/components/shared-view/Grid.vue
@@ -28,7 +28,7 @@ useProvideSmartsheetStore(sharedView, meta, true, sorts, nestedFilters)
const reloadEventHook = createEventHook()
provide(ReloadViewDataHookInj, reloadEventHook)
-provide(ReadonlyInj, true)
+provide(ReadonlyInj, ref(true))
provide(MetaInj, meta)
provide(ActiveViewInj, sharedView)
provide(FieldsInj, ref(meta.value?.columns || []))
diff --git a/packages/nc-gui/components/shared-view/Kanban.vue b/packages/nc-gui/components/shared-view/Kanban.vue
index 8dd6b4e96a..f595c85b32 100644
--- a/packages/nc-gui/components/shared-view/Kanban.vue
+++ b/packages/nc-gui/components/shared-view/Kanban.vue
@@ -15,7 +15,7 @@ const reloadEventHook = createEventHook()
provide(ReloadViewDataHookInj, reloadEventHook)
-provide(ReadonlyInj, true)
+provide(ReadonlyInj, ref(true))
provide(MetaInj, meta)
diff --git a/packages/nc-gui/components/smartsheet/Cell.vue b/packages/nc-gui/components/smartsheet/Cell.vue
index 2ed187af22..ac4d5d017d 100644
--- a/packages/nc-gui/components/smartsheet/Cell.vue
+++ b/packages/nc-gui/components/smartsheet/Cell.vue
@@ -1,6 +1,5 @@
+
+
+
+
+ |
+
diff --git a/packages/nc-gui/components/smartsheet/expanded-form/Detached.vue b/packages/nc-gui/components/smartsheet/expanded-form/Detached.vue
new file mode 100644
index 0000000000..def9be7748
--- /dev/null
+++ b/packages/nc-gui/components/smartsheet/expanded-form/Detached.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/packages/nc-gui/components/smartsheet/expanded-form/index.vue b/packages/nc-gui/components/smartsheet/expanded-form/index.vue
index 3dbb20469f..a3acbd571b 100644
--- a/packages/nc-gui/components/smartsheet/expanded-form/index.vue
+++ b/packages/nc-gui/components/smartsheet/expanded-form/index.vue
@@ -9,6 +9,8 @@ import {
MetaInj,
ReloadRowDataHookInj,
computedInject,
+ createEventHook,
+ inject,
message,
provide,
ref,
diff --git a/packages/nc-gui/components/smartsheet/toolbar/MoreActions.vue b/packages/nc-gui/components/smartsheet/toolbar/MoreActions.vue
index 6ef6335d71..8a6e9eb7c0 100644
--- a/packages/nc-gui/components/smartsheet/toolbar/MoreActions.vue
+++ b/packages/nc-gui/components/smartsheet/toolbar/MoreActions.vue
@@ -166,7 +166,7 @@ const exportFile = async (exportType: ExportTypes) => {
-
+
diff --git a/packages/nc-gui/components/smartsheet/toolbar/ShareView.vue b/packages/nc-gui/components/smartsheet/toolbar/ShareView.vue
index fd0878f974..3fd4cf1ee8 100644
--- a/packages/nc-gui/components/smartsheet/toolbar/ShareView.vue
+++ b/packages/nc-gui/components/smartsheet/toolbar/ShareView.vue
@@ -43,7 +43,7 @@ const shared = ref
({ id: '', meta: {}, password: undefined })
const transitionDuration = computed({
get: () => shared.value.meta.transitionDuration || 250,
set: (duration) => {
- shared.value.meta = { ...shared.value.meta, transitionDuration: duration }
+ shared.value.meta = { ...shared.value.meta, transitionDuration: duration > 5000 ? 5000 : duration }
},
})
diff --git a/packages/nc-gui/components/smartsheet/toolbar/ViewActions.vue b/packages/nc-gui/components/smartsheet/toolbar/ViewActions.vue
index c926a5c3d7..daa2c857f3 100644
--- a/packages/nc-gui/components/smartsheet/toolbar/ViewActions.vue
+++ b/packages/nc-gui/components/smartsheet/toolbar/ViewActions.vue
@@ -228,7 +228,7 @@ const { isSqlView } = useSmartsheetStoreOrThrow()
-
+
diff --git a/packages/nc-gui/components/tabs/Smartsheet.vue b/packages/nc-gui/components/tabs/Smartsheet.vue
index db6aad701d..392fa50c43 100644
--- a/packages/nc-gui/components/tabs/Smartsheet.vue
+++ b/packages/nc-gui/components/tabs/Smartsheet.vue
@@ -7,6 +7,7 @@ import {
IsLockedInj,
MetaInj,
OpenNewRecordFormHookInj,
+ ReadonlyInj,
ReloadViewDataHookInj,
ReloadViewMetaHookInj,
TabMetaInj,
@@ -18,6 +19,7 @@ import {
useMetas,
useProvideKanbanViewStore,
useProvideSmartsheetStore,
+ useUIPermission,
} from '#imports'
import type { TabItem } from '~/lib'
@@ -25,6 +27,8 @@ const props = defineProps<{
activeTab: TabItem
}>()
+const { isUIAllowed } = useUIPermission()
+
const { metas } = useMetas()
const activeTab = toRef(props, 'activeTab')
@@ -55,6 +59,10 @@ provide(OpenNewRecordFormHookInj, openNewRecordFormHook)
provide(FieldsInj, fields)
provide(IsFormInj, isForm)
provide(TabMetaInj, activeTab)
+provide(
+ ReadonlyInj,
+ computed(() => !isUIAllowed('xcDatatableEditable')),
+)
@@ -79,6 +87,8 @@ provide(TabMetaInj, activeTab)
+