Browse Source

Merge pull request #6585 from nocodb/nc-fix/cmd

fix: Use table name for recent Views in default view
pull/6628/head
Anbarasu 11 months ago committed by GitHub
parent
commit
13e5e7842c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      packages/nc-gui/components/dashboard/TreeView/ViewsList.vue
  2. 9
      packages/nc-gui/components/dashboard/settings/DataSources.vue
  3. 4
      packages/nc-gui/components/dashboard/settings/data-sources/CreateBase.vue
  4. 4
      packages/nc-gui/components/dashboard/settings/data-sources/EditBase.vue
  5. 3
      packages/nc-gui/components/dlg/ProjectDuplicate.vue
  6. 3
      packages/nc-gui/components/dlg/TableCreate.vue
  7. 3
      packages/nc-gui/components/dlg/TableDuplicate.vue
  8. 10
      packages/nc-gui/components/dlg/TableRename.vue
  9. 4
      packages/nc-gui/components/dlg/ViewCreate.vue
  10. 4
      packages/nc-gui/components/dlg/ViewDelete.vue
  11. 4
      packages/nc-gui/components/dlg/WorkspaceDelete.vue
  12. 5
      packages/nc-gui/store/views.ts
  13. 1
      tests/playwright/pages/Dashboard/Command/CmdKPage.ts

4
packages/nc-gui/components/dashboard/TreeView/ViewsList.vue

@ -38,7 +38,7 @@ const { $e } = useNuxtApp()
const { t } = useI18n()
const { viewsByTable, activeView, recentViews } = storeToRefs(useViewsStore())
const { viewsByTable, activeView, allRecentViews } = storeToRefs(useViewsStore())
const { navigateToTable } = useTablesStore()
@ -239,7 +239,7 @@ async function onRename(view: ViewType, originalTitle?: string, undo = false) {
})
}
// update view name in recent views
recentViews.value = recentViews.value.map((rv) => {
allRecentViews.value = allRecentViews.value.map((rv) => {
if (rv.viewId === view.id && rv.tableID === view.fk_model_id) {
rv.viewName = view.title
}

9
packages/nc-gui/components/dashboard/settings/DataSources.vue

@ -87,9 +87,11 @@ const deleteBase = async () => {
await loadProject(base.value.id as string, true)
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
// TODO @mertmit
refreshCommandPalette()
}
}
const toggleBase = async (source: BaseType, state: boolean) => {
try {
if (!state && sources.value.filter((src) => src.enabled).length < 2) {
@ -105,6 +107,8 @@ const toggleBase = async (source: BaseType, state: boolean) => {
await loadProject(base.value.id as string, true)
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
refreshCommandPalette()
}
}
@ -133,6 +137,8 @@ const moveBase = async (e: any) => {
await loadBases()
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
await refreshCommandPalette()
}
}
@ -210,6 +216,7 @@ watch(
}
break
}
refreshCommandPalette()
},
{ immediate: true },
)

4
packages/nc-gui/components/dashboard/settings/data-sources/CreateBase.vue

@ -39,6 +39,8 @@ const { base } = storeToRefs(baseStore)
const { loadProjectTables } = useTablesStore()
const { refreshCommandPalette } = useCommandPalette()
const _projectId = inject(ProjectIdInj, undefined)
const baseId = computed(() => _projectId?.value ?? base.value?.id)
@ -293,6 +295,8 @@ const createSource = async () => {
)
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
refreshCommandPalette()
}
}

4
packages/nc-gui/components/dashboard/settings/data-sources/EditBase.vue

@ -39,6 +39,8 @@ const { base } = storeToRefs(baseStore)
const _projectId = inject(ProjectIdInj, undefined)
const baseId = computed(() => _projectId?.value ?? base.value?.id)
const { refreshCommandPalette } = useCommandPalette()
const useForm = Form.useForm
const testSuccess = ref(false)
@ -235,6 +237,8 @@ const editBase = async () => {
emit('close')
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
refreshCommandPalette()
}
}

3
packages/nc-gui/components/dlg/ProjectDuplicate.vue

@ -11,6 +11,8 @@ const props = defineProps<{
const emit = defineEmits(['update:modelValue'])
const { refreshCommandPalette } = useCommandPalette()
const { api } = useApi()
const dialogShow = useVModel(props, 'modelValue', emit)
@ -60,6 +62,7 @@ const _duplicate = async () => {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
isLoading.value = false
refreshCommandPalette()
dialogShow.value = false
}
}

3
packages/nc-gui/components/dlg/TableCreate.vue

