mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed the letter case of the javascript file names.
Also, JSON data should be returned to the client using an application/json MIME-TYPE using flask's jsonify function.
This commit is contained in:
parent
751f8383fa
commit
9e0b011ec8
@ -26,14 +26,16 @@ def register_submodules(app):
|
||||
def get_nodes():
|
||||
"""Return a JSON document listing the server groups for the user"""
|
||||
groups = ServerGroup.query.filter_by(user_id=current_user.id)
|
||||
|
||||
value = ''
|
||||
# TODO: Move this JSON generation to a Server method
|
||||
# this code is duplicated somewhere else
|
||||
for group in groups:
|
||||
value += '{"id":"%s/%d","label":"%s","icon":"icon-%s","inode":true,"_type":"%s"},' % (NODE_TYPE, group.id, group.name, NODE_TYPE, NODE_TYPE)
|
||||
value = value[:-1]
|
||||
|
||||
return value
|
||||
|
||||
yield {
|
||||
"id": "%s/%d" % (NODE_TYPE, group.id),
|
||||
"label": group.name,
|
||||
"icon": "icon-%s" % NODE_TYPE,
|
||||
"inode": True,
|
||||
"_type": NODE_TYPE
|
||||
}
|
||||
|
||||
def get_standard_menu_items():
|
||||
"""Return a (set) of dicts of standard menu items (create/drop/rename), with
|
||||
|
@ -20,12 +20,15 @@ def get_nodes(server_group):
|
||||
"""Return a JSON document listing the server groups for the user"""
|
||||
servers = Server.query.filter_by(user_id=current_user.id, servergroup_id=server_group)
|
||||
|
||||
value = ''
|
||||
# TODO: Move this JSON generation to a Server method
|
||||
for server in servers:
|
||||
value += '{"id":"%s/%d","label":"%s","icon":"icon-%s","inode":true,"_type":"%s"},' % (NODE_TYPE, server.id, server.name, NODE_TYPE, NODE_TYPE)
|
||||
value = value[:-1]
|
||||
|
||||
return value
|
||||
yield {
|
||||
"id": "%s/%d" % (NODE_TYPE, server.id),
|
||||
"label": server.name,
|
||||
"icon": "icon-%s" % NODE_TYPE,
|
||||
"inode": True,
|
||||
"_type": NODE_TYPE
|
||||
}
|
||||
|
||||
|
||||
def get_standard_menu_items():
|
||||
|
@ -9,17 +9,22 @@
|
||||
|
||||
"""Defines views for management of servers"""
|
||||
|
||||
from flask import Blueprint, Response, current_app, request
|
||||
from flask import Blueprint, request
|
||||
from flask.ext.babel import gettext
|
||||
from flask.ext.security import current_user, login_required
|
||||
|
||||
from . import NODE_TYPE, NODE_PATH
|
||||
from pgadmin.utils.ajax import make_json_response
|
||||
from pgadmin.settings.settings_model import db, ServerGroup
|
||||
import config
|
||||
from pgadmin.settings.settings_model import db, Server
|
||||
import traceback
|
||||
|
||||
# Initialise the module
|
||||
blueprint = Blueprint("NODE-" + NODE_TYPE, __name__, static_folder='static', static_url_path='', template_folder='templates', url_prefix=NODE_PATH)
|
||||
blueprint = Blueprint("NODE-" + NODE_TYPE, __name__,
|
||||
static_folder='static',
|
||||
static_url_path='',
|
||||
template_folder='templates',
|
||||
url_prefix=NODE_PATH)
|
||||
|
||||
|
||||
@blueprint.route('/add/', methods=['POST'])
|
||||
@login_required
|
||||
@ -27,23 +32,22 @@ def add():
|
||||
"""Add a server node to the settings database"""
|
||||
success = 1
|
||||
errormsg = ''
|
||||
data = { }
|
||||
data = {}
|
||||
|
||||
success = False
|
||||
errormsg = ''
|
||||
if request.form['name'] != '':
|
||||
server = Server(user_id=current_user.id, name=request.form['name'])
|
||||
|
||||
try:
|
||||
db.session.add(server)
|
||||
db.session.commit()
|
||||
success = True
|
||||
except Exception as e:
|
||||
success = 0
|
||||
errormsg = e.message
|
||||
|
||||
else:
|
||||
success = 0
|
||||
errormsg = gettext('No server name was specified')
|
||||
|
||||
if success == 1:
|
||||
if success:
|
||||
data['id'] = server.id
|
||||
data['name'] = server.name
|
||||
|
||||
|
@ -26,22 +26,11 @@ blueprint = Blueprint("NODE-" + NODE_TYPE, __name__, static_folder='static', st
|
||||
@login_required
|
||||
def get_nodes(server_group):
|
||||
"""Build a list of treeview nodes from the child nodes."""
|
||||
value = '['
|
||||
|
||||
nodes = []
|
||||
for node in sub_nodes:
|
||||
if 'hooks' in dir(node) and 'get_nodes' in dir(node.hooks):
|
||||
value += node.hooks.get_nodes(server_group) + ','
|
||||
|
||||
if value[-1:] == ',':
|
||||
value = value[:-1]
|
||||
|
||||
value += ']'
|
||||
|
||||
resp = Response(response=value,
|
||||
status=200,
|
||||
mimetype="text/json")
|
||||
|
||||
return resp
|
||||
if hasattr(node, 'hooks') and hasattr(node.hooks, 'get_nodes'):
|
||||
nodes.extend(node.hooks.get_nodes(server_group))
|
||||
return make_json_response(data=nodes)
|
||||
|
||||
|
||||
@blueprint.route('/add/', methods=['POST'])
|
||||
|
@ -292,7 +292,12 @@ ALTER TABLE tickets_detail \n\
|
||||
// Initialise the treeview
|
||||
$('#tree').aciTree({
|
||||
ajax: {
|
||||
url: '{{ url_for('browser.get_nodes') }}'
|
||||
url: '{{ url_for('browser.get_nodes') }}',
|
||||
converters: {
|
||||
'text json': function(payload) {
|
||||
return $.parseJSON(payload).data;
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
tree = $('#tree').aciTree('api');
|
||||
|
@ -20,6 +20,7 @@ from . import sub_nodes
|
||||
from pgadmin.browser import all_nodes
|
||||
from pgadmin import modules
|
||||
from pgadmin.settings import get_setting
|
||||
from pgadmin.utils.ajax import make_json_response
|
||||
|
||||
|
||||
import config
|
||||
@ -60,7 +61,7 @@ def index():
|
||||
stylesheets.append(url_for('static', filename='css/wcDocker/wcDockerSkeleton.min.css'))
|
||||
|
||||
stylesheets.append(url_for('static', filename='css/wcDocker/theme.css'))
|
||||
stylesheets.append(url_for('static', filename='css/jQuery-contextMenu/jQuery.contextMenu.css'))
|
||||
stylesheets.append(url_for('static', filename='css/jQuery-contextMenu/jquery.contextMenu.css'))
|
||||
stylesheets.append(url_for('browser.static', filename='css/browser.css'))
|
||||
stylesheets.append(url_for('browser.static', filename='css/aciTree/css/aciTree.css'))
|
||||
stylesheets.append(url_for('browser.browser_css'))
|
||||
@ -75,7 +76,7 @@ def index():
|
||||
scripts.append(url_for('static', filename='js/wcDocker/wcDocker.min.js'))
|
||||
|
||||
scripts.append(url_for('static', filename='js/jQuery-contextMenu/jquery.ui.position.js'))
|
||||
scripts.append(url_for('static', filename='js/jQuery-contextMenu/jQuery.contextMenu.js'))
|
||||
scripts.append(url_for('static', filename='js/jQuery-contextMenu/jquery.contextMenu.js'))
|
||||
scripts.append(url_for('browser.static', filename='js/aciTree/jquery.aciPlugin.min.js'))
|
||||
scripts.append(url_for('browser.static', filename='js/aciTree/jquery.aciTree.dom.js'))
|
||||
scripts.append(url_for('browser.static', filename='js/aciTree/jquery.aciTree.min.js'))
|
||||
@ -206,21 +207,8 @@ def browser_css():
|
||||
def get_nodes():
|
||||
"""Build a list of treeview nodes from the child nodes."""
|
||||
value = '['
|
||||
|
||||
nodes = []
|
||||
for node in sub_nodes:
|
||||
if 'hooks' in dir(node) and 'get_nodes' in dir(node.hooks):
|
||||
value += node.hooks.get_nodes() + ','
|
||||
|
||||
if value[-1:] == ',':
|
||||
value = value[:-1]
|
||||
|
||||
value += ']'
|
||||
|
||||
resp = Response(response=value,
|
||||
status=200,
|
||||
mimetype="text/json")
|
||||
|
||||
return resp
|
||||
|
||||
|
||||
|
||||
if hasattr(node, 'hooks') and hasattr(node.hooks, 'get_nodes'):
|
||||
nodes.extend(node.hooks.get_nodes())
|
||||
return make_json_response(data=nodes)
|
||||
|
@ -28,6 +28,7 @@ roles_users = db.Table('roles_users',
|
||||
db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
|
||||
db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))
|
||||
|
||||
|
||||
class Version(db.Model):
|
||||
"""Version numbers for reference/upgrade purposes"""
|
||||
__tablename__ = 'version'
|
||||
@ -80,5 +81,3 @@ class Server(db.Model):
|
||||
maintenance_db = db.Column(db.String(64), nullable=False)
|
||||
username = db.Column(db.String(64), nullable=False)
|
||||
ssl_mode = db.Column(db.String(16), nullable=False)
|
||||
|
||||
|
||||
|
@ -9,20 +9,13 @@
|
||||
|
||||
"""Utility functions for dealing with AJAX."""
|
||||
|
||||
from flask import Response
|
||||
from flask import jsonify
|
||||
import json
|
||||
|
||||
def make_json_response(success=1, errormsg='', info='', result={}, data={}):
|
||||
def make_json_response(success=True, **kwargs):
|
||||
"""Create a HTML response document describing the results of a request and
|
||||
containing the data."""
|
||||
doc = { }
|
||||
doc['success'] = success
|
||||
doc['errormsg'] = errormsg
|
||||
doc['info'] = info
|
||||
doc['result'] = result
|
||||
doc['data'] = data
|
||||
|
||||
response = Response(response=json.dumps(doc),
|
||||
status=200,
|
||||
mimetype="text/json")
|
||||
return response
|
||||
response = kwargs.copy()
|
||||
response.setdefault('result', {})
|
||||
response.setdefault('data', {})
|
||||
return jsonify(response)
|
||||
|
Loading…
Reference in New Issue
Block a user