This is an automated email from the ASF dual-hosted git repository.
lauraxia pushed a commit to branch antdUI-gravitino-base1.1.0
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/antdUI-gravitino-base1.1.0 by
this push:
new 6f2debfaae [#9614][#9628][#9633][#9634] fix list tags issue, edit
table issues
6f2debfaae is described below
commit 6f2debfaae86be8c9bb4546c23fc77e655e8d6c4
Author: Qian Xia <[email protected]>
AuthorDate: Tue Jan 6 19:13:21 2026 +0800
[#9614][#9628][#9633][#9634] fix list tags issue, edit table issues
---
.../app/catalogs/rightContent/CreateTableDialog.js | 28 ++++++++++++----------
.../entitiesContent/CatalogDetailsPage.js | 14 ++++-------
.../rightContent/entitiesContent/CatalogsPage.js | 5 +---
.../entitiesContent/FilesetDetailsPage.js | 2 --
.../entitiesContent/ModelDetailsPage.js | 2 --
.../entitiesContent/SchemaDetailsPage.js | 14 +++--------
.../entitiesContent/TableDetailsPage.js | 6 +----
.../entitiesContent/TopicDetailsPage.js | 2 --
web/web/src/components/ColumnTypeComponent.js | 22 ++++++++---------
web/web/src/components/CustomTags.js | 17 +++++++------
web/web/src/components/PolicyTag.js | 17 +++++++------
.../src/components/SpecialColumnTypeComponent.js | 2 +-
web/web/src/lib/store/metalakes/index.js | 5 ++--
13 files changed, 60 insertions(+), 76 deletions(-)
diff --git a/web/web/src/app/catalogs/rightContent/CreateTableDialog.js
b/web/web/src/app/catalogs/rightContent/CreateTableDialog.js
index f46a0ab50b..44e5b7ce57 100644
--- a/web/web/src/app/catalogs/rightContent/CreateTableDialog.js
+++ b/web/web/src/app/catalogs/rightContent/CreateTableDialog.js
@@ -297,7 +297,7 @@ export default function CreateTableDialog({ ...props }) {
form.setFieldValue(['columns', key, 'comment'],
table.columns[key].comment || '')
form.setFieldValue(['columns', key, 'isEdit'], true)
if (typeof table.columns[key].type === 'string') {
- form.setFieldValue(['columns', key, 'typeObj', 'type'],
table.columns[key].type)
+ form.setFieldValue(['columns', key, 'typeObj', 'type'],
capitalizeFirstLetter(table.columns[key].type))
} else {
const type = table.columns[key].type.type
const elementType = table.columns[key].type?.elementType
@@ -308,7 +308,7 @@ export default function CreateTableDialog({ ...props }) {
form.setFieldValue(['columns', key, 'typeObj'], {
type: table.columns[key].type?.type,
element: {
- type: typeof elementType === 'string' ? elementType :
elementType.type,
+ type: typeof elementType === 'string' ?
capitalizeFirstLetter(elementType) : capitalizeFirstLetter(elementType.type),
required: !table.columns[key].type?.containsNull,
...getElementType(table.columns[key].type?.elementType)
}
@@ -318,12 +318,12 @@ export default function CreateTableDialog({ ...props }) {
form.setFieldValue(['columns', key, 'typeObj'], {
type: table.columns[key].type?.type,
keyObj: {
- type: typeof keyType === 'string' ? keyType :
keyType.type,
+ type: typeof keyType === 'string' ?
capitalizeFirstLetter(keyType) : capitalizeFirstLetter(keyType.type),
required: true,
...getElementType(table.columns[key].type?.keyType)
},
valueObj: {
- type: typeof valueType === 'string' ? valueType :
valueType.type,
+ type: typeof valueType === 'string' ?
capitalizeFirstLetter(valueType) : capitalizeFirstLetter(valueType.type),
required: !table.columns[key].type?.valueContainsNull,
...getElementType(table.columns[key].type?.valueType)
}
@@ -337,7 +337,7 @@ export default function CreateTableDialog({ ...props }) {
id: col.name,
name: col.name,
typeObj: {
- type: typeof col.type === 'string' ? col.type :
col.type.type,
+ type: typeof col.type === 'string' ?
capitalizeFirstLetter(col.type) : capitalizeFirstLetter(col.type.type),
...getElementType(col.type)
},
required: !col.nullable,
@@ -352,7 +352,7 @@ export default function CreateTableDialog({ ...props }) {
types: table.columns[key].type?.types.map(type => {
return {
typeObj: {
- type: typeof type === 'string' ? type : type.type,
+ type: typeof type === 'string' ?
capitalizeFirstLetter(type) : capitalizeFirstLetter(type.type),
...getElementType(type)
}
}
@@ -360,7 +360,7 @@ export default function CreateTableDialog({ ...props }) {
})
break
default:
- form.setFieldValue(['columns', key, 'typeObj', 'type'],
table.columns[key].type)
+ form.setFieldValue(['columns', key, 'typeObj', 'type'],
capitalizeFirstLetter(table.columns[key].type))
}
}
if (table.columns[key].defaultValue) {
@@ -405,17 +405,19 @@ export default function CreateTableDialog({ ...props }) {
table.indexes.forEach(item => {
const fields = item.fieldNames.map(f => f[0])
form.setFieldValue(['indexes', idxIndex, 'name'], item.name)
- form.setFieldValue(['indexes', idxIndex, 'indexType'],
item.indexType)
+ form.setFieldValue(['indexes', idxIndex, 'indexType'],
capitalizeFirstLetter(item.indexType))
form.setFieldValue(['indexes', idxIndex, 'fieldName'], fields)
idxIndex++
})
}
let idxProperty = 0
- Object.entries(table.properties || {}).forEach(([key, value]) => {
- form.setFieldValue(['properties', idxProperty, 'key'], key)
- form.setFieldValue(['properties', idxProperty, 'value'], value)
- idxProperty++
- })
+ if (table.properties && Object.keys(table.properties).length) {
+ Object.entries(table.properties).forEach(([key, value]) => {
+ form.setFieldValue(['properties', idxProperty, 'key'], key)
+ form.setFieldValue(['properties', idxProperty, 'value'], value)
+ idxProperty++
+ })
+ }
handScroll()
setIsLoading(false)
} catch (e) {
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogDetailsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogDetailsPage.js
index b7ddb3459e..4fdfa1971e 100644
---
a/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogDetailsPage.js
+++
b/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogDetailsPage.js
@@ -147,7 +147,6 @@ export default function CatalogDetailsPage() {
<div>
<Tags
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'catalog'}
metadataObjectFullName={store.activatedDetails?.name || catalog}
key={`catalog-${store.activatedDetails?.name || catalog}-tags`}
@@ -159,7 +158,6 @@ export default function CatalogDetailsPage() {
<div>
<Policies
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'catalog'}
metadataObjectFullName={store.activatedDetails?.name || catalog}
key={`catalog-${store.activatedDetails?.name || catalog}-policies`}
@@ -294,10 +292,9 @@ export default function CatalogDetailsPage() {
render: (_, record) =>
record?.node === 'schema' ? (
<Tags
- metalake={currentMetalake}
metadataObjectType={'schema'}
- metadataObjectFullName={`${catalog}.${record.name}`}
- key={`schema-${catalog}.${record.name}-tags`}
+
metadataObjectFullName={`${record.namespace.at(-1)}.${record.name}`}
+ key={`schema-${record.namespace.at(-1)}.${record.name}-tags`}
/>
) : null
},
@@ -309,10 +306,9 @@ export default function CatalogDetailsPage() {
render: (_, record) =>
record?.node === 'schema' ? (
<Policies
- metalake={currentMetalake}
metadataObjectType={'schema'}
- metadataObjectFullName={`${catalog}.${record.name}`}
- key={`schema-${catalog}.${record.name}-policies`}
+
metadataObjectFullName={`${record.namespace.at(-1)}.${record.name}`}
+ key={`schema-${record.namespace.at(-1)}.${record.name}-policies`}
/>
) : null
},
@@ -375,7 +371,7 @@ export default function CatalogDetailsPage() {
]
: [])
],
- [currentMetalake, catalogType, catalog, anthEnable]
+ [catalogType, anthEnable]
)
const { resizableColumns, components, tableWidth } = useAntdColumnResize(()
=> {
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogsPage.js
index 53e8f5769f..e019769b4a 100644
--- a/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogsPage.js
+++ b/web/web/src/app/catalogs/rightContent/entitiesContent/CatalogsPage.js
@@ -225,7 +225,6 @@ export default function CatalogsPage() {
render: (_, record) =>
record?.node === 'catalog' ? (
<Tags
- metalake={currentMetalake}
metadataObjectType={'catalog'}
metadataObjectFullName={record.name}
key={`catalog-${record.name}-tags`}
@@ -240,10 +239,8 @@ export default function CatalogsPage() {
render: (_, record) =>
record?.node === 'catalog' ? (
<Policies
- metalake={currentMetalake}
metadataObjectType={'catalog'}
metadataObjectFullName={record.name}
- isLoading={store.tableLoading}
key={`catalog-${record.name}-policies`}
/>
) : null
@@ -318,7 +315,7 @@ export default function CatalogsPage() {
}
}
],
- [currentMetalake, catalogType, anthEnable, store.tableLoading,
store.tableData]
+ [catalogType, anthEnable, store.tableLoading, store.tableData]
)
const { resizableColumns, components, tableWidth } = useAntdColumnResize(()
=> {
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/FilesetDetailsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/FilesetDetailsPage.js
index 50d5de49e3..e34d97f9bf 100644
---
a/web/web/src/app/catalogs/rightContent/entitiesContent/FilesetDetailsPage.js
+++
b/web/web/src/app/catalogs/rightContent/entitiesContent/FilesetDetailsPage.js
@@ -93,7 +93,6 @@ export default function FilesetDetailsPage({ ...props }) {
<div>
<Tags
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'fileset'}
metadataObjectFullName={`${catalog}.${schema}.${fileset}`}
/>
@@ -104,7 +103,6 @@ export default function FilesetDetailsPage({ ...props }) {
<div>
<Policies
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'fileset'}
metadataObjectFullName={`${catalog}.${schema}.${fileset}`}
/>
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/ModelDetailsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/ModelDetailsPage.js
index fab49e67cc..e72bb8db9a 100644
--- a/web/web/src/app/catalogs/rightContent/entitiesContent/ModelDetailsPage.js
+++ b/web/web/src/app/catalogs/rightContent/entitiesContent/ModelDetailsPage.js
@@ -120,7 +120,6 @@ export default function ModelDetailsPage({ ...props }) {
<div>
<Tags
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'model'}
metadataObjectFullName={`${catalog}.${schema}.${model}`}
/>
@@ -131,7 +130,6 @@ export default function ModelDetailsPage({ ...props }) {
<div>
<Policies
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'model'}
metadataObjectFullName={`${catalog}.${schema}.${model}`}
/>
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/SchemaDetailsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/SchemaDetailsPage.js
index 6b64ee5228..f4bdf03ed0 100644
--- a/web/web/src/app/catalogs/rightContent/entitiesContent/SchemaDetailsPage.js
+++ b/web/web/src/app/catalogs/rightContent/entitiesContent/SchemaDetailsPage.js
@@ -204,7 +204,6 @@ export default function SchemaDetailsPage() {
<div>
<Tags
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'schema'}
metadataObjectFullName={`${catalog}.${schema}`}
/>
@@ -215,7 +214,6 @@ export default function SchemaDetailsPage() {
<div>
<Policies
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'schema'}
metadataObjectFullName={`${catalog}.${schema}`}
/>
@@ -419,9 +417,8 @@ export default function SchemaDetailsPage() {
render: (_, record) =>
record?.node === entityType ? (
<Tags
- metalake={currentMetalake}
metadataObjectType={entityType}
- metadataObjectFullName={`${catalog}.${schema}.${record.name}`}
+
metadataObjectFullName={`${record.namespace.at(-2)}.${record.namespace.at(-1)}.${record.name}`}
/>
) : null
},
@@ -432,9 +429,8 @@ export default function SchemaDetailsPage() {
render: (_, record) =>
record?.node === entityType ? (
<Policies
- metalake={currentMetalake}
metadataObjectType={entityType}
- metadataObjectFullName={`${catalog}.${schema}.${record.name}`}
+
metadataObjectFullName={`${record.namespace.at(-2)}.${record.namespace.at(-1)}.${record.name}`}
/>
) : null
},
@@ -451,17 +447,13 @@ export default function SchemaDetailsPage() {
anthEnable={anthEnable}
handleEdit={() => handleEdit(record.name)}
showDeleteConfirm={modal => showDeleteConfirm(modal, record,
entityType)}
- handleSetOwner={() => handleSetOwner(catalogType,
`${catalog}.${schema}.${record.name}`)}
+ handleSetOwner={() => handleSetOwner(catalogType,
`${record.namespace.at(-2)}.${record.namespace.at(-1)}.${record.name}`)}
/>
)
}
],
[
nameCol,
- catalog,
- schema,
- catalogType,
- currentMetalake,
entityType,
store.tableLoading,
anthEnable,
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/TableDetailsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/TableDetailsPage.js
index 843e1513ad..14cf3d7c24 100644
--- a/web/web/src/app/catalogs/rightContent/entitiesContent/TableDetailsPage.js
+++ b/web/web/src/app/catalogs/rightContent/entitiesContent/TableDetailsPage.js
@@ -130,7 +130,6 @@ export default function TableDetailsPage({ ...props }) {
<div>
<Tags
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'table'}
metadataObjectFullName={`${catalog}.${schema}.${table}`}
/>
@@ -141,7 +140,6 @@ export default function TableDetailsPage({ ...props }) {
<div>
<Policies
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'table'}
metadataObjectFullName={`${catalog}.${schema}.${table}`}
/>
@@ -432,7 +430,6 @@ export default function TableDetailsPage({ ...props }) {
render: (_, record) =>
!record?.node ? (
<Tags
- metalake={currentMetalake}
metadataObjectType={'column'}
metadataObjectFullName={`${catalog}.${schema}.${table}.${record.name}`}
/>
@@ -445,14 +442,13 @@ export default function TableDetailsPage({ ...props }) {
render: (_, record) =>
!record?.node ? (
<Policies
- metalake={currentMetalake}
metadataObjectType={'column'}
metadataObjectFullName={`${catalog}.${schema}.${table}.${record.name}`}
/>
) : null
}
],
- [currentMetalake, store.activatedDetails]
+ [store.activatedDetails]
)
const { resizableColumns, components, tableWidth } = useAntdColumnResize(()
=> {
diff --git
a/web/web/src/app/catalogs/rightContent/entitiesContent/TopicDetailsPage.js
b/web/web/src/app/catalogs/rightContent/entitiesContent/TopicDetailsPage.js
index a22259dfb1..c6264fd6c4 100644
--- a/web/web/src/app/catalogs/rightContent/entitiesContent/TopicDetailsPage.js
+++ b/web/web/src/app/catalogs/rightContent/entitiesContent/TopicDetailsPage.js
@@ -79,7 +79,6 @@ export default function TopicDetailsPage({ ...props }) {
<div>
<Tags
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'topic'}
metadataObjectFullName={`${catalog}.${schema}.${topic}`}
/>
@@ -90,7 +89,6 @@ export default function TopicDetailsPage({ ...props }) {
<div>
<Policies
readOnly={true}
- metalake={currentMetalake}
metadataObjectType={'topic'}
metadataObjectFullName={`${catalog}.${schema}.${topic}`}
/>
diff --git a/web/web/src/components/ColumnTypeComponent.js
b/web/web/src/components/ColumnTypeComponent.js
index fcb61507f0..d3c54a72da 100644
--- a/web/web/src/components/ColumnTypeComponent.js
+++ b/web/web/src/components/ColumnTypeComponent.js
@@ -83,7 +83,7 @@ export default function ColumnTypeComponent({ ...props }) {
setIsShowParamsInput(false)
setErrorMsg('')
const currentTypeParam = extractNumbersInParentheses(currentType)
- const value = currentType?.replace(/\([^)]*\)/g, '')
+ const value = currentType?.replace(/\([^)]*\)/g, '')?.toLowerCase()
if (currentTypeParam && !paramL && ColumnWithParamType.includes(value)) {
setParamL(currentTypeParam)
}
@@ -95,29 +95,29 @@ export default function ColumnTypeComponent({ ...props }) {
if (ColumnWithParamType.includes(value)) {
form.setFieldValue(
[...parentField, subField.name, 'typeObj', ...columnNamespace,
'type'],
- value + `(${paramL || currentTypeParam})`
+ capitalizeFirstLetter(value) + `(${paramL || currentTypeParam})`
)
if (!paramL && !currentTypeParam) {
- setErrorMsg(t('common.missL'))
+ setErrorMsg('L is missing')
}
}
if (value === 'decimal') {
form.setFieldValue(
[...parentField, subField.name, 'typeObj', ...columnNamespace,
'type'],
- value + `(${paramP || currentTypeParam1 || ''},${paramS ||
currentTypeParam2 || ''})`
+ capitalizeFirstLetter(value) + `(${paramP || currentTypeParam1 ||
''},${paramS || currentTypeParam2 || ''})`
)
const errors = []
if (!paramP && !currentTypeParam1) {
- errors.push(t('common.missP'))
+ errors.push('P is missing')
}
if (!paramS && !currentTypeParam2) {
- errors.push(t('common.missS'))
+ errors.push('S is missing')
}
if (paramP && +paramP > 38) {
- errors.push(t('common.errorP'))
+ errors.push('P can not > 38')
}
if (paramS && +paramP < +paramS) {
- errors.push(t('common.errorS'))
+ errors.push('P can not < S')
}
if (errors.length) {
setErrorMsg(errors.join(', '))
@@ -149,7 +149,7 @@ export default function ColumnTypeComponent({ ...props }) {
() => ({
validator(_, type) {
if (!type) {
- return Promise.reject(new
Error(t('table.columnTypeRequired')))
+ return Promise.reject(new Error('The column type is
required!'))
}
return Promise.resolve()
@@ -195,7 +195,7 @@ export default function ColumnTypeComponent({ ...props }) {
cancelText='Cancel'
></Popconfirm>
- {currentType && ColumnSpesicalType.includes(currentType) && (
+ {currentType && ColumnSpesicalType.includes(currentType.toLowerCase())
&& (
<Button type='link' className='ml-1 h-min p-0'
onClick={editSpecialColumnType}>
Edit
</Button>
@@ -216,7 +216,7 @@ export default function ColumnTypeComponent({ ...props }) {
</div>
)}
{typeof currentType === 'string' &&
- currentType?.replace(/\([^)]*\)/g, '') === 'decimal' &&
+ currentType?.replace(/\([^)]*\)/g, '').toLowerCase() === 'decimal' &&
isShowParamsInput && (
<>
<div className='ml-1 border-b
focus-within:border-[color:theme(colors.defaultPrimary)]'>
diff --git a/web/web/src/components/CustomTags.js
b/web/web/src/components/CustomTags.js
index 11f15b9120..84d8f87f37 100644
--- a/web/web/src/components/CustomTags.js
+++ b/web/web/src/components/CustomTags.js
@@ -26,6 +26,7 @@ import { Flex, Select, Space, Tag, Tooltip, theme } from
'antd'
import { useAppSelector, useAppDispatch } from '@/lib/hooks/useStore'
import { associateTag } from '@/lib/store/tags'
import { getCurrentEntityTags } from '@/lib/store/metalakes'
+import { useSearchParams } from 'next/navigation'
const tagInputStyle = {
width: 100,
@@ -35,7 +36,7 @@ const tagInputStyle = {
}
export default function Tags({ ...props }) {
- const { readOnly, metalake, metadataObjectType, metadataObjectFullName } =
props
+ const { readOnly, metadataObjectType, metadataObjectFullName } = props
const { token } = theme.useToken()
const [inputVisible, setInputVisible] = useState(false)
const [optionList, setOptionList] = useState([])
@@ -44,10 +45,12 @@ export default function Tags({ ...props }) {
const store = useAppSelector(state => state.tags)
const dispatch = useAppDispatch()
const [tagsForEntity, setTagsForEntity] = useState([])
+ const searchParams = useSearchParams()
+ const currentMetalake = searchParams.get('metalake')
const getTagsForEntity = async () => {
const { payload } = await dispatch(
- getCurrentEntityTags({ metalake, metadataObjectType,
metadataObjectFullName, details: true })
+ getCurrentEntityTags({ metalake: currentMetalake, metadataObjectType,
metadataObjectFullName, details: true })
)
return payload?.tags || []
@@ -58,10 +61,10 @@ export default function Tags({ ...props }) {
const tags = await getTagsForEntity()
setTagsForEntity(tags)
}
- if (metalake && metadataObjectType && metadataObjectFullName) {
+ if (currentMetalake && metadataObjectType && metadataObjectFullName) {
initLoad()
}
- }, [metalake, metadataObjectType, metadataObjectFullName])
+ }, [metadataObjectType, metadataObjectFullName])
useEffect(() => {
if (inputVisible) {
@@ -101,7 +104,7 @@ export default function Tags({ ...props }) {
const handleChange = async value => {
if (value && !tagsForEntity?.map(tag => tag.name)?.includes(value)) {
await dispatch(
- associateTag({ metalake, metadataObjectType, metadataObjectFullName,
data: { tagsToAdd: [value] } })
+ associateTag({ metalake: currentMetalake, metadataObjectType,
metadataObjectFullName, data: { tagsToAdd: [value] } })
)
}
const tags = await getTagsForEntity()
@@ -111,7 +114,7 @@ export default function Tags({ ...props }) {
const handleClose = async removedTag => {
await dispatch(
- associateTag({ metalake, metadataObjectType, metadataObjectFullName,
data: { tagsToRemove: [removedTag] } })
+ associateTag({ metalake: currentMetalake, metadataObjectType,
metadataObjectFullName, data: { tagsToRemove: [removedTag] } })
)
const tags = await getTagsForEntity()
setTagsForEntity(tags)
@@ -122,7 +125,7 @@ export default function Tags({ ...props }) {
}
const handleClick = name => () => {
- router.push(`/metadataObjectsForTag?tag=${name}&metalake=${metalake}`)
+
router.push(`/metadataObjectsForTag?tag=${name}&metalake=${currentMetalake}`)
}
const tagPlusStyle = {
diff --git a/web/web/src/components/PolicyTag.js
b/web/web/src/components/PolicyTag.js
index 88dd97b7ca..70df653dc2 100644
--- a/web/web/src/components/PolicyTag.js
+++ b/web/web/src/components/PolicyTag.js
@@ -25,6 +25,7 @@ import { cn } from '@/lib/utils/tailwind'
import { useAppSelector, useAppDispatch } from '@/lib/hooks/useStore'
import { associatePolicy } from '@/lib/store/policies'
import { getCurrentEntityPolicies } from '@/lib/store/metalakes'
+import { useSearchParams } from 'next/navigation'
const tagInputStyle = {
width: 100,
@@ -34,7 +35,7 @@ const tagInputStyle = {
}
export default function PolicyTag({ ...props }) {
- const { readOnly, metalake, metadataObjectType, metadataObjectFullName } =
props
+ const { readOnly, metadataObjectType, metadataObjectFullName } = props
const { token } = theme.useToken()
const [inputVisible, setInputVisible] = useState(false)
const [optionList, setOptionList] = useState([])
@@ -43,10 +44,12 @@ export default function PolicyTag({ ...props }) {
const store = useAppSelector(state => state.policies)
const dispatch = useAppDispatch()
const [policiesForEntity, setPoliciesForEntity] = useState([])
+ const searchParams = useSearchParams()
+ const currentMetalake = searchParams.get('metalake')
const getPoliciesForEntity = async () => {
const { payload } = await dispatch(
- getCurrentEntityPolicies({ metalake, metadataObjectType,
metadataObjectFullName, details: true })
+ getCurrentEntityPolicies({ metalake: currentMetalake,
metadataObjectType, metadataObjectFullName, details: true })
)
return payload?.policies || []
@@ -57,10 +60,10 @@ export default function PolicyTag({ ...props }) {
const policies = await getPoliciesForEntity()
setPoliciesForEntity(policies)
}
- if (metalake && metadataObjectType && metadataObjectFullName) {
+ if (currentMetalake && metadataObjectType && metadataObjectFullName) {
initLoad()
}
- }, [metalake, metadataObjectType, metadataObjectFullName])
+ }, [metadataObjectType, metadataObjectFullName])
useEffect(() => {
if (inputVisible) {
@@ -101,7 +104,7 @@ export default function PolicyTag({ ...props }) {
const handleChange = async value => {
if (value && !policiesForEntity?.map(policy =>
policy.name)?.includes(value)) {
await dispatch(
- associatePolicy({ metalake, metadataObjectType,
metadataObjectFullName, data: { policiesToAdd: [value] } })
+ associatePolicy({ metalake: currentMetalake, metadataObjectType,
metadataObjectFullName, data: { policiesToAdd: [value] } })
)
const policies = await getPoliciesForEntity()
setPoliciesForEntity(policies)
@@ -112,7 +115,7 @@ export default function PolicyTag({ ...props }) {
const handleClose = async removedPolicy => {
await dispatch(
associatePolicy({
- metalake,
+ metalake: currentMetalake,
metadataObjectType,
metadataObjectFullName,
data: { policiesToRemove: [removedPolicy] }
@@ -127,7 +130,7 @@ export default function PolicyTag({ ...props }) {
}
const handleClick = name => () => {
-
router.push(`/metadataObjectsForPolicy?policy=${name}&metalake=${metalake}`)
+
router.push(`/metadataObjectsForPolicy?policy=${name}&metalake=${currentMetalake}`)
}
const tagPlusStyle = {
diff --git a/web/web/src/components/SpecialColumnTypeComponent.js
b/web/web/src/components/SpecialColumnTypeComponent.js
index e81db03ff0..0f8024f3ff 100644
--- a/web/web/src/components/SpecialColumnTypeComponent.js
+++ b/web/web/src/components/SpecialColumnTypeComponent.js
@@ -27,7 +27,7 @@ import { cn } from '@/lib/utils/tailwind'
export default function SpecialColumnTypeComponent({ ...props }) {
const { form, parentField, subField, columnNamespace, isEdit, columnTypes,
provider } = props
- const currentType = Form.useWatch([...parentField, subField.name, 'typeObj',
...columnNamespace, 'type'], form)
+ const currentType = Form.useWatch([...parentField, subField.name, 'typeObj',
...columnNamespace, 'type'], form)?.toLowerCase()
const fieldColumns = Form.useWatch(
[...parentField, subField.name, 'typeObj', ...columnNamespace,
'fieldColumns'],
diff --git a/web/web/src/lib/store/metalakes/index.js
b/web/web/src/lib/store/metalakes/index.js
index ca311ae9f2..4c0924acee 100644
--- a/web/web/src/lib/store/metalakes/index.js
+++ b/web/web/src/lib/store/metalakes/index.js
@@ -935,11 +935,12 @@ export const getTableDetails = createAsyncThunk(
type: 'sortOrders',
icon: 'mdi:letter-s-circle',
items: sortOrders.map(i => {
+ const fields = i.sortTerm?.type === 'field' ? i.sortTerm.fieldName :
i.sortTerm?.funcArgs.find(f => f.fieldName)?.fieldName
return {
- fields: i.sortTerm.fieldName,
+ fields: fields,
dir: i.direction,
no: i.nullOrdering,
- text: `${i.sortTerm.fieldName[0]} ${i.direction} ${i.nullOrdering}`
+ text: `${fields[0]} ${i.direction} ${i.nullOrdering}`
}
})
},