Hi,
PFA patch for issue RM 1313. Changes: Added connect now option in server create dialog. -- *Harshal Dhumal* *Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py index 6f3453b..8f4a0dd 100644 --- a/web/pgadmin/browser/server_groups/servers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/__init__.py @@ -576,14 +576,50 @@ class ServerNode(PGChildNodeView): db.session.add(server) db.session.commit() + connected = False + icon = "icon-server-not-connected" + user = None + + if 'connect_now' in data and data['connect_now']: + if 'password' not in data or data["password"] == '': + db.session.delete(server) + db.session.commit() + raise Exception("No password provided.") + + password = data['password'] + password = encrypt(password, current_user.password) + + from pgadmin.utils.driver import get_driver + manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(server.id) + conn = manager.connection() + + status, errmsg = conn.connect( + password=password, + server_types=ServerType.types() + ) + + if not status: + db.session.delete(server) + db.session.commit() + return make_json_response( + status=401, + success=0, + errormsg=gettext("Unable to connect to server.") + ) + else: + user = manager.user_info + connected = True + icon = "icon-pg" + return jsonify( node=self.blueprint.generate_browser_node( - "%d" % (server.id), server.servergroup_id, + "%d" % server.id, server.servergroup_id, server.name, - "icon-server-not-connected", + icon, True, self.node_type, - connected=False, + user=user, + connected=connected, server_type='pg' # Default server type ) ) @@ -593,7 +629,7 @@ class ServerNode(PGChildNodeView): return make_json_response( status=410, success=0, - errormsg=e.message + errormsg=str(e) ) def sql(self, gid, sid): diff --git a/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js b/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js index d1c1cd3..8c0d01f 100644 --- a/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js +++ b/web/pgadmin/browser/server_groups/servers/templates/servers/servers.js @@ -586,7 +586,9 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { port: 5432, db: 'postgres', username: '{{ username }}', - role: null + role: null, + connect_now: true, + password: undefined }, // Default values! initialize: function(attrs, args) { @@ -623,6 +625,15 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { id: 'version', label:'{{ _('Version') }}', type: 'text', group: null, mode: ['properties'], visible: 'isConnected' },{ + id: 'connect_now', controlLabel:'{{ _('Connect now?') }}', type: 'checkbox', + group: null, mode: ['create'] + },{ + id: 'password', label:'{{ _('Password') }}', type: 'password', + group: null, control: 'input', mode: ['create'], deps: ['connect_now'], + visible: function(m) { + return m.get('connect_now') && m.isNew(); + } + },{ id: 'comment', label:'{{ _('Comments') }}', type: 'multiline', group: null, mode: ['properties', 'edit', 'create'] },{ @@ -676,6 +687,15 @@ function($, _, S, pgAdmin, pgBrowser, alertify) { self.errorModel.unset('id'); } check_for_empty('name', '{{ _('Name must be specified.') }}'); + + if(self.get('connect_now')) { + check_for_empty( + 'password', '{{ _('Password must be specified.') }}' + ); + } else { + self.errorModel.unset('password'); + } + check_for_empty( 'host', '{{ _('Hostname or address must be specified.') }}' ); diff --git a/web/pgadmin/static/css/overrides.css b/web/pgadmin/static/css/overrides.css index 41ffde0..616db5c 100755 --- a/web/pgadmin/static/css/overrides.css +++ b/web/pgadmin/static/css/overrides.css @@ -1344,3 +1344,7 @@ height: calc(100% - 35px); .pg-panel-statistics-container > table > thead > tr > th:last-child { border-right: 0px; } + +.pgadmin-controls input[type="checkbox"]{ + margin-left: 0 !important; +} \ No newline at end of file
-- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers