mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
This commit is contained in:
committed by
Dave Page
parent
9212699936
commit
b284572afe
@@ -43,7 +43,6 @@ def has_any(data, keys):
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def recovery_state(connection, postgres_version):
|
||||
recovery_check_sql = render_template("connect/sql/#{0}#/check_recovery.sql".format(postgres_version))
|
||||
|
||||
@@ -56,6 +55,38 @@ def recovery_state(connection, postgres_version):
|
||||
wal_paused = None
|
||||
return in_recovery, wal_paused
|
||||
|
||||
def server_icon_and_background(is_connected, manager, server):
|
||||
"""
|
||||
|
||||
Args:
|
||||
is_connected: Flag to check if server is connected
|
||||
manager: Connection manager
|
||||
server: Sever object
|
||||
|
||||
Returns:
|
||||
Server Icon CSS class
|
||||
"""
|
||||
server_background_color = ''
|
||||
if server and server.bgcolor:
|
||||
server_background_color = ' {0}'.format(
|
||||
server.bgcolor
|
||||
)
|
||||
# If user has set font color also
|
||||
if server.fgcolor:
|
||||
server_background_color = '{0} {1}'.format(
|
||||
server_background_color,
|
||||
server.fgcolor
|
||||
)
|
||||
|
||||
if is_connected:
|
||||
return 'icon-{0}{1}'.format(
|
||||
manager.server_type, server_background_color
|
||||
)
|
||||
else:
|
||||
return 'icon-server-not-connected{0}'.format(
|
||||
server_background_color
|
||||
)
|
||||
|
||||
|
||||
class ServerModule(sg.ServerGroupPluginModule):
|
||||
NODE_TYPE = "server"
|
||||
@@ -87,14 +118,14 @@ class ServerModule(sg.ServerGroupPluginModule):
|
||||
connected = conn.connected()
|
||||
in_recovery = None
|
||||
wal_paused = None
|
||||
|
||||
if connected:
|
||||
in_recovery, wal_paused = recovery_state(conn, manager.version)
|
||||
yield self.generate_browser_node(
|
||||
"%d" % (server.id),
|
||||
gid,
|
||||
server.name,
|
||||
"icon-server-not-connected" if not connected else
|
||||
"icon-{0}".format(manager.server_type),
|
||||
server_icon_and_background(connected, manager, server),
|
||||
True,
|
||||
self.NODE_TYPE,
|
||||
connected=connected,
|
||||
@@ -305,8 +336,7 @@ class ServerNode(PGChildNodeView):
|
||||
"%d" % (server.id),
|
||||
gid,
|
||||
server.name,
|
||||
"icon-server-not-connected" if not connected else
|
||||
"icon-{0}".format(manager.server_type),
|
||||
server_icon_and_background(connected, manager, server),
|
||||
True,
|
||||
self.node_type,
|
||||
connected=connected,
|
||||
@@ -359,8 +389,7 @@ class ServerNode(PGChildNodeView):
|
||||
"%d" % (server.id),
|
||||
gid,
|
||||
server.name,
|
||||
"icon-server-not-connected" if not connected else
|
||||
"icon-{0}".format(manager.server_type),
|
||||
server_icon_and_background(connected, manager, server),
|
||||
True,
|
||||
self.node_type,
|
||||
connected=connected,
|
||||
@@ -435,7 +464,9 @@ class ServerNode(PGChildNodeView):
|
||||
'sslkey': 'sslkey',
|
||||
'sslrootcert': 'sslrootcert',
|
||||
'sslcrl': 'sslcrl',
|
||||
'sslcompression': 'sslcompression'
|
||||
'sslcompression': 'sslcompression',
|
||||
'bgcolor': 'bgcolor',
|
||||
'fgcolor': 'fgcolor'
|
||||
}
|
||||
|
||||
disp_lbl = {
|
||||
@@ -515,8 +546,7 @@ class ServerNode(PGChildNodeView):
|
||||
node=self.blueprint.generate_browser_node(
|
||||
"%d" % (server.id), server.servergroup_id,
|
||||
server.name,
|
||||
"icon-server-not-connected" if not connected else
|
||||
"icon-{0}".format(manager.server_type),
|
||||
server_icon_and_background(connected, manager, server),
|
||||
True,
|
||||
self.node_type,
|
||||
connected=False,
|
||||
@@ -610,6 +640,8 @@ class ServerNode(PGChildNodeView):
|
||||
'version': manager.ver,
|
||||
'sslmode': server.ssl_mode,
|
||||
'server_type': manager.server_type if connected else 'pg',
|
||||
'bgcolor': server.bgcolor,
|
||||
'fgcolor': server.fgcolor,
|
||||
'db_res': server.db_res.split(',') if server.db_res else None,
|
||||
'passfile': server.passfile if server.passfile else None,
|
||||
'sslcert': server.sslcert if is_ssl else None,
|
||||
@@ -680,7 +712,12 @@ class ServerNode(PGChildNodeView):
|
||||
sslkey=data['sslkey'] if is_ssl else None,
|
||||
sslrootcert=data['sslrootcert'] if is_ssl else None,
|
||||
sslcrl=data['sslcrl'] if is_ssl else None,
|
||||
sslcompression=1 if is_ssl and data['sslcompression'] else 0
|
||||
sslcompression=1 if is_ssl and data['sslcompression'] else 0,
|
||||
bgcolor=data['bgcolor'] if u'bgcolor' in data
|
||||
else None,
|
||||
fgcolor = data['fgcolor'] if u'fgcolor' in data
|
||||
else None
|
||||
|
||||
)
|
||||
db.session.add(server)
|
||||
db.session.commit()
|
||||
@@ -735,7 +772,7 @@ class ServerNode(PGChildNodeView):
|
||||
node=self.blueprint.generate_browser_node(
|
||||
"%d" % server.id, server.servergroup_id,
|
||||
server.name,
|
||||
'icon-{0}'.format(manager.server_type) if manager and manager.server_type else "icon-pg",
|
||||
server_icon_and_background(connected, manager, server),
|
||||
True,
|
||||
self.node_type,
|
||||
user=user,
|
||||
@@ -968,9 +1005,7 @@ class ServerNode(PGChildNodeView):
|
||||
success=1,
|
||||
info=gettext("Server connected."),
|
||||
data={
|
||||
'icon': 'icon-{0}'.format(
|
||||
manager.server_type
|
||||
),
|
||||
'icon': server_icon_and_background(True, manager, server),
|
||||
'connected': True,
|
||||
'server_type': manager.server_type,
|
||||
'type': manager.server_type,
|
||||
@@ -1001,7 +1036,7 @@ class ServerNode(PGChildNodeView):
|
||||
success=1,
|
||||
info=gettext("Server disconnected."),
|
||||
data={
|
||||
'icon': 'icon-server-not-connected',
|
||||
'icon': server_icon_and_background(False, manager, server),
|
||||
'connected': False
|
||||
}
|
||||
)
|
||||
|
||||
@@ -651,6 +651,13 @@ define('pgadmin.node.server', [
|
||||
},{
|
||||
id: 'version', label: gettext('Version'), type: 'text', group: null,
|
||||
mode: ['properties'], visible: 'isConnected'
|
||||
},{
|
||||
id: 'bgcolor', label: gettext('Background'), type: 'color',
|
||||
group: null, mode: ['edit', 'create'], disabled: 'isfgColorSet',
|
||||
deps: ['fgcolor']
|
||||
},{
|
||||
id: 'fgcolor', label: gettext('Foreground'), type: 'color',
|
||||
group: null, mode: ['edit', 'create'], disabled: 'isConnected',
|
||||
},{
|
||||
id: 'connect_now', controlLabel: gettext('Connect now?'), type: 'checkbox',
|
||||
group: null, mode: ['create']
|
||||
@@ -881,6 +888,23 @@ define('pgadmin.node.server', [
|
||||
isConnected: function(model) {
|
||||
return model.get('connected');
|
||||
},
|
||||
isfgColorSet: function(model) {
|
||||
var bgcolor = model.get('bgcolor'),
|
||||
fgcolor = model.get('fgcolor');
|
||||
|
||||
if(model.get('connected')) {
|
||||
return true;
|
||||
}
|
||||
// If fgcolor is set and bgcolor is not set then force bgcolor
|
||||
// to set as white
|
||||
if(_.isUndefined(bgcolor) || _.isNull(bgcolor) || !bgcolor) {
|
||||
if(fgcolor) {
|
||||
model.set('bgcolor', '#ffffff');
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
isSSL: function(model) {
|
||||
var ssl_mode = model.get('sslmode');
|
||||
// If server is not connected and have required SSL option
|
||||
|
||||
Reference in New Issue
Block a user