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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers