@@ -39,6 +39,7 @@ import BeforeUnload from './BeforeUnload';
3939import { isMac } from '../../../../../../static/js/keyboard_shortcuts' ;
4040import DownloadUtils from '../../../../../../static/js/DownloadUtils' ;
4141import { getToolData } from '../../../../../../settings/static/ApplicationStateProvider' ;
42+ import { connectServerModal , connectServer } from '../../../../../sqleditor/static/js/components/connectServer' ;
4243
4344/* Custom react-diagram action for keyboard events */
4445export class KeyboardShortcutAction extends Action {
@@ -348,10 +349,12 @@ export default class ERDTool extends React.Component {
348349 } ) ;
349350
350351 let done = await this . initConnection ( ) ;
351- if ( ! done ) return ;
352+ if ( ! done && ! this . props . params . sql_id ) return ;
352353
353- done = await this . loadPrequisiteData ( ) ;
354- if ( ! done ) return ;
354+ if ( done ) {
355+ done = await this . loadPrequisiteData ( ) ;
356+ if ( ! done && ! this . props . params . sql_id ) return ;
357+ }
355358
356359
357360 if ( this . props . params . sql_id ) {
@@ -361,7 +364,7 @@ export default class ERDTool extends React.Component {
361364 this . diagram . clearSelection ( ) ;
362365 this . registerModelEvents ( ) ;
363366 this . setState ( { dirty : true } ) ;
364- this . eventBus . fireEvent ( ERD_EVENTS . DIRTY , true , this . serializeFile ( ) ) ;
367+ this . eventBus . fireEvent ( ERD_EVENTS . DIRTY , true , sqlValue ) ;
365368 }
366369 }
367370 else if ( this . props . params . gen ) {
@@ -597,6 +600,7 @@ export default class ERDTool extends React.Component {
597600 current_file : fileName ,
598601 dirty : false ,
599602 } ) ;
603+ this . eventBus . fireEvent ( ERD_EVENTS . DIRTY , true , res . data ) ;
600604 this . eventBus . fireEvent ( ERD_EVENTS . DIRTY , false ) ;
601605 this . setTitle ( fileName ) ;
602606 this . diagram . deserialize ( res . data ) ;
@@ -857,7 +861,12 @@ export default class ERDTool extends React.Component {
857861 } ) ;
858862
859863 try {
860- let response = await this . apiObj . post ( initUrl ) ;
864+ let response = await this . apiObj . post (
865+ initUrl ,
866+ { server_name : this . props . params . server_name ,
867+ server_type : this . props . params . server_type ,
868+ user : this . props . params . user ,
869+ db_name : this . props . params . db_name } ) ;
861870 this . setState ( {
862871 conn_status : CONNECT_STATUS . CONNECTED ,
863872 server_version : response . data . data . serverVersion ,
@@ -866,7 +875,16 @@ export default class ERDTool extends React.Component {
866875 return true ;
867876 } catch ( error ) {
868877 this . setState ( { conn_status : CONNECT_STATUS . FAILED } ) ;
869- this . handleAxiosCatch ( error ) ;
878+
879+ connectServerModal ( this . context , error . response ?. data ?. result , async ( passwordData ) => {
880+ await connectServer ( this . apiObj , this . context , this . props . params . sid , this . props . params . sid , passwordData , async ( ) => {
881+ await this . initConnection ( ) ;
882+ await this . loadPrequisiteData ( ) ;
883+ } ) ;
884+ } , ( ) => {
885+ this . setState ( { conn_status : CONNECT_STATUS . FAILED } ) ;
886+ } ) ;
887+
870888 return false ;
871889 } finally {
872890 this . setLoading ( null ) ;
@@ -975,6 +993,9 @@ ERDTool.propTypes = {
975993 fgcolor : PropTypes . string ,
976994 gen : PropTypes . bool . isRequired ,
977995 sql_id : PropTypes . string ,
996+ server_name : PropTypes . string ,
997+ user : PropTypes . string ,
998+ db_name : PropTypes . string ,
978999 } ) ,
9791000 pgWindow : PropTypes . object . isRequired ,
9801001 pgAdmin : PropTypes . object . isRequired ,
0 commit comments