diff --git a/web/pgadmin/tools/erd/static/js/erd_tool/components/ERDTool.jsx b/web/pgadmin/tools/erd/static/js/erd_tool/components/ERDTool.jsx index aff31c75c..3db38752a 100644 --- a/web/pgadmin/tools/erd/static/js/erd_tool/components/ERDTool.jsx +++ b/web/pgadmin/tools/erd/static/js/erd_tool/components/ERDTool.jsx @@ -298,7 +298,7 @@ export default class ERDTool extends React.Component { async componentDidMount() { this.setLoading(gettext('Preparing...')); this.registerEvents(); - + this.diagramContainerRef.current?.focus(); const erdPref = this.preferencesStore.getPreferencesForModule('erd'); this.setState({ preferences: erdPref, @@ -510,6 +510,10 @@ export default class ERDTool extends React.Component { this.diagram.getSelectedLinks().forEach((link)=>{ this.diagram.removeOneToManyLink(link); }); + if (this.diagram.getNodesData().length === 0){ + this.setState({dirty: false}); + this.eventBus.fireEvent(ERD_EVENTS.DIRTY, false); + } this.diagram.repaint(); }, () => {/*This is intentional (SonarQube)*/} @@ -577,7 +581,7 @@ export default class ERDTool extends React.Component { this.closeOnSave = closeOnSave; if(this.state.current_file && !isSaveAs) { this.saveFile(this.state.current_file); - } else { + } else if (this.diagram.getNodesData().length > 0){ { let params = { 'supported_types': ['*','pgerd'], 'dialog_type': 'create_file', @@ -586,6 +590,7 @@ export default class ERDTool extends React.Component { }; this.props.pgAdmin.Tools.FileManager.show(params, this.saveFile.bind(this), null, this.context); } + } } saveFile(fileName) { @@ -901,7 +906,7 @@ export default class ERDTool extends React.Component { /> -
{e.preventDefault();}}> +
{e.preventDefault();}} tabIndex={0}>