From 44d40f0785e87e7fc8c1ed84b5f369ba8c26bbc4 Mon Sep 17 00:00:00 2001 From: Aditya Toshniwal Date: Mon, 24 Jun 2024 10:31:47 +0530 Subject: [PATCH] Fixed an issue where delete button in Users data was enabled for incorrect rows. #7616 --- docs/en_US/release_notes_8_9.rst | 3 ++- web/pgadmin/static/js/SchemaView/DataGridView.jsx | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/en_US/release_notes_8_9.rst b/docs/en_US/release_notes_8_9.rst index b8359331c..10948ac39 100644 --- a/docs/en_US/release_notes_8_9.rst +++ b/docs/en_US/release_notes_8_9.rst @@ -45,4 +45,5 @@ Bug fixes | `Issue #7542 `_ - Fixed incorrect sorting of size in statistics tab. | `Issue #7555 `_ - Fixed an issue where query tool shortcuts for find/replace are not working. | `Issue #7556 `_ - Fixed migration failure while using external database. - | `Issue #7593 `_ - Fixed an issue where query tool auto-complete stops working after connection change. \ No newline at end of file + | `Issue #7593 `_ - Fixed an issue where query tool auto-complete stops working after connection change. + | `Issue #7616 `_ - Fixed an issue where delete button in Users data was enabled for incorrect rows. \ No newline at end of file diff --git a/web/pgadmin/static/js/SchemaView/DataGridView.jsx b/web/pgadmin/static/js/SchemaView/DataGridView.jsx index 2c704c218..236770030 100644 --- a/web/pgadmin/static/js/SchemaView/DataGridView.jsx +++ b/web/pgadmin/static/js/SchemaView/DataGridView.jsx @@ -139,7 +139,7 @@ function DataTableRow({index, row, totalRows, isResizing, isHovered, schema, sch * If table data changes, then react-table re-renders the complete tables * We can avoid re-render by if row data is not changed */ - let depsMap = _.values(row.original, Object.keys(row.original).filter((k)=>!k.startsWith('btn'))); + let depsMap = [JSON.stringify(row.original)]; const externalDeps = useMemo(()=>{ let retVal = []; /* Calculate the fields which depends on the current field @@ -241,7 +241,7 @@ function DataTableRow({index, row, totalRows, isResizing, isHovered, schema, sch drop(rowRef); return useMemo(()=> - + {row.getVisibleCells().map((cell) => { let {modeSupported} = cell.column.field ? getFieldMetaData(cell.column.field, schemaRef.current, {}, viewHelperProps) : {modeSupported: true}; @@ -347,7 +347,7 @@ export default function DataGridView({ cell: ({row})=>{ let canEditRow = true; if(props.canEditRow) { - canEditRow = evalFunc(schemaRef.current, props.canEditRow, row || {}); + canEditRow = evalFunc(schemaRef.current, props.canEditRow, row.original || {}); } return } className='DataGridView-gridRowButton' onClick={()=>{ @@ -376,7 +376,7 @@ export default function DataGridView({ cell: ({row}) => { let canDeleteRow = true; if(props.canDeleteRow) { - canDeleteRow = evalFunc(schemaRef.current, props.canDeleteRow, row || {}); + canDeleteRow = evalFunc(schemaRef.current, props.canDeleteRow, row.original || {}); } return ( @@ -392,7 +392,7 @@ export default function DataGridView({ }; if (props.onDelete){ - props.onDelete(row || {}, deleteRow); + props.onDelete(row.original || {}, deleteRow); } else { pgAdmin.Browser.notifier.confirm( props.customDeleteTitle || gettext('Delete Row'),