1) Added tooltip & keyboard shortcut for the query tool button.

2) Fixed TypeError issue.

refs #4059
pull/35/head
Rahul Shirsat 2020-09-09 19:32:33 +05:30 committed by Akshay Joshi
parent 1bc1ef7f17
commit 62e6848dc8
6 changed files with 42 additions and 5 deletions

View File

@ -199,6 +199,7 @@ function keyboardShortcutsQueryTool(
let commitKeys = sqlEditorController.preferences.commit_transaction; let commitKeys = sqlEditorController.preferences.commit_transaction;
let rollbackKeys = sqlEditorController.preferences.rollback_transaction; let rollbackKeys = sqlEditorController.preferences.rollback_transaction;
let saveDataKeys = sqlEditorController.preferences.save_data; let saveDataKeys = sqlEditorController.preferences.save_data;
let queryToolKeys = sqlEditorController.preferences.show_query_tool;
if (this.validateShortcutKeys(executeKeys, event)) { if (this.validateShortcutKeys(executeKeys, event)) {
this._stopEventPropagation(event); this._stopEventPropagation(event);
@ -230,6 +231,9 @@ function keyboardShortcutsQueryTool(
} else if (this.validateShortcutKeys(saveDataKeys, event)) { } else if (this.validateShortcutKeys(saveDataKeys, event)) {
this._stopEventPropagation(event); this._stopEventPropagation(event);
queryToolActions.saveDataChanges(sqlEditorController); queryToolActions.saveDataChanges(sqlEditorController);
} else if (this.validateShortcutKeys(queryToolKeys, event)) {
this._stopEventPropagation(event);
queryToolActions.openQueryTool(sqlEditorController);
} else if (( } else if ((
(this.isMac() && event.metaKey) || (this.isMac() && event.metaKey) ||
(!this.isMac() && event.ctrlKey) (!this.isMac() && event.ctrlKey)

View File

@ -161,6 +161,14 @@ let queryToolActions = {
sqlEditorController.close_on_save = false; sqlEditorController.close_on_save = false;
sqlEditorController.save_data(); sqlEditorController.save_data();
}, },
openQueryTool: function (sqlEditorController) {
sqlEditorController.gridView.handler.trigger(
'pgadmin-sqleditor:button:show_query_tool',
sqlEditorController.gridView,
sqlEditorController.gridView.handler
);
},
}; };
module.exports = queryToolActions; module.exports = queryToolActions;

View File

@ -136,6 +136,12 @@ function updateUIPreferences(sqlEditor) {
.attr('aria-label', .attr('aria-label',
shortcut_title(gettext('Rollback'),preferences.rollback_transaction)); shortcut_title(gettext('Rollback'),preferences.rollback_transaction));
$el.find('#btn-show-query-tool')
.attr('title',
shortcut_title(gettext('Query tool'),preferences.show_query_tool))
.attr('aria-label',
shortcut_title(gettext('Query tool'),preferences.show_query_tool));
/* Set explain options on query editor */ /* Set explain options on query editor */
if (preferences.explain_verbose){ if (preferences.explain_verbose){
$el.find('.explain-verbose').removeClass('visibility-hidden'); $el.find('.explain-verbose').removeClass('visibility-hidden');

View File

@ -65,7 +65,15 @@ export function showQueryTool(datagrid, pgBrowser, alertify, url, aciTreeIdentif
const gridUrl = generateUrl(transId, queryToolTitle, parentData); const gridUrl = generateUrl(transId, queryToolTitle, parentData);
datagrid.launch_grid(transId, gridUrl, true, queryToolTitle, sURL); let retVal = datagrid.launch_grid(transId, gridUrl, true, queryToolTitle, sURL);
if(!retVal) {
alertify.alert(
gettext('Query tool launch error'),
gettext(
'Please allow the pop-ups for this site to perform the desired action. If the main window of pgAdmin is closed then close this window and open a new pgAdmin session.'
)
);
}
} }
export function generateScript(parentData, datagrid) { export function generateScript(parentData, datagrid) {

View File

@ -17,7 +17,6 @@
<div class="btn-group mr-1" role="group" aria-label=""> <div class="btn-group mr-1" role="group" aria-label="">
<button id="btn-show-query-tool" type="button" class="btn btn-sm btn-primary-icon btn-show-query-tool" <button id="btn-show-query-tool" type="button" class="btn btn-sm btn-primary-icon btn-show-query-tool"
title="" title=""
accesskey=""
tabindex="0"> tabindex="0">
<i class="pg-font-icon icon-query-tool" aria-hidden="true" role="img"></i> <i class="pg-font-icon icon-query-tool" aria-hidden="true" role="img"></i>
</button> </button>

View File

@ -7,6 +7,8 @@
// //
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////
import {getTreeNodeHierarchyFromIdentifier} from 'sources/tree/pgadmin_tree_node';
define('tools.querytool', [ define('tools.querytool', [
'sources/gettext', 'sources/url_for', 'jquery', 'jquery.ui', 'sources/gettext', 'sources/url_for', 'jquery', 'jquery.ui',
'jqueryui.position', 'underscore', 'pgadmin.alertifyjs', 'jqueryui.position', 'underscore', 'pgadmin.alertifyjs',
@ -151,7 +153,8 @@ define('tools.querytool', [
reflectPreferences: function() { reflectPreferences: function() {
let self = this, let self = this,
browser = pgWindow.default.pgAdmin.Browser; browser = pgWindow.default.pgAdmin.Browser,
browser_preferences = browser.get_preferences_for_module('browser');
/* pgBrowser is different obj from pgWindow.default.pgAdmin.Browser /* pgBrowser is different obj from pgWindow.default.pgAdmin.Browser
* Make sure to get only the latest update. Older versions will be discarded * Make sure to get only the latest update. Older versions will be discarded
@ -162,6 +165,7 @@ define('tools.querytool', [
if(pgBrowser.preference_version() < browser.preference_version()){ if(pgBrowser.preference_version() < browser.preference_version()){
pgBrowser.preference_version(browser.preference_version()); pgBrowser.preference_version(browser.preference_version());
self.preferences = browser.get_preferences_for_module('sqleditor'); self.preferences = browser.get_preferences_for_module('sqleditor');
self.preferences.show_query_tool = browser_preferences.sub_menu_query_tool;
self.handler.preferences = self.preferences; self.handler.preferences = self.preferences;
queryToolPref.updateUIPreferences(self); queryToolPref.updateUIPreferences(self);
} }
@ -2078,12 +2082,20 @@ define('tools.querytool', [
if(!d) if(!d)
return; return;
const parentData = getTreeNodeHierarchyFromIdentifier.call(pgWindow.default.pgAdmin.Browser, i);
if(!parentData) {
return;
}
let conn_param = parentData.database || parentData.server;
var selected_tree_node = { t, i, d }; var selected_tree_node = { t, i, d };
if(!pgWindow.default.pgAdmin.selected_tree_map) if(!pgWindow.default.pgAdmin.selected_tree_map)
pgWindow.default.pgAdmin.selected_tree_map = new Map(); pgWindow.default.pgAdmin.selected_tree_map = new Map();
pgWindow.default.pgAdmin.selected_tree_map.set(d._pid.toString(), selected_tree_node); pgWindow.default.pgAdmin.selected_tree_map.set(conn_param._id.toString(), selected_tree_node);
}; };
_.extend( _.extend(
@ -4306,7 +4318,7 @@ define('tools.querytool', [
var self = this; var self = this;
setTimeout(() => { setTimeout(() => {
var tree_node = pgWindow.default.pgAdmin.selected_tree_map.get(self.url_params.did); var tree_node = pgWindow.default.pgAdmin.selected_tree_map.get(self.url_params.did || self.url_params.sid);
if(self.preferences.new_browser_tab) { if(self.preferences.new_browser_tab) {
is_main_window_alive(); is_main_window_alive();
} }