]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 984980 - add framework for keyboard shortcuts, and key to switch between preview...
authorAcho Arnold <arnold@archlinux.info>
Thu, 17 Apr 2014 15:44:08 +0000 (16:44 +0100)
committerGervase Markham <gerv@gerv.net>
Thu, 17 Apr 2014 15:44:08 +0000 (16:44 +0100)
js/field.js
template/en/default/attachment/create.html.tmpl
template/en/default/bug/show-header.html.tmpl

index 892c8669f6cd946445931a6554a7e4cdd322bd20..b7e90ce1c2617f731c5d03cd0a653d8e3f636b3e 100644 (file)
@@ -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
index 18cc1264053d296577962c96e83fe652ece94db0..feb6d2931cee0c8da628eeb7c2db51adc6772462 100644 (file)
 [% 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
index c340def1739ffc13aa8ff6bfdea5260f5487b554..946b50abf2ef5981e86b3fb2dcbd1b833867ca0c 100644 (file)
     [% 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',