1. Use EDB's repo for react-data-grid instead of the personal repo.

2. Improved searching in the Search Objects.
3. Fixed react warnings in the query tool.
4. Fixed some SonarQube issues.
pull/5349/head
Aditya Toshniwal 2022-09-13 19:13:33 +05:30 committed by Akshay Joshi
parent ab5d53f3b1
commit 2de965d710
18 changed files with 47 additions and 47 deletions

View File

@ -145,7 +145,7 @@
"react": "^17.0.1",
"react-aspen": "^1.1.0",
"react-checkbox-tree": "^1.7.2",
"react-data-grid": "git+https://github.com/adityatoshniwal/react-data-grid.git/#8d9bc16ddd7c419acfbbd1c1cc2b70eb9f5b453c",
"react-data-grid": "git+https://github.com/EnterpriseDB/react-data-grid.git/#200d2f5e02de694e3e9ffbe177c279bc40240fb8",
"react-dom": "^17.0.1",
"react-draggable": "^4.4.4",
"react-dropzone": "^14.2.1",

View File

@ -61,7 +61,7 @@ class AuthenticateModule(PgAdminModule):
blueprint = AuthenticateModule(MODULE_NAME, __name__, static_url_path='')
@blueprint.route('/login', endpoint='login', methods=['GET', 'POST'])
@blueprint.route('/login', endpoint='login', methods=['POST'])
def login():
"""
Entry point for all the authentication sources.

View File

@ -48,7 +48,7 @@ def init_app(app):
blueprint = Oauth2Module(MODULE_NAME, __name__, static_url_path='')
@blueprint.route('/authorize', endpoint="authorize",
methods=['GET', 'POST'])
methods=['POST'])
@pgCSRFProtect.exempt
def oauth_authorize():
auth_obj = session['auth_obj']
@ -66,7 +66,7 @@ def init_app(app):
return redirect(get_post_login_redirect())
@blueprint.route('/logout', endpoint="logout",
methods=['GET', 'POST'])
methods=['POST'])
@pgCSRFProtect.exempt
def oauth_logout():
if not current_user.is_authenticated:

View File

@ -923,7 +923,7 @@ def signal_runtime():
if hasattr(config, 'SECURITY_CHANGEABLE') and config.SECURITY_CHANGEABLE:
@blueprint.route("/change_password", endpoint="change_password",
methods=['GET', 'POST'])
methods=['POST'])
@pgCSRFProtect.exempt
@login_required
def change_password():
@ -1011,7 +1011,7 @@ if hasattr(config, 'SECURITY_RECOVERABLE') and config.SECURITY_RECOVERABLE:
user=user, token=token)
@blueprint.route("/reset_password", endpoint="forgot_password",
methods=['GET', 'POST'])
methods=['POST'])
@pgCSRFProtect.exempt
@anonymous_user_required
def forgot_password():
@ -1088,7 +1088,7 @@ if hasattr(config, 'SECURITY_RECOVERABLE') and config.SECURITY_RECOVERABLE:
'/reset_password' + slash_url_suffix(
'/browser/reset_password', '<token>'
),
methods=['GET', 'POST'],
methods=['POST'],
endpoint='reset_password'
)
@pgCSRFProtect.exempt

View File

@ -121,7 +121,7 @@ def get_db_instances():
@blueprint.route('/db_versions/',
methods=['GET', 'POST'], endpoint='db_versions')
methods=['GET'], endpoint='db_versions')
@login_required
def get_db_versions():
"""GET AWS Database Versions for AWS."""
@ -147,7 +147,7 @@ def get_db_versions():
@blueprint.route('/regions/',
methods=['GET', 'POST'], endpoint='regions')
methods=['GET'], endpoint='regions')
@login_required
def get_regions():
"""GET Regions for AWS."""

View File

@ -1052,7 +1052,7 @@ class Filemanager(object):
@blueprint.route(
"/filemanager/<int:trans_id>/",
methods=["GET", "POST"], endpoint='filemanager'
methods=["POST"], endpoint='filemanager'
)
@login_required
def file_manager(trans_id):

View File

@ -120,7 +120,7 @@ ExplainRow.propTypes = {
row: PropTypes.shape({
data: PropTypes.shape({
Plans: PropTypes.array,
level: PropTypes.number,
level: PropTypes.array,
_serial: PropTypes.number,
parent_node: PropTypes.number,
exclusive: PropTypes.number,
@ -129,7 +129,7 @@ ExplainRow.propTypes = {
inclusive_flag: PropTypes.string,
rowsx_direction: PropTypes.string,
rowsx: PropTypes.number,
rowsx_flag: PropTypes.number,
rowsx_flag: PropTypes.oneOfType([PropTypes.number,PropTypes.string]),
'Actual Rows': PropTypes.number,
'Plan Rows': PropTypes.number,
'Actual Loops': PropTypes.number,
@ -145,8 +145,8 @@ ExplainRow.propTypes = {
show_plan_rows: PropTypes.bool,
}),
activeExId: PropTypes.string,
setActiveExId: PropTypes.string,
collapsedExId: PropTypes.string,
setActiveExId: PropTypes.func,
collapsedExId: PropTypes.array,
toggleCollapseExId: PropTypes.func,
};

View File

@ -123,20 +123,12 @@ export default function ExplainStatistics({explainTable}) {
);
}
const NodeType = {
name: PropTypes.string,
count: PropTypes.number,
sum_of_times: PropTypes.number,
};
ExplainStatistics.propTypes = {
explainTable: PropTypes.shape({
show_timings: PropTypes.bool,
statistics: PropTypes.shape({
nodes: PropTypes.arrayOf(NodeType),
tables: PropTypes.arrayOf({
...NodeType,
nodes: PropTypes.arrayOf(NodeType),
}),
nodes: PropTypes.object,
tables: PropTypes.object,
}),
total_time: PropTypes.number,
}),

View File

@ -323,7 +323,7 @@ function PlanSVG({planData, zoomFactor, fitZoomFactor, ...props}) {
PlanSVG.propTypes = {
planData: PropTypes.object,
zoomFactor: PropTypes.number,
fitZoomFactor: PropTypes.number,
fitZoomFactor: PropTypes.func,
ctx: PropTypes.object,
};

View File

@ -344,11 +344,12 @@ export class Tree {
if (path == null || !Array.isArray(path)) {
return Promise.reject();
}
const basepath = '/browser/' + path.slice(0, path.length-1).join('/') + '/';
path = '/browser/' + path.join('/');
let onCorrectPath = function (matchPath) {
return (matchPath !== undefined && path !== undefined
&& (path.startsWith(matchPath) || path === matchPath));
&& (basepath.startsWith(matchPath) || path === matchPath));
};
return (function findInNode(currentNode) {

View File

@ -744,13 +744,13 @@ def get_search_path(conn):
@blueprint.route(
'/initialize_target/<debug_type>/<int:trans_id>/<int:sid>/<int:did>/'
'<int:scid>/<int:func_id>',
methods=['GET', 'POST'],
methods=['POST'],
endpoint='initialize_target_for_function'
)
@blueprint.route(
'/initialize_target/<debug_type>/<int:trans_id>/<int:sid>/<int:did>/'
'<int:scid>/<int:func_id>/<int:tri_id>',
methods=['GET', 'POST'],
methods=['POST'],
endpoint='initialize_target_for_trigger'
)
@login_required
@ -825,7 +825,7 @@ def initialize_target(debug_type, trans_id, sid, did,
# the session variables accordingly, For indirect debugging user will
# provide the data from another session so below condition will
# be be required
if request.method == 'POST':
if request.data:
de_inst.function_data['args_value'] = \
json.loads(request.data, encoding='utf-8')
@ -940,7 +940,7 @@ def restart_debugging(trans_id):
@blueprint.route(
'/start_listener/<int:trans_id>', methods=['GET', 'POST'],
'/start_listener/<int:trans_id>', methods=['POST'],
endpoint='start_listener'
)
@login_required
@ -983,7 +983,7 @@ def start_debugger_listener(trans_id):
# If user again start the same debug function with different arguments
# then we need to save that values to session variable and database.
if request.method == 'POST':
if request.data:
data = json.loads(request.data, encoding='utf-8')
if data:
de_inst.function_data['args_value'] = data

View File

@ -394,7 +394,7 @@ export default class DebuggerModule {
self.api({
url: baseUrl,
method: 'GET',
method: 'POST',
})
.then(function (result) {
@ -580,7 +580,7 @@ export default class DebuggerModule {
self.api({
url: baseUrl,
method: 'GET',
method: 'POST',
})
.then(function (res) {
let url = url_for('debugger.direct', {

View File

@ -38,11 +38,15 @@ try {
{% endblock %}
{% block body %}
<style>
#debugger-main-container {
#debugger-main-container {
display: flex;
flex-direction: column;
height: 100%;
}
#debugger-main-container:not(:empty) + .pg-sp-container {
display: none;
}
</style>
{% if is_desktop_mode and is_linux %}
<style>
@ -50,6 +54,13 @@ try {
</style>
{% endif %}
<div id="debugger-main-container" tabindex="0">
<div class="pg-sp-container">
<div class="pg-sp-content">
<div class="row">
<div class="col-12 pg-sp-icon"></div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -89,13 +89,13 @@ class InitTargetDebugger(BaseTestGenerator):
def initialize_traget(self):
if hasattr(self, 'create_trigger_func') and self.create_trigger_func:
return self.tester.get(
return self.tester.post(
self.url + str(self.trans_id) + '/' + str(self.server_id) +
'/' + str(self.db_id) + '/' + str(self.schema_id) +
'/' + str(self.table_id) + '/' +
str(self.trigger_id), content_type='application/json')
else:
return self.tester.get(
return self.tester.post(
self.url + str(self.trans_id) + '/' + str(self.server_id) +
'/' + str(self.db_id) + '/' + str(self.schema_id) +
'/' + str(self.func_id),

View File

@ -33,11 +33,6 @@ class DebuggerStartListener(BaseTestGenerator):
self.db_id = self.schema_data['db_id']
self.schema_id = self.schema_data['schema_id']
local_self = funcs_utils.set_up(self)
# if self.server['type'] == 'pg':
# self.skipTest('Skipping test case for pg')
self.test_data['funcowner'] = self.server["username"]
function_info = debugger_utils.create_function(self, utils)
@ -60,7 +55,7 @@ class DebuggerStartListener(BaseTestGenerator):
data=json.dumps({}),
content_type='application/json')
else:
return self.tester.get(
return self.tester.post(
self.url + str(self.trans_id),
content_type='application/json')

View File

@ -107,7 +107,7 @@ def init_debugger_function(self):
def initialize_target(self, utils, close_debugger_instance=True):
target_url = '/debugger/initialize_target/{0}/'.format(self.type)
response = self.tester.get(
response = self.tester.post(
target_url + str(self.trans_id) + '/' + str(self.server_id) +
'/' + str(self.db_id) + '/' + str(self.schema_id) +
'/' + str(self.func_id),
@ -127,7 +127,7 @@ def initialize_target(self, utils, close_debugger_instance=True):
def start_listener(self, utils, db_utils):
response = self.tester.get(
response = self.tester.post(
'debugger/start_listener/' + str(self.trans_id),
content_type='application/json')
if response.status_code != 200:

View File

@ -33,6 +33,7 @@ const useStyles = makeStyles((theme)=>({
display: 'flex',
lineHeight: '16px',
alignItems: 'center',
fontWeight: 'normal',
},
columnName: {
fontWeight: 'bold',

View File

@ -9515,9 +9515,9 @@ react-checkbox-tree@^1.7.2:
nanoid "^3.0.0"
prop-types "^15.5.8"
"react-data-grid@git+https://github.com/adityatoshniwal/react-data-grid.git/#8d9bc16ddd7c419acfbbd1c1cc2b70eb9f5b453c":
version "7.0.0-beta.12"
resolved "git+https://github.com/adityatoshniwal/react-data-grid.git/#8d9bc16ddd7c419acfbbd1c1cc2b70eb9f5b453c"
"react-data-grid@git+https://github.com/EnterpriseDB/react-data-grid.git/#200d2f5e02de694e3e9ffbe177c279bc40240fb8":
version "7.0.0-beta.14"
resolved "git+https://github.com/EnterpriseDB/react-data-grid.git/#200d2f5e02de694e3e9ffbe177c279bc40240fb8"
dependencies:
clsx "^1.1.1"