From b8cb4d08b3b06bc22541d3366016403207742503 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 28 Dec 2012 15:42:02 +0400 Subject: help cleanup, use dijit dialog --- js/prefs.js | 166 ++++++++++++------------------------------------------------ 1 file changed, 33 insertions(+), 133 deletions(-) (limited to 'js/prefs.js') diff --git a/js/prefs.js b/js/prefs.js index 7ee88ab56..a193e1262 100644 --- a/js/prefs.js +++ b/js/prefs.js @@ -1009,9 +1009,9 @@ function validatePrefsReset() { } - function pref_hotkey_handler(e) { try { + if (e.target.nodeName == "INPUT" || e.target.nodeName == "TEXTAREA") return; var keycode = false; @@ -1034,151 +1034,65 @@ function pref_hotkey_handler(e) { var keychar = String.fromCharCode(keycode); if (keycode == 27) { // escape - if (Element.visible("hotkey_help_overlay")) { - Element.hide("hotkey_help_overlay"); - } hotkey_prefix = false; - closeInfoBox(); } if (keycode == 16) return; // ignore lone shift if (keycode == 17) return; // ignore lone ctrl - if ((keycode == 67 || keycode == 71) && !hotkey_prefix) { - hotkey_prefix = keycode; + if (!shift_key) keychar = keychar.toLowerCase(); + + var hotkeys = getInitParam("hotkeys"); + + if (!hotkey_prefix && hotkeys[0].indexOf(keychar) != -1) { var date = new Date(); var ts = Math.round(date.getTime() / 1000); + hotkey_prefix = keychar; hotkey_prefix_pressed = ts; cmdline.innerHTML = keychar; Element.show(cmdline); - console.log("KP: PREFIX=" + keycode + " CHAR=" + keychar); - return; - } - - if (Element.visible("hotkey_help_overlay")) { - Element.hide("hotkey_help_overlay"); + return true; } - if (keycode == 13 || keycode == 27) { - seq = ""; - } else { - seq = seq + "" + keycode; - } - - /* Global hotkeys */ - Element.hide(cmdline); - if (!hotkey_prefix) { - - if ((keycode == 191 || keychar == '?') && shift_key) { // ? - showHelp(); - return false; - } - - if (keycode == 191 || keychar == '/') { // / - var search_boxes = new Array("label_search", - "feed_search", "filter_search", "user_search", "feed_browser_search"); - - for (var i = 0; i < search_boxes.length; i++) { - var elem = $(search_boxes[i]); - if (elem) { - $(search_boxes[i]).focus(); - return false; - } - } - } - } - - /* Prefix c */ - - if (hotkey_prefix == 67) { // c - hotkey_prefix = false; - - if (keycode == 70) { // f - quickAddFilter(); - return false; - } - - if (keycode == 83) { // s - quickAddFeed(); - return false; - } - - if (keycode == 85) { // u - // no-op - } - - if (keycode == 67) { // c - editFeedCats(); - return false; - } - - if (keycode == 84 && shift_key) { // T - feedBrowser(); - return false; - } - - } - - /* Prefix g */ - - if (hotkey_prefix == 71) { // g - - hotkey_prefix = false; - - if (keycode == 49 && $("genConfigTab")) { // 1 - selectTab("genConfig"); - return false; - } - - if (keycode == 50 && $("feedConfigTab")) { // 2 - selectTab("feedConfig"); - return false; - } - - if (keycode == 51 && $("filterConfigTab")) { // 4 - selectTab("filterConfig"); - return false; - } - - if (keycode == 52 && $("labelConfigTab")) { // 5 - selectTab("labelConfig"); - return false; - } - - if (keycode == 53 && $("userConfigTab")) { // 6 - selectTab("userConfig"); - return false; - } - - if (keycode == 88) { // x - return gotoMain(); - } + var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")"; + hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey; + hotkey_prefix = false; - } + var hotkey_action = false; + var hotkeys = getInitParam("hotkeys"); - if ($("piggie")) { - if (seq.match("8073717369")) { - seq = ""; - piggie(true); - } else { - piggie(false); + for (sequence in hotkeys[1]) { + if (sequence == hotkey) { + hotkey_action = hotkeys[1][sequence]; + break; } } - if (hotkey_prefix) { - console.log("KP: PREFIX=" + hotkey_prefix + " CODE=" + keycode + " CHAR=" + keychar); - } else { - console.log("KP: CODE=" + keycode + " CHAR=" + keychar); + switch (hotkey_action) { + case "feed_subscribe": + quickAddFeed(); + return true; + case "create_label": + addLabel(); + return true; + case "create_filter": + quickAddFilter(); + return true; + case "help_dialog": + //helpDialog("prefs"); + return false; + default: + console.log("unhandled action: " + hotkey_action + "; hotkey: " + hotkey); } } catch (e) { - exception_error("pref_hotkey_handler", e); + exception_error("hotkey_handler", e); } } @@ -1855,20 +1769,6 @@ function insertSSLserial(value) { } } -function showHelp() { - try { - new Ajax.Request("backend.php", { - parameters: "?op=backend&method=help&topic=prefs", - onComplete: function(transport) { - $("hotkey_help_overlay").innerHTML = transport.responseText; - Effect.Appear("hotkey_help_overlay", {duration : 0.3}); - } }); - - } catch (e) { - exception_error("showHelp", e); - } -} - function gotoExportOpml(filename, settings) { tmp = settings ? 1 : 0; document.location.href = "backend.php?op=opml&method=export&filename=" + filename + "&settings=" + tmp; -- cgit v1.2.3