diff options
author | Acho Arnold <arnold@archlinux.info> | 2014-04-17 16:44:08 +0100 |
---|---|---|
committer | Gervase Markham <gerv@gerv.net> | 2014-04-17 16:44:08 +0100 |
commit | 08f83a7fd0618065e2cbae443674e44fac8102e2 (patch) | |
tree | fdc7123b87380b4448490cae812e39a7ceccddd1 | |
parent | 23bad39c2d516b7834b4fa95de054bf1ed769e8e (diff) | |
download | bugs-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.js | 30 | ||||
-rw-r--r-- | template/en/default/attachment/create.html.tmpl | 7 | ||||
-rw-r--r-- | template/en/default/bug/show-header.html.tmpl | 6 |
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', |