aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAcho Arnold <arnold@archlinux.info>2014-04-17 16:44:08 +0100
committerGervase Markham <gerv@gerv.net>2014-04-17 16:44:08 +0100
commit08f83a7fd0618065e2cbae443674e44fac8102e2 (patch)
treefdc7123b87380b4448490cae812e39a7ceccddd1
parent23bad39c2d516b7834b4fa95de054bf1ed769e8e (diff)
downloadbugs-08f83a7fd0618065e2cbae443674e44fac8102e2.tar
bugs-08f83a7fd0618065e2cbae443674e44fac8102e2.tar.gz
bugs-08f83a7fd0618065e2cbae443674e44fac8102e2.tar.bz2
bugs-08f83a7fd0618065e2cbae443674e44fac8102e2.tar.xz
bugs-08f83a7fd0618065e2cbae443674e44fac8102e2.zip
Bug 984980 - add framework for keyboard shortcuts, and key to switch between preview and edit mode. Patch by <arnold@archlinux.info>, r=gerv, a=justdave.
-rw-r--r--js/field.js30
-rw-r--r--template/en/default/attachment/create.html.tmpl7
-rw-r--r--template/en/default/bug/show-header.html.tmpl6
3 files changed, 43 insertions, 0 deletions
diff --git a/js/field.js b/js/field.js
index 892c8669f..b7e90ce1c 100644
--- a/js/field.js
+++ b/js/field.js
@@ -1083,3 +1083,33 @@ function updateRemainingTime() {
// if the remaining time is changed manually, update bz_remaining_time
bz_remaining_time = document.changeform.remaining_time.value;
}
+
+var keys = [];
+function keys_pressed(e, bug_id) {
+ // Store an entry for every key pressed
+ keys[e.keyCode] = true;
+
+ // (Ctrl XOR cmd) + Shift + P
+ if ((!keys[17] != !keys[224]) && keys[16] && keys[80]) {
+ // Check if we are already in preview mode
+ if (YAHOO.util.Dom.hasClass('comment_preview_tab', 'active_comment_tab')){
+ show_comment_edit();
+ document.getElementById('comment').focus();
+ YAHOO.util.Event.preventDefault(e);
+ }
+
+ else {
+ // Ensure that we switch to preview mode only if the textarea is in focus
+ var comment = document.getElementById('comment');
+ if (document.activeElement == comment) {
+ show_comment_preview(bug_id);
+ YAHOO.util.Event.preventDefault(e);
+ }
+ }
+ }
+}
+
+function keys_released(e) {
+ // Mark keys that were released
+ keys[e.keyCode] = false;
+} \ No newline at end of file
diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl
index 18cc12640..feb6d2931 100644
--- a/template/en/default/attachment/create.html.tmpl
+++ b/template/en/default/attachment/create.html.tmpl
@@ -11,6 +11,13 @@
[% header = BLOCK %]Create New Attachment for
[%+ "$terms.Bug $bug.bug_id" FILTER bug_link(bug) FILTER none %][% END %]
[% subheader = BLOCK %][% bug.short_desc FILTER html %][% END %]
+[% javascript = BLOCK %]
+ YAHOO.util.Event.onDOMReady(function() {
+ YAHOO.util.Event.addListener(window, 'keydown', keys_pressed, [% bug.id FILTER none %]);
+ YAHOO.util.Event.addListener(window, 'keyup', keys_released);
+ });
+[% END %]
+
[% PROCESS global/header.html.tmpl
title = title
diff --git a/template/en/default/bug/show-header.html.tmpl b/template/en/default/bug/show-header.html.tmpl
index c340def17..946b50abf 100644
--- a/template/en/default/bug/show-header.html.tmpl
+++ b/template/en/default/bug/show-header.html.tmpl
@@ -56,6 +56,12 @@
[% javascript FILTER none %]
[% END %]
[% END %]
++[% javascript = BLOCK %]
+ YAHOO.util.Event.onDOMReady(function() {
+ YAHOO.util.Event.addListener(window, 'keydown', keys_pressed, [% bug.id FILTER none %]);
+ YAHOO.util.Event.addListener(window, 'keyup', keys_released);
+ });
+[% END %]
[% style_urls = ['skins/standard/bug.css'] %]
[% doc_section = "using.html#anatomy-of-a-bug" %]
[% bodyclasses = ['bz_bug',