diff --git a/web/pgadmin/misc/bgprocess/static/js/BgProcessNotify.jsx b/web/pgadmin/misc/bgprocess/static/js/BgProcessNotify.jsx index 6d72b302d..b59211c45 100644 --- a/web/pgadmin/misc/bgprocess/static/js/BgProcessNotify.jsx +++ b/web/pgadmin/misc/bgprocess/static/js/BgProcessNotify.jsx @@ -28,6 +28,7 @@ const useStyles = makeStyles((theme)=>({ }, containerBody: { marginTop: '1rem', + overflowWrap: 'break-word', }, containerSuccess: { borderColor: theme.palette.success.main, diff --git a/web/pgadmin/misc/bgprocess/static/js/Processes.jsx b/web/pgadmin/misc/bgprocess/static/js/Processes.jsx index b736dfc89..02c13f5ce 100644 --- a/web/pgadmin/misc/bgprocess/static/js/Processes.jsx +++ b/web/pgadmin/misc/bgprocess/static/js/Processes.jsx @@ -22,6 +22,7 @@ import HelpIcon from '@material-ui/icons/HelpRounded'; import url_for from 'sources/url_for'; import { Box } from '@material-ui/core'; import { useMemo } from 'react'; +import Notifier from '../../../../static/js/helpers/Notifier'; const useStyles = makeStyles((theme) => ({ @@ -251,6 +252,12 @@ export default function Processes() { sortOptions={[{id: 'stime', desc: true}]} getSelectedRows={(rows)=>{setSelectedRows(rows);}} isSelectRow={true} + tableProps={{ + autoResetSelectedRows: false, + getRowId: (row)=>{ + return row.id; + } + }} CustomHeader={()=>{ return ( @@ -260,7 +267,9 @@ export default function Processes() { aria-label="Acknowledge and Remove" title={gettext('Acknowledge and Remove')} onClick={() => { - pgAdmin.Browser.BgProcessManager.acknowledge(selectedRows.map((p)=>p.original.id)); + Notifier.confirm(gettext('Remove Processes'), gettext('Are you sure you want to remove the selected processes?'), ()=>{ + pgAdmin.Browser.BgProcessManager.acknowledge(selectedRows.map((p)=>p.original.id)); + }); }} disabled={selectedRows.length <= 0} > diff --git a/web/pgadmin/misc/cloud/utils/__init__.py b/web/pgadmin/misc/cloud/utils/__init__.py index 41ae9d1eb..9b17c3366 100644 --- a/web/pgadmin/misc/cloud/utils/__init__.py +++ b/web/pgadmin/misc/cloud/utils/__init__.py @@ -84,7 +84,7 @@ class CloudProcessDesc(IProcessDesc): return { "message": self.message, - "cmd": cmd, + "cmd": self.cmd, "server": server, "object": self.instance_name, "type": self.provider, diff --git a/web/pgadmin/static/js/Explain/img/ex_aggregate.svg b/web/pgadmin/misc/static/explain/img/ex_aggregate.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_aggregate.svg rename to web/pgadmin/misc/static/explain/img/ex_aggregate.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_append.svg b/web/pgadmin/misc/static/explain/img/ex_append.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_append.svg rename to web/pgadmin/misc/static/explain/img/ex_append.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_bmp_and.svg b/web/pgadmin/misc/static/explain/img/ex_bmp_and.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_bmp_and.svg rename to web/pgadmin/misc/static/explain/img/ex_bmp_and.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_bmp_heap.svg b/web/pgadmin/misc/static/explain/img/ex_bmp_heap.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_bmp_heap.svg rename to web/pgadmin/misc/static/explain/img/ex_bmp_heap.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_bmp_index.svg b/web/pgadmin/misc/static/explain/img/ex_bmp_index.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_bmp_index.svg rename to web/pgadmin/misc/static/explain/img/ex_bmp_index.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_bmp_or.svg b/web/pgadmin/misc/static/explain/img/ex_bmp_or.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_bmp_or.svg rename to web/pgadmin/misc/static/explain/img/ex_bmp_or.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_broadcast_motion.svg b/web/pgadmin/misc/static/explain/img/ex_broadcast_motion.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_broadcast_motion.svg rename to web/pgadmin/misc/static/explain/img/ex_broadcast_motion.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_cte_scan.svg b/web/pgadmin/misc/static/explain/img/ex_cte_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_cte_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_cte_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_delete.svg b/web/pgadmin/misc/static/explain/img/ex_delete.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_delete.svg rename to web/pgadmin/misc/static/explain/img/ex_delete.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_foreign_scan.svg b/web/pgadmin/misc/static/explain/img/ex_foreign_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_foreign_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_foreign_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_gather_merge.svg b/web/pgadmin/misc/static/explain/img/ex_gather_merge.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_gather_merge.svg rename to web/pgadmin/misc/static/explain/img/ex_gather_merge.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_gather_motion.svg b/web/pgadmin/misc/static/explain/img/ex_gather_motion.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_gather_motion.svg rename to web/pgadmin/misc/static/explain/img/ex_gather_motion.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_group.svg b/web/pgadmin/misc/static/explain/img/ex_group.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_group.svg rename to web/pgadmin/misc/static/explain/img/ex_group.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash.svg b/web/pgadmin/misc/static/explain/img/ex_hash.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash.svg rename to web/pgadmin/misc/static/explain/img/ex_hash.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_anti_join.svg b/web/pgadmin/misc/static/explain/img/ex_hash_anti_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_anti_join.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_anti_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_semi_join.svg b/web/pgadmin/misc/static/explain/img/ex_hash_semi_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_semi_join.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_semi_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_setop_except.svg b/web/pgadmin/misc/static/explain/img/ex_hash_setop_except.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_setop_except.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_setop_except.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_setop_except_all.svg b/web/pgadmin/misc/static/explain/img/ex_hash_setop_except_all.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_setop_except_all.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_setop_except_all.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_setop_intersect.svg b/web/pgadmin/misc/static/explain/img/ex_hash_setop_intersect.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_setop_intersect.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_setop_intersect.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_setop_intersect_all.svg b/web/pgadmin/misc/static/explain/img/ex_hash_setop_intersect_all.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_setop_intersect_all.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_setop_intersect_all.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_hash_setop_unknown.svg b/web/pgadmin/misc/static/explain/img/ex_hash_setop_unknown.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_hash_setop_unknown.svg rename to web/pgadmin/misc/static/explain/img/ex_hash_setop_unknown.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_index_only_scan.svg b/web/pgadmin/misc/static/explain/img/ex_index_only_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_index_only_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_index_only_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_index_scan.svg b/web/pgadmin/misc/static/explain/img/ex_index_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_index_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_index_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_insert.svg b/web/pgadmin/misc/static/explain/img/ex_insert.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_insert.svg rename to web/pgadmin/misc/static/explain/img/ex_insert.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_join.svg b/web/pgadmin/misc/static/explain/img/ex_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_join.svg rename to web/pgadmin/misc/static/explain/img/ex_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_limit.svg b/web/pgadmin/misc/static/explain/img/ex_limit.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_limit.svg rename to web/pgadmin/misc/static/explain/img/ex_limit.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_lock_rows.svg b/web/pgadmin/misc/static/explain/img/ex_lock_rows.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_lock_rows.svg rename to web/pgadmin/misc/static/explain/img/ex_lock_rows.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_materialize.svg b/web/pgadmin/misc/static/explain/img/ex_materialize.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_materialize.svg rename to web/pgadmin/misc/static/explain/img/ex_materialize.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_merge.svg b/web/pgadmin/misc/static/explain/img/ex_merge.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_merge.svg rename to web/pgadmin/misc/static/explain/img/ex_merge.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_merge_anti_join.svg b/web/pgadmin/misc/static/explain/img/ex_merge_anti_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_merge_anti_join.svg rename to web/pgadmin/misc/static/explain/img/ex_merge_anti_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_merge_append.svg b/web/pgadmin/misc/static/explain/img/ex_merge_append.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_merge_append.svg rename to web/pgadmin/misc/static/explain/img/ex_merge_append.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_merge_semi_join.svg b/web/pgadmin/misc/static/explain/img/ex_merge_semi_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_merge_semi_join.svg rename to web/pgadmin/misc/static/explain/img/ex_merge_semi_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_named_tuplestore_scan.svg b/web/pgadmin/misc/static/explain/img/ex_named_tuplestore_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_named_tuplestore_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_named_tuplestore_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_nested.svg b/web/pgadmin/misc/static/explain/img/ex_nested.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_nested.svg rename to web/pgadmin/misc/static/explain/img/ex_nested.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_nested_loop_anti_join.svg b/web/pgadmin/misc/static/explain/img/ex_nested_loop_anti_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_nested_loop_anti_join.svg rename to web/pgadmin/misc/static/explain/img/ex_nested_loop_anti_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_nested_loop_semi_join.svg b/web/pgadmin/misc/static/explain/img/ex_nested_loop_semi_join.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_nested_loop_semi_join.svg rename to web/pgadmin/misc/static/explain/img/ex_nested_loop_semi_join.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_projectset.svg b/web/pgadmin/misc/static/explain/img/ex_projectset.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_projectset.svg rename to web/pgadmin/misc/static/explain/img/ex_projectset.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_recursive_union.svg b/web/pgadmin/misc/static/explain/img/ex_recursive_union.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_recursive_union.svg rename to web/pgadmin/misc/static/explain/img/ex_recursive_union.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_redistribute_motion.svg b/web/pgadmin/misc/static/explain/img/ex_redistribute_motion.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_redistribute_motion.svg rename to web/pgadmin/misc/static/explain/img/ex_redistribute_motion.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_result.svg b/web/pgadmin/misc/static/explain/img/ex_result.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_result.svg rename to web/pgadmin/misc/static/explain/img/ex_result.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_scan.svg b/web/pgadmin/misc/static/explain/img/ex_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_seek.svg b/web/pgadmin/misc/static/explain/img/ex_seek.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_seek.svg rename to web/pgadmin/misc/static/explain/img/ex_seek.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_setop.svg b/web/pgadmin/misc/static/explain/img/ex_setop.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_setop.svg rename to web/pgadmin/misc/static/explain/img/ex_setop.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_sort.svg b/web/pgadmin/misc/static/explain/img/ex_sort.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_sort.svg rename to web/pgadmin/misc/static/explain/img/ex_sort.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_subplan.svg b/web/pgadmin/misc/static/explain/img/ex_subplan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_subplan.svg rename to web/pgadmin/misc/static/explain/img/ex_subplan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_table_func_scan.svg b/web/pgadmin/misc/static/explain/img/ex_table_func_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_table_func_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_table_func_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_tid_scan.svg b/web/pgadmin/misc/static/explain/img/ex_tid_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_tid_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_tid_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_unique.svg b/web/pgadmin/misc/static/explain/img/ex_unique.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_unique.svg rename to web/pgadmin/misc/static/explain/img/ex_unique.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_unknown.svg b/web/pgadmin/misc/static/explain/img/ex_unknown.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_unknown.svg rename to web/pgadmin/misc/static/explain/img/ex_unknown.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_update.svg b/web/pgadmin/misc/static/explain/img/ex_update.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_update.svg rename to web/pgadmin/misc/static/explain/img/ex_update.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_values_scan.svg b/web/pgadmin/misc/static/explain/img/ex_values_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_values_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_values_scan.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_window_aggregate.svg b/web/pgadmin/misc/static/explain/img/ex_window_aggregate.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_window_aggregate.svg rename to web/pgadmin/misc/static/explain/img/ex_window_aggregate.svg diff --git a/web/pgadmin/static/js/Explain/img/ex_worktable_scan.svg b/web/pgadmin/misc/static/explain/img/ex_worktable_scan.svg similarity index 100% rename from web/pgadmin/static/js/Explain/img/ex_worktable_scan.svg rename to web/pgadmin/misc/static/explain/img/ex_worktable_scan.svg diff --git a/web/pgadmin/static/js/Explain/Graphical.jsx b/web/pgadmin/static/js/Explain/Graphical.jsx index 59137e1de..c402e7245 100644 --- a/web/pgadmin/static/js/Explain/Graphical.jsx +++ b/web/pgadmin/static/js/Explain/Graphical.jsx @@ -66,7 +66,7 @@ PolyLine.propTypes = { function Multitext({currentXpos, currentYpos, label, maxWidth}) { const theme = useTheme(); let abc = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - var xmlns = 'https://www.w3.org/2000/svg'; + var xmlns = 'http://www.w3.org/2000/svg'; var svgElem = document.createElementNS(xmlns, 'svg'); svgElem.setAttributeNS(xmlns, 'height', '100%'); svgElem.setAttributeNS(xmlns, 'width', '100%'); @@ -295,7 +295,7 @@ function PlanSVG({planData, zoomFactor, fitZoomFactor, ...props}) { }, [planData.width]); return ( - + {Object.keys(props.ctx.arrows).map((arr_id, i)=>{ let arrowPoints = [ diff --git a/web/pgadmin/static/js/components/PgTable.jsx b/web/pgadmin/static/js/components/PgTable.jsx index 98e3e54a4..65dd81db8 100644 --- a/web/pgadmin/static/js/components/PgTable.jsx +++ b/web/pgadmin/static/js/components/PgTable.jsx @@ -213,7 +213,7 @@ IndeterminateCheckbox.propTypes = { }; const ROW_HEIGHT = 35; -export default function PgTable({ columns, data, isSelectRow, caveTable=true, schema, ExpandedComponent, sortOptions, ...props }) { +export default function PgTable({ columns, data, isSelectRow, caveTable=true, schema, ExpandedComponent, sortOptions, tableProps, ...props }) { // Use the state and functions returned from useTable to build your UI const classes = useStyles(); const [searchVal, setSearchVal] = React.useState(''); @@ -269,10 +269,10 @@ export default function PgTable({ columns, data, isSelectRow, caveTable=true, sc defaultColumn, isSelectRow, autoResetSortBy: false, - autoResetSelectedRows: false, initialState: { sortBy: sortOptions || [], - } + }, + ...tableProps, }, useGlobalFilter, useSortBy, @@ -550,5 +550,6 @@ PgTable.propTypes = { schema: PropTypes.object, rows: PropTypes.object, ExpandedComponent: PropTypes.node, + tableProps: PropTypes.object, 'data-test': PropTypes.string }; diff --git a/web/pgadmin/static/js/helpers/Notifier.jsx b/web/pgadmin/static/js/helpers/Notifier.jsx index 702c780ec..0969421ca 100644 --- a/web/pgadmin/static/js/helpers/Notifier.jsx +++ b/web/pgadmin/static/js/helpers/Notifier.jsx @@ -76,7 +76,7 @@ export function initializeModalProvider(modalContainer) { } const FinalNotifyContent = React.forwardRef(({children}, ref) => { - return {children}; + return {children}; }); FinalNotifyContent.displayName = 'FinalNotifyContent'; FinalNotifyContent.propTypes = { diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index aecd2921b..a7a2e71c7 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -39,7 +39,7 @@ from pgadmin.utils.ajax import make_json_response, bad_request, \ from pgadmin.utils.driver import get_driver from pgadmin.utils.exception import ConnectionLost, SSHTunnelConnectionLost, \ CryptKeyMissing, ObjectGone -from pgadmin.browser.utils import underscore_unescape +from pgadmin.browser.utils import underscore_unescape, underscore_escape from pgadmin.utils.menu import MenuItem from pgadmin.utils.sqlautocomplete.autocomplete import SQLAutoComplete from pgadmin.tools.sqleditor.utils.query_tool_preferences import \ @@ -286,7 +286,7 @@ def panel(trans_id): close_url = '' if request.form: - params['title'] = underscore_unescape(request.form['title']) + params['title'] = request.form['title'] close_url = request.form['close_url'] if 'sql_filter' in request.form: params['sql_filter'] = request.form['sql_filter'] @@ -317,16 +317,17 @@ def panel(trans_id): params['bgcolor'] = s.bgcolor params['fgcolor'] = s.fgcolor or 'black' - params['server_name'] = s.name - params['username'] = s.username + params['server_name'] = underscore_escape(s.name) + params['username'] = underscore_escape(s.username) params['layout'] = get_setting('SQLEditor/Layout') params['macros'] = get_user_macros() params['is_desktop_mode'] = current_app.PGADMIN_RUNTIME + params['database_name'] = underscore_escape(params['database_name']) return render_template( "sqleditor/index.html", close_url=close_url, - title=params['title'], + title=underscore_unescape(params['title']), params=json.dumps(params), requirejs=True, basejs=True, diff --git a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx index af0b41fe0..8e26b8fb7 100644 --- a/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx +++ b/web/pgadmin/tools/sqleditor/static/js/components/QueryToolComponent.jsx @@ -100,16 +100,16 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN sgid: params.sgid, sid: params.sid, did: params.did, - user: params.username, + user: _.unescape(params.username), role: null, title: _.unescape(params.title), fgcolor: params.fgcolor, bgcolor: params.bgcolor, conn_title: getTitle( - pgAdmin, null, selectedNodeInfo, true, params.server_name, params.database_name || getDatabaseLabel(selectedNodeInfo), - params.username, params.is_query_tool == 'true' ? true : false), - server_name: params.server_name, - database_name: params.database_name || getDatabaseLabel(selectedNodeInfo), + pgAdmin, null, selectedNodeInfo, true, _.unescape(params.server_name), _.unescape(params.database_name) || getDatabaseLabel(selectedNodeInfo), + _.unescape(params.username), params.is_query_tool == 'true' ? true : false), + server_name: _.unescape(params.server_name), + database_name: _.unescape(params.database_name) || getDatabaseLabel(selectedNodeInfo), is_selected: true, }], }); diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor_title.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor_title.js index dca571fba..c7372b03a 100644 --- a/web/pgadmin/tools/sqleditor/static/js/sqleditor_title.js +++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor_title.js @@ -15,7 +15,7 @@ import { retrieveNameSpaceName, retrieveNodeName } from './show_view_data'; const pgAdmin = pgWindow.pgAdmin; export function getDatabaseLabel(parentData) { - return parentData.database ? parentData.database.label + return parentData.database ? parentData.database._label : parentData.server?.db; } @@ -74,7 +74,7 @@ export function getPanelTitle(pgBrowser, selected_item=null, custom_title=null, var title_data = { 'database': db_label, 'username': parentData.server.user.name, - 'server': parentData.server.label, + 'server': parentData.server._label, 'type': 'query_tool', }; @@ -132,7 +132,7 @@ export function generateTitle(title_placeholder, title_data) { title_placeholder = title_placeholder.replace('%DATABASE%', _.unescape(title_data.database)); } - return _.escape(title_placeholder); + return title_placeholder; } /* diff --git a/web/regression/javascript/search_objects/search_objects_dialog_spec.js b/web/regression/javascript/search_objects/search_objects_dialog_spec.js index cd4300e49..31fb68f1f 100644 --- a/web/regression/javascript/search_objects/search_objects_dialog_spec.js +++ b/web/regression/javascript/search_objects/search_objects_dialog_spec.js @@ -82,6 +82,7 @@ describe('SearchObjectsDialog', () => { _type: 'server', user: {name: 'username'}, label: 'theserver', + _label: 'theserver', }, children: [ { @@ -90,6 +91,7 @@ describe('SearchObjectsDialog', () => { _type: 'database', _id: 11, label: 'thedatabase', + _label: 'thedatabase', }, }, ],