Browse Source

Merge pull request #7405 from nocodb/nc-fix/sentry-err

Miscellaneous bug fixes
pull/7423/head
Raju Udava 8 months ago committed by GitHub
parent
commit
3959e4ef50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      packages/nc-gui/components/cell/SingleSelect.vue
  2. 10
      packages/nc-gui/components/smartsheet/expanded-form/index.vue
  3. 4
      packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue
  4. 3
      packages/nc-gui/components/smartsheet/toolbar/FilterInput.vue
  5. 8
      packages/nc-gui/components/smartsheet/toolbar/ViewActionMenu.vue
  6. 2
      packages/nc-gui/components/workspace/CollaboratorsList.vue
  7. 37
      packages/nc-gui/store/bases.ts

2
packages/nc-gui/components/cell/SingleSelect.vue

@ -258,7 +258,7 @@ const handleClose = (e: MouseEvent) => {
useEventListener(document, 'click', handleClose, true) useEventListener(document, 'click', handleClose, true)
const selectedOpt = computed(() => { const selectedOpt = computed(() => {
return options.value.find((o) => o.value === vModel.value || o.value === vModel.value?.trim()) return options.value.find((o) => o.value === vModel.value || o.value === vModel.value?.toString()?.trim())
}) })
const onFocus = () => { const onFocus = () => {

10
packages/nc-gui/components/smartsheet/expanded-form/index.vue

@ -483,12 +483,14 @@ const isReadOnlyVirtualCell = (column: ColumnType) => {
watch([expandedFormScrollWrapper, isLoading], () => { watch([expandedFormScrollWrapper, isLoading], () => {
if (isMobileMode.value) return if (isMobileMode.value) return
if (expandedFormScrollWrapper.value && !isLoading.value) { const expandedFormScrollWrapperEl = expandedFormScrollWrapper.value
const height = expandedFormScrollWrapper.value.scrollHeight
expandedFormScrollWrapper.value.scrollTop = height if (expandedFormScrollWrapperEl && !isLoading.value) {
const height = expandedFormScrollWrapperEl.scrollHeight
expandedFormScrollWrapperEl.scrollTop = height
setTimeout(() => { setTimeout(() => {
expandedFormScrollWrapper.value.scrollTop = 0 expandedFormScrollWrapperEl.scrollTop = 0
}, 125) }, 125)
} }
}) })

4
packages/nc-gui/components/smartsheet/toolbar/FieldsMenu.vue

@ -387,7 +387,7 @@ useMenuCloseOnEsc(open)
<template #default>{{ field.title }}</template> <template #default>{{ field.title }}</template>
</NcTooltip> </NcTooltip>
<NcSwitch v-e="['a:fields:show-hide']" :checked="field.show" :disabled="field.isViewEssentialField" /> <NcSwitch :checked="field.show" :disabled="field.isViewEssentialField" @change="$t('a:fields:show-hide')" />
</div> </div>
<div class="flex-1" /> <div class="flex-1" />
@ -411,7 +411,7 @@ useMenuCloseOnEsc(open)
<template #default>{{ filteredFieldList[0].title }}</template> <template #default>{{ filteredFieldList[0].title }}</template>
</NcTooltip> </NcTooltip>
<NcSwitch v-e="['a:fields:show-hide']" :checked="true" :disabled="true" /> <NcSwitch :checked="true" :disabled="true" />
</div> </div>
</template> </template>
</Draggable> </Draggable>

3
packages/nc-gui/components/smartsheet/toolbar/FilterInput.vue

@ -48,7 +48,8 @@ import Text from '~/components/cell/Text.vue'
import User from '~/components/cell/User.vue' import User from '~/components/cell/User.vue'
interface Props { interface Props {
column: ColumnType // column could be possibly undefined when the filter is created
column?: ColumnType
filter: Filter filter: Filter
} }

8
packages/nc-gui/components/smartsheet/toolbar/ViewActionMenu.vue

@ -142,7 +142,12 @@ const onDelete = async () => {
</script> </script>
<template> <template>
<NcMenu class="!min-w-70" data-id="toolbar-actions" :data-testid="`view-sidebar-view-actions-${view!.alias || view!.title}`"> <NcMenu
v-if="view"
class="!min-w-70"
data-id="toolbar-actions"
:data-testid="`view-sidebar-view-actions-${view!.alias || view!.title}`"
>
<NcTooltip> <NcTooltip>
<template #title> {{ $t('labels.clickToCopyViewID') }} </template> <template #title> {{ $t('labels.clickToCopyViewID') }} </template>
<div class="flex items-center justify-between py-2 px-3 cursor-pointer hover:bg-gray-100 group" @click="onViewIdCopy"> <div class="flex items-center justify-between py-2 px-3 cursor-pointer hover:bg-gray-100 group" @click="onViewIdCopy">
@ -314,6 +319,7 @@ const onDelete = async () => {
/> />
</template> </template>
</NcMenu> </NcMenu>
<span v-else></span>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>

2
packages/nc-gui/components/workspace/CollaboratorsList.vue

@ -67,7 +67,7 @@ onMounted(async () => {
</div> </div>
<WorkspaceInviteSection v-if="workspaceRole !== WorkspaceUserRoles.VIEWER" /> <WorkspaceInviteSection v-if="workspaceRole !== WorkspaceUserRoles.VIEWER" />
<div v-if="!filterCollaborators?.length" class="w-full h-full flex flex-col items-center justify-center mt-36"> <div v-if="!filterCollaborators?.length" class="w-full h-full flex flex-col items-center justify-center mt-36">
<Empty description="No members found" /> <a-empty description="No members found" />
</div> </div>
<div v-else class="nc-collaborators-list mt-6 h-full"> <div v-else class="nc-collaborators-list mt-6 h-full">
<div class="flex flex-col rounded-lg overflow-hidden border-1 max-w-350 max-h-[calc(100%-8rem)]"> <div class="flex flex-col rounded-lg overflow-hidden border-1 max-w-350 max-h-[calc(100%-8rem)]">

37
packages/nc-gui/store/bases.ts

@ -92,25 +92,32 @@ export const useBases = defineStore('basesStore', () => {
const loadProjects = async (page: 'recent' | 'shared' | 'starred' | 'workspace' = 'recent') => { const loadProjects = async (page: 'recent' | 'shared' | 'starred' | 'workspace' = 'recent') => {
// if shared base then get the shared base and create a list // if shared base then get the shared base and create a list
if (route.value.params.typeOrId === 'base' && route.value.params.baseId) { if (route.value.params.typeOrId === 'base' && route.value.params.baseId) {
const { base_id } = await $api.public.sharedBaseGet(route.value.params.baseId as string) try {
const base: BaseType = await $api.base.read(base_id) const { base_id } = await $api.public.sharedBaseGet(route.value.params.baseId as string)
const base: BaseType = await $api.base.read(base_id)
if (!base) return if (!base) return
bases.value = [base].reduce((acc, base) => { bases.value = [base].reduce((acc, base) => {
acc.set(base.id!, base) acc.set(base.id!, base)
return acc return acc
}, new Map()) }, new Map())
bases.value.set(base.id!, { bases.value.set(base.id!, {
...(bases.value.get(base.id!) || {}), ...(bases.value.get(base.id!) || {}),
...base, ...base,
sources: [...(base.sources ?? bases.value.get(base.id!)?.sources ?? [])], sources: [...(base.sources ?? bases.value.get(base.id!)?.sources ?? [])],
isExpanded: route.value.params.baseId === base.id || bases.value.get(base.id!)?.isExpanded, isExpanded: route.value.params.baseId === base.id || bases.value.get(base.id!)?.isExpanded,
isLoading: false, isLoading: false,
}) })
return return
} catch (e: any) {
if (e?.response?.status === 404) {
return router.push('/error/404')
}
throw e
}
} }
const activeWorkspace = workspaceStore.activeWorkspace const activeWorkspace = workspaceStore.activeWorkspace

Loading…
Cancel
Save