Hi,
PFA patch which will add functionality to allow user to comment/uncomment
code in query editor.
RM#2456
--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/docs/en_US/keyboard_shortcuts.rst
b/docs/en_US/keyboard_shortcuts.rst
index 2194d63..9de6103 100644
--- a/docs/en_US/keyboard_shortcuts.rst
+++ b/docs/en_US/keyboard_shortcuts.rst
@@ -59,6 +59,8 @@ When using the syntax-highlighting SQL editors, the following
shortcuts are avai
+--------------------------+------------------+-------------------------------------+
| Shift+Tab | Shift+Tab | Un-indent selected text
|
+--------------------------+------------------+-------------------------------------+
+| Shift+Ctrl+/ | Shift+Ctrl+/ | Comment/Uncomment selected
text |
++--------------------------+------------------+-------------------------------------+
**Query Tool**
diff --git a/web/pgadmin/tools/datagrid/templates/datagrid/index.html
b/web/pgadmin/tools/datagrid/templates/datagrid/index.html
index 4bb38c4..b9fe89d 100644
--- a/web/pgadmin/tools/datagrid/templates/datagrid/index.html
+++ b/web/pgadmin/tools/datagrid/templates/datagrid/index.html
@@ -217,6 +217,10 @@
</button>
<ul class="dropdown-menu dropdown-menu">
<li>
+ <a id="btn-toggle-comment" href="#">
+ <i class="fa fa-code" aria-hidden="true"></i>
+ <span> {{ _('Comment/Uncomment Code') }} </span>
+ </a>
<a id="btn-clear" href="#">
<i class="fa fa-eraser" aria-hidden="true"></i>
<span> {{ _('Clear Query Window') }} </span>
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
index 8a797ab..3cf9fc6 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -28,6 +28,7 @@ define([
'codemirror/addon/search/jump-to-line',
'codemirror/addon/edit/matchbrackets',
'codemirror/addon/edit/closebrackets',
+ 'codemirror/addon/comment/comment',
'backgrid.sizeable.columns',
'slick.pgadmin.formatters',
@@ -50,7 +51,8 @@ define([
// Define key codes for shortcut keys
var F5_KEY = 116,
F7_KEY = 118,
- F8_KEY = 119;
+ F8_KEY = 119,
+ FWD_SLASH_KEY = 191;
var is_query_running = false;
@@ -102,6 +104,7 @@ define([
"click #btn-explain-costs": "on_explain_costs",
"click #btn-explain-buffers": "on_explain_buffers",
"click #btn-explain-timing": "on_explain_timing",
+ "click #btn-toggle-comment": "on_toggle_comment_code",
"change .limit": "on_limit_change",
"keydown": "keyAction"
},
@@ -1288,6 +1291,17 @@ define([
);
},
+ // Callback function for the comment/uncomment selected code
+ on_toggle_comment_code: function() {
+ var self = this;
+ // Trigger the comment signal to the SqlEditorController class
+ self.handler.trigger(
+ 'pgadmin-sqleditor:toggle_comment_code',
+ self,
+ self.handler
+ );
+ },
+
// Callback function for the clear button click.
on_clear: function(ev) {
var self = this, sql;
@@ -1498,6 +1512,10 @@ define([
// Download query result as CSV.
this.on_download(ev);
ev.preventDefault();
+ } else if (ev.shiftKey && ev.ctrlKey && keyCode == FWD_SLASH_KEY ) {
+ // Toggle comments
+ this.on_toggle_comment_code(ev);
+ ev.preventDefault();
}
}
});
@@ -1587,6 +1605,8 @@ define([
self.on('pgadmin-sqleditor:button:explain-costs',
self._explain_costs, self);
self.on('pgadmin-sqleditor:button:explain-buffers',
self._explain_buffers, self);
self.on('pgadmin-sqleditor:button:explain-timing',
self._explain_timing, self);
+ self.on('pgadmin-sqleditor:toggle_comment_code',
self._toggle_comment_code, self);
+
if (self.is_query_tool) {
self.gridView.query_tool_obj.refresh();
@@ -3635,6 +3655,25 @@ define([
},
/*
+ * This function will comment/uncomment code
+ */
+ _toggle_comment_code: function() {
+ var self = this, editor = self.gridView.query_tool_obj,
+ selected_code = editor.getSelection(),
+ sql = selected_code.length > 0 ? selected_code : editor.getValue();
+ // If it is an empty query, do nothing.
+ if (sql.length <= 0) return;
+
+ // Find the code selection range
+ var range = {
+ from: editor.getCursor(true),
+ to: editor.getCursor(false)
+ };
+ // Comment/Uncomment code
+ editor.toggleComment(range.from, range.to);
+ },
+
+ /*
* This function get explain options and auto rollback/auto commit
* values from preferences
*/