Ensure that the "Save results" button should be disabled when there are no rows.

refs #6131
This commit is contained in:
Aditya Toshniwal 2022-04-28 18:01:54 +05:30 committed by Akshay Joshi
parent bd799ea51a
commit 38f642d361
2 changed files with 10 additions and 3 deletions

View File

@ -1206,7 +1206,7 @@ export function ResultSet() {
<EmptyPanelMessage text={gettext('No data output. Execute a query to get output.')}/>
}
{queryData && <>
<ResultSetToolbar containerRef={containerRef} canEdit={queryData.can_edit}/>
<ResultSetToolbar containerRef={containerRef} canEdit={queryData.can_edit} totalRowCount={queryData?.rows_affected}/>
<Box flexGrow="1" minHeight="0">
<QueryToolDataGrid
columns={columns}

View File

@ -37,7 +37,7 @@ const useStyles = makeStyles((theme)=>({
},
}));
export function ResultSetToolbar({containerRef, canEdit}) {
export function ResultSetToolbar({containerRef, canEdit, totalRowCount}) {
const classes = useStyles();
const eventBus = useContext(QueryToolEventsContext);
const queryToolCtx = useContext(QueryToolContext);
@ -46,6 +46,7 @@ export function ResultSetToolbar({containerRef, canEdit}) {
'save-data': true,
'delete-rows': true,
'copy-rows': true,
'save-result': true,
});
const [menuOpenId, setMenuOpenId] = React.useState(null);
const [checkedMenuItems, setCheckedMenuItems] = React.useState({});
@ -109,6 +110,10 @@ export function ResultSetToolbar({containerRef, canEdit}) {
});
}, []);
useEffect(()=>{
setDisableButton('save-result', (totalRowCount||0) < 1);
}, [totalRowCount]);
useEffect(()=>{
eventBus.registerListener(QUERY_TOOL_EVENTS.TRIGGER_COPY_DATA, copyData);
return ()=>eventBus.deregisterListener(QUERY_TOOL_EVENTS.TRIGGER_COPY_DATA, copyData);
@ -150,7 +155,8 @@ export function ResultSetToolbar({containerRef, canEdit}) {
</PgButtonGroup>
<PgButtonGroup size="small">
<PgIconButton title={gettext('Save results to file')} icon={<GetAppRoundedIcon />}
onClick={downloadResult} shortcut={queryToolPref.download_results}/>
onClick={downloadResult} shortcut={queryToolPref.download_results}
disabled={buttonsDisabled['save-result']} />
</PgButtonGroup>
</Box>
<PgMenu
@ -167,4 +173,5 @@ export function ResultSetToolbar({containerRef, canEdit}) {
ResultSetToolbar.propTypes = {
containerRef: CustomPropTypes.ref,
canEdit: PropTypes.bool,
totalRowCount: PropTypes.number,
};