public inbox for [email protected]
help / color / mirror / Atom feedFrom: Surinder Kumar <[email protected]>
To: Dave Page <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Subject: Re: [pgAdmin4][Patch]: RM#1478 - Make code mirror text editor keyboard shortcuts consistent irrespective of platform type
Date: Mon, 8 Aug 2016 19:04:17 +0530
Message-ID: <CAM5-9D_J_3fBVDw0gsd5V6uMQ=WNOOJSokgrvMVmkUbL7gUyNg@mail.gmail.com> (raw)
In-Reply-To: <CAM5-9D9A_hcssJ62RUeihYfTMY4zopqRsKioih5w5xd-e9FuKw@mail.gmail.com>
References: <CAM5-9D8ExeecjY6Mk7iZ_ZFs+iyLr1-6QtJR0djYvSO_65NtEw@mail.gmail.com>
<CA+OCxoy+NzJ+LJj4hqunCXprx0XpK7xZX975QOwXj+o32XEHYA@mail.gmail.com>
<CAM5-9D_qJN6GfLCdgpDr=fv4Ss+M17WnC2qFvnJK-4EPNAyXww@mail.gmail.com>
<CA+OCxowu8GSWiM=T3oAGZgcp7XVQG5pzuO=djU-zCDfV-ka=YA@mail.gmail.com>
<CAM5-9D9A_hcssJ62RUeihYfTMY4zopqRsKioih5w5xd-e9FuKw@mail.gmail.com>
List-Unsubscribe: <mailto:[email protected]?body=unsub%20pgadmin-hackers>
Hi Dave,
This patch contains following changes:
1. Add "*editor_shortcut_keys*" variable to *pgAdmin.Browser* in
*browser.js* object to make it accessible to all pgAdmin modules.
2. Apply shortcuts keys to following code mirror instances:
a) Query tool, Query filter & Datagrid.
b) Debugger tool.
c) Sql Panel.
d) SqlTab & SqlField Controls.
Please find updated patch and review.
On Mon, Aug 8, 2016 at 5:53 PM, Surinder Kumar <
[email protected]> wrote:
> On Mon, Aug 8, 2016 at 5:52 PM, Dave Page <[email protected]> wrote:
>
>> On Mon, Aug 8, 2016 at 1:15 PM, Surinder Kumar
>> <[email protected]> wrote:
>> > On Mon, Aug 8, 2016 at 4:43 PM, Dave Page <[email protected]> wrote:
>> >>
>> >> Hi Surinder,
>> >>
>> >> This looks very promising, but it only covers the query tool at
>> >> present. We need the shortcuts to apply to all codemirror instances.
>> >> Do the others work anyway, because we're invoking in a different way,
>> >> or is more work needed there?
>> >
>> > To apply the same shortcuts to other codemirror instances(e.g:
>> > SqlTabControl) we just need to set a parameter
>> > extraKeys: pgAdmin.editor_shortcut_keys for every codemirror instance.
>> > As of now, shortcuts are applicable to query tool & data filter.
>> >
>> > Also, we need to define pgAdmin.editor_shortcut_keys variable in
>> server.js
>> > instead of sqleditor.js to work it for
>> > other code mirror instances.
>>
>> OK, please update the patch to do that.
>>
>> Can you get that to me in the next hour or so? I'd like to include it in
>> beta 4.
>>
> Sure.
>
>>
>> >> On Fri, Aug 5, 2016 at 6:42 PM, Surinder Kumar
>> >> <[email protected]> wrote:
>> >> > Hi
>> >> >
>> >> > I found that Code-mirror library itself provides the List of keyboard
>> >> > shortcuts for Mac OSX and other platform type.
>> >> > We just need to pass them in extraKeys param while creating
>> code-mirror
>> >> > instance.
>> >> >
>> >> > Following is the keyboard shortcuts for various operations in text
>> >> > editor:
>> >> >
>> >> > Copy - [Ctrl-C, Cmd-C]
>> >> > Cut - [Ctrl-X, Cmd-X]
>> >> > Select All - [Ctrl-A, Cmd-A]
>> >> > Undo - [Ctrl-Z, Cmd-Z]
>> >> > Redo - [Ctrl-Y, Cmd-Y]
>> >> > Delete Line - [Ctrl-D, Cmd-D]
>> >> > Move left/right(words) - [Alt-Left, Alt-Right]
>> >> > Move start/end of line - [Cmd-Left, Cmd-Right] // Ctrl-Left/Right
>> are
>> >> > bound
>> >> > to System shortcuts. so these keys cannot be used.
>> >> >
>> >> > These keyboard shortcuts are consistent in Web/Runtime applications
>> in
>> >> > all
>> >> > platform types.
>> >> >
>> >> > Issue not fixed:
>> >> > keyboard shortcut for Paste text doesn't work in Mac Runtime only.
>> It is
>> >> > working on Linux runtime & Windows Runtime.
>> >> > An issue "Key shortcuts doesn't work on Mac OS for QWebView widget"
>> is
>> >> > also
>> >> > reported.
>> >> >
>> >> > I also found that right click paste is working in Mac Runtime which
>> is
>> >> > the
>> >> > feature of code-mirror, So I am looking into its code to figure out
>> and
>> >> > I
>> >> > will send a patch with fix once it gets fixed.
>> >> >
>> >> > Please find attached patch and review.
>> >> >
>> >> >
>> >> > Thanks,
>> >> > Surinder Kumar
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Sent via pgadmin-hackers mailing list ([email protected]
>> g)
>> >> > To make changes to your subscription:
>> >> > http://www.postgresql.org/mailpref/pgadmin-hackers
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Dave Page
>> >> Blog: http://pgsnake.blogspot.com
>> >> Twitter: @pgsnake
>> >>
>> >> EnterpriseDB UK: http://www.enterprisedb.com
>> >> The Enterprise PostgreSQL Company
>> >
>> >
>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Attachments:
[application/octet-stream] RM1478_v2.patch (4.7K, 3-RM1478_v2.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/templates/browser/js/browser.js b/web/pgadmin/browser/templates/browser/js/browser.js
index 95528b0..5b7e626 100644
--- a/web/pgadmin/browser/templates/browser/js/browser.js
+++ b/web/pgadmin/browser/templates/browser/js/browser.js
@@ -320,7 +320,8 @@ function(require, $, _, S, Bootstrap, pgAdmin, alertify, CodeMirror) {
lineNumbers: true,
lineWrapping: true,
mode: "text/x-pgsql",
- readOnly: true
+ readOnly: true,
+ extraKeys: pgAdmin.Browser.editor_shortcut_keys
});
setTimeout(function() {
@@ -708,6 +709,31 @@ function(require, $, _, S, Bootstrap, pgAdmin, alertify, CodeMirror) {
});
return preference;
+ },
+
+ editor_shortcut_keys: {
+ // Autocomplete sql command
+ "Ctrl-Space": "autocomplete",
+ "Cmd-Space": "autocomplete",
+ // Select All text
+ "Ctrl-A": "selectAll",
+ "Cmd-A": "selectAll",
+ // Redo text
+ "Ctrl-Y": "redo",
+ "Cmd-Y": "redo",
+ // Undo text
+ "Ctrl-Z": "undo",
+ "Cmd-Z": "undo",
+ // Delete Line
+ "Ctrl-D": "deleteLine",
+ "Cmd-D": "deleteLine",
+ // Go to beginning of line
+ "Cmd-Left": "goLineStart",
+ // Go to end of Line
+ "Cmd-Right": "goLineEnd",
+ // Move word by word left/right
+ "Alt-Left": "goGroupLeft",
+ "Alt-Right": "goGroupRight"
}
});
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index bc7d434..a741ade 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -1392,7 +1392,8 @@
lineNumbers: true,
lineWrapping: true,
mode: "text/x-pgsql",
- readOnly: true
+ readOnly: true,
+ extraKeys: pgAdmin.Browser.editor_shortcut_keys
});
return this;
@@ -2118,7 +2119,8 @@
(self.$el.find("textarea")[0]), {
lineNumbers: true,
mode: "text/x-sql",
- readOnly: isDisabled
+ readOnly: isDisabled,
+ extraKeys: pgAdmin.Browser.editor_shortcut_keys
});
if (!isVisible)
diff --git a/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js b/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js
index 1cb9c1e..7e8901c 100644
--- a/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js
+++ b/web/pgadmin/tools/datagrid/templates/datagrid/js/datagrid.js
@@ -243,7 +243,8 @@ define(
lineWrapping: true,
matchBrackets: true,
indentUnit: 4,
- mode: "text/x-pgsql"
+ mode: "text/x-pgsql",
+ extraKeys: pgBrowser.editor_shortcut_keys
});
},
diff --git a/web/pgadmin/tools/debugger/templates/debugger/js/direct.js b/web/pgadmin/tools/debugger/templates/debugger/js/direct.js
index 60a6710..676bff4 100644
--- a/web/pgadmin/tools/debugger/templates/debugger/js/direct.js
+++ b/web/pgadmin/tools/debugger/templates/debugger/js/direct.js
@@ -1422,7 +1422,8 @@ define(
},
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter", "breakpoints"],
mode: "text/x-pgsql",
- readOnly: true
+ readOnly: true,
+ extraKeys: pgAdmin.Browser.editor_shortcut_keys
});
// On loading the docker, register the callbacks
diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
index 2be2b49..41d8661 100644
--- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js
@@ -206,7 +206,8 @@ define(
rangeFinder: CodeMirror.fold.combine(CodeMirror.pgadminBeginRangeFinder, CodeMirror.pgadminIfRangeFinder,
CodeMirror.pgadminLoopRangeFinder, CodeMirror.pgadminCaseRangeFinder)
},
- gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"]
+ gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],
+ extraKeys: pgBrowser.editor_shortcut_keys
});
// Create main wcDocker instance
@@ -248,7 +249,7 @@ define(
CodeMirror.pgadminLoopRangeFinder, CodeMirror.pgadminCaseRangeFinder)
},
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"],
- extraKeys: {"Ctrl-Space": "autocomplete"}
+ extraKeys: pgBrowser.editor_shortcut_keys
});
// Create panels for 'Data Output', 'Explain', 'Messages' and 'History'
view thread (7+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: [pgAdmin4][Patch]: RM#1478 - Make code mirror text editor keyboard shortcuts consistent irrespective of platform type
In-Reply-To: <CAM5-9D_J_3fBVDw0gsd5V6uMQ=WNOOJSokgrvMVmkUbL7gUyNg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox