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}`
           }
         })
       },

Reply via email to