diff --git a/packages/nc-gui-v2/composables/useProject.ts b/packages/nc-gui-v2/composables/useProject.ts index 8c830507f3..31cf3e2eb7 100644 --- a/packages/nc-gui-v2/composables/useProject.ts +++ b/packages/nc-gui-v2/composables/useProject.ts @@ -2,6 +2,7 @@ import { SqlUiFactory } from 'nocodb-sdk' import type { OracleUi, ProjectType, TableType } from 'nocodb-sdk' import type { MaybeRef } from '@vueuse/core' import { useNuxtApp, useRoute, useState } from '#app' +import type { ProjectMetaInfo } from '~/lib' import { USER_PROJECT_ROLES } from '~/lib' export function useProject(projectId?: MaybeRef) { @@ -13,10 +14,17 @@ export function useProject(projectId?: MaybeRef) { const tables = useState('tables', () => [] as TableType[]) const route = useRoute() const { includeM2M } = useGlobal() - + const projectMetaInfo = useState('projectMetaInfo') // todo: refactor path param name and variable name const projectType = $computed(() => route.params.projectType as string) + async function loadProjectMetaInfo(force?: boolean) { + if (!projectMetaInfo.value || force) { + const data = await $api.project.metaGet(project.value.id!, {}, {}) + projectMetaInfo.value = data + } + } + async function loadProjectRoles() { projectRoles.value = {} @@ -59,5 +67,17 @@ export function useProject(projectId?: MaybeRef) { ) const isSharedBase = computed(() => projectType === 'base') - return { project, tables, loadProjectRoles, loadProject, loadTables, isMysql, isPg, sqlUi, isSharedBase } + return { + project, + tables, + loadProjectRoles, + loadProject, + loadTables, + isMysql, + isPg, + sqlUi, + isSharedBase, + loadProjectMetaInfo, + projectMetaInfo, + } } diff --git a/packages/nc-gui-v2/lib/types.ts b/packages/nc-gui-v2/lib/types.ts index f468954e5f..c8f5869047 100644 --- a/packages/nc-gui-v2/lib/types.ts +++ b/packages/nc-gui-v2/lib/types.ts @@ -10,4 +10,15 @@ export interface User { project_id?: string } +export interface ProjectMetaInfo { + Node?: string + Arch?: string + Platform?: string + Docker?: boolean + Database?: string + ProjectOnRootDB?: string + RootDB?: string + PackageVersion?: string +} + export type Roles = Record diff --git a/packages/nc-gui-v2/pages/[projectType]/[projectId]/index.vue b/packages/nc-gui-v2/pages/[projectType]/[projectId]/index.vue index 9a447e0639..b7cf9bfab6 100644 --- a/packages/nc-gui-v2/pages/[projectType]/[projectId]/index.vue +++ b/packages/nc-gui-v2/pages/[projectType]/[projectId]/index.vue @@ -1,10 +1,12 @@ -
+
Copy Project Info