@ -34,6 +34,8 @@ const { isMysql, isMssql, isPg } = useBase()
const { loadProjectTables, addTable } = useTablesStore()
const { refreshCommandPalette } = useCommandPalette()
const { table, createTable, generateUniqueTitle, tables, base } = useTableNew({
async onTableCreate(table) {
// await loadProject(props.baseId)
@ -120,6 +122,7 @@ const _createTable = async () => {
setTimeout(() => {
creating.value = false
}, 500)
refreshCommandPalette()
}
}

3
packages/nc-gui/components/dlg/TableDuplicate.vue

@ -14,6 +14,8 @@ const { api } = useApi()
const dialogShow = useVModel(props, 'modelValue', emit)
const { refreshCommandPalette } = useCommandPalette()
const options = ref({
includeData: true,
includeViews: true,
@ -41,6 +43,7 @@ const _duplicate = async () => {
} finally {
isLoading.value = false
dialogShow.value = false
refreshCommandPalette()
}
}

10
packages/nc-gui/components/dlg/TableRename.vue

@ -46,6 +46,8 @@ const baseStore = useBase()
const { loadTables, isMysql, isMssql, isPg } = baseStore
const { tables, base } = storeToRefs(baseStore)
const { allRecentViews } = storeToRefs(useViewsStore())
const { refreshCommandPalette } = useCommandPalette()
const { addUndo, defineProjectScope } = useUndoRedo()
@ -158,6 +160,14 @@ const renameTable = async (undo = false, disableTitleDiffCheck?: boolean | undef
await loadTables()
// update recent views if default view is renamed
allRecentViews.value = allRecentViews.value.map((v) => {
if (v.tableID === tableMeta.id && v.isDefault) {
v.viewName = formState.title
}
return v
})
// update metas
const newMeta = await $api.dbTable.read(tableMeta.id as string)
await setMeta(newMeta)

4
packages/nc-gui/components/dlg/ViewCreate.vue

@ -42,6 +42,8 @@ const { getMeta } = useMetas()
const { viewsByTable } = storeToRefs(useViewsStore())
const { refreshCommandPalette } = useCommandPalette()
const { selectedViewId, groupingFieldColumnId, geoDataFieldColumnId, tableId } = toRefs(props)
const meta = ref<TableType | undefined>()
@ -171,6 +173,8 @@ async function onSubmit() {
}
} catch (e: any) {
message.error(e.message)
} finally {
refreshCommandPalette()
}
vModel.value = false

4
packages/nc-gui/components/dlg/ViewDelete.vue

@ -15,6 +15,8 @@ const props = defineProps<Props>()
const emits = defineEmits<Emits>()
const { refreshCommandPalette } = useCommandPalette()
const { view } = props
const vModel = useVModel(props, 'modelValue', emits)
@ -35,6 +37,8 @@ async function onDelete() {
$e('a:view:delete', { view: props.view.type })
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
refreshCommandPalette()
}
// telemetry event

4
packages/nc-gui/components/dlg/WorkspaceDelete.vue

@ -13,6 +13,8 @@ const { deleteWorkspace: _deleteWorkspace, loadWorkspaces, navigateToWorkspace }
const { workspaces, workspacesList } = storeToRefs(workspaceStore)
const { refreshCommandPalette } = useCommandPalette()
const workspace = computed(() => workspaces.value.get(props.workspaceId))
const onDelete = async () => {
@ -29,6 +31,8 @@ const onDelete = async () => {
await navigateToWorkspace(workspacesList.value?.[0]?.id)
} catch (e: any) {
message.error(await extractSdkResponseErrorMsg(e))
} finally {
refreshCommandPalette()
}
}
</script>

5
packages/nc-gui/store/views.ts

@ -6,7 +6,9 @@ export const useViewsStore = defineStore('viewsStore', () => {
const { $api } = useNuxtApp()
const router = useRouter()
const recentViews = ref<any>([])
const recentViews = computed(() => [])
const allRecentViews = ref<any>([])
const route = router.currentRoute
const tablesStore = useTablesStore()
@ -237,6 +239,7 @@ export const useViewsStore = defineStore('viewsStore', () => {
isPaginationLoading,
loadViews,
recentViews,
allRecentViews,
views,
activeView,
openedViewsTab,

1
tests/playwright/pages/Dashboard/Command/CmdKPage.ts

@ -21,6 +21,7 @@ export class CmdK extends BasePage {
async searchText(text: string) {
await this.dashboardPage.rootPage.fill('.cmdk-input', text);
await this.rootPage.keyboard.press('Enter');
await this.rootPage.keyboard.press('Enter');
}
async isCmdKVisible() {

Loading…
Cancel
Save