@@ -148,6 +148,7 @@ export default class ServerSchema extends BaseUISchema {
148148 host : '' ,
149149 port : 5432 ,
150150 db : 'postgres' ,
151+ db_alias : undefined ,
151152 username : current_user . name ,
152153 role : null ,
153154 connect_now : true ,
@@ -315,8 +316,17 @@ export default class ServerSchema extends BaseUISchema {
315316 }
316317 } , {
317318 id : 'db' , label : gettext ( 'Maintenance database' ) , type : 'text' , group : gettext ( 'Connection' ) ,
318- mode : [ 'properties' , 'edit' , 'create' ] , readonly : obj . isConnected , disabled : obj . isShared ,
319- noEmpty : true ,
319+ mode : [ 'properties' , 'edit' , 'create' ] , readonly : obj . isConnected ,
320+ disabled : function ( state ) {
321+ return ! ( isEmptyString ( state . db_alias ) && obj . isShared ) ;
322+ } ,
323+ } , {
324+ id : 'db_alias' , label : gettext ( 'Database alias' ) , type : 'text' , group : gettext ( 'Connection' ) ,
325+ mode : [ 'properties' , 'edit' , 'create' ] , readonly : obj . isConnected ,
326+ disabled : function ( state ) {
327+ return ! isEmptyString ( state . db ) ;
328+ } ,
329+ helpMessage : gettext ( 'Specify the database alias to connect to the server using pg_bouncer.' )
320330 } , {
321331 id : 'username' , label : gettext ( 'Username' ) , type : 'text' , group : gettext ( 'Connection' ) ,
322332 mode : [ 'properties' , 'edit' , 'create' ] ,
@@ -545,8 +555,20 @@ export default class ServerSchema extends BaseUISchema {
545555 } else {
546556 setError ( 'port' , null ) ;
547557 }
558+
559+ if ( isEmptyString ( state . db ) ) {
560+ errmsg = gettext ( 'Maintainence database or Database alias must be specified.' ) ;
561+ if ( isEmptyString ( state . db_alias ) ) {
562+ setError ( 'db' , errmsg ) ;
563+ return true ;
564+ } else {
565+ setError ( 'db' , null ) ;
566+ }
567+ } else {
568+ setError ( 'db' , null ) ;
569+ }
548570 } else {
549- _ . each ( [ 'host' , 'db' , 'username' , 'port' ] , ( item ) => {
571+ _ . each ( [ 'host' , 'db' , 'db_alias' , ' username', 'port' ] , ( item ) => {
550572 setError ( item , null ) ;
551573 } ) ;
552574 }
0 commit comments