diff options
-rw-r--r-- | functions.js | 5 | ||||
-rw-r--r-- | help/4.php | 16 | ||||
-rw-r--r-- | modules/pref-prefs.php | 13 | ||||
-rw-r--r-- | prefs.js | 68 |
4 files changed, 87 insertions, 15 deletions
diff --git a/functions.js b/functions.js index eb036e3c4..e309c5e70 100644 --- a/functions.js +++ b/functions.js @@ -1237,6 +1237,8 @@ function infobox_callback2(transport) { { tokens: ',', paramName: "search" }); } + disableHotkeys(); + notify(""); } catch (e) { exception_error("infobox_callback2", e); @@ -1255,6 +1257,9 @@ function createFilter() { var query = Form.serialize("filter_add_form"); + // we can be called from some other tab in Prefs + if (active_tab) active_tab = "filterConfig"; + new Ajax.Request("backend.php?" + query, { onComplete: function (transport) { infobox_submit_callback2(transport); diff --git a/help/4.php b/help/4.php index 78eed93f3..d66a9cc5b 100644 --- a/help/4.php +++ b/help/4.php @@ -2,15 +2,15 @@ <table width='100%'><tr><td width='50%' valign='top'> - <h2><?php echo __("Navigation") ?></h2> + <h2><?php echo __("Go to...") ?></h2> <table> - <tr><td class='n'>1</td><td><?php echo __("Preferences") ?></td></tr> - <tr><td class='n'>2</td><td><?php echo __("My Feeds") ?></td></tr> - <tr><td class='n'>3</td><td><?php echo __("Other Feeds") ?></td></tr> - <tr><td class='n'>4</td><td><?php echo __("Content Filtering") ?></td></tr> - <tr><td class='n'>5</td><td><?php echo __("Label Editor") ?></td></tr> - <tr><td class='n'>6</td><td><?php echo __("User Manager") ?></td></tr> + <tr><td class='n'>g 1</td><td><?php echo __("Preferences") ?></td></tr> + <tr><td class='n'>g 2</td><td><?php echo __("My Feeds") ?></td></tr> + <tr><td class='n'>g 3</td><td><?php echo __("Other Feeds") ?></td></tr> + <tr><td class='n'>g 4</td><td><?php echo __("Content Filtering") ?></td></tr> + <tr><td class='n'>g 5</td><td><?php echo __("Label Editor") ?></td></tr> + <tr><td class='n'>g 6</td><td><?php echo __("User Manager") ?></td></tr> </table> </td><td valign='top'> @@ -21,7 +21,7 @@ <tr><td class='n'>c s</td><td><?php echo __("Subscribe to feed") ?></td></tr> <tr><td class='n'>c f</td><td><?php echo __("Create filter") ?></td></tr> <tr><td class='n'>c l</td><td><?php echo __("Create label") ?></td></tr> - <tr><td class='n'>c u</td><td><?php echo __("Create user") ?></td></tr> + <!-- <tr><td class='n'>c u</td><td><?php echo __("Create user") ?></td></tr> --> </table> <h2><?php echo __("Other actions") ?></h2> diff --git a/modules/pref-prefs.php b/modules/pref-prefs.php index 20cffe5e5..64d7cf6af 100644 --- a/modules/pref-prefs.php +++ b/modules/pref-prefs.php @@ -228,6 +228,8 @@ print "<tr><td width=\"40%\">".__('E-mail')."</td>"; print "<td><input class=\"editbox\" name=\"email\" + onfocus=\"javascript:disableHotkeys();\" + onblur=\"javascript:enableHotkeys();\" onkeypress=\"return filterCR(event, changeUserEmail)\" value=\"$email\"></td></tr>"; @@ -258,18 +260,24 @@ print "<tr><td width=\"40%\">".__("Old password")."</td>"; print "<td><input class=\"editbox\" type=\"password\" + onfocus=\"javascript:disableHotkeys();\" + onblur=\"javascript:enableHotkeys();\" onkeypress=\"return filterCR(event, changeUserPassword)\" name=\"OLD_PASSWORD\"></td></tr>"; print "<tr><td width=\"40%\">".__("New password")."</td>"; print "<td><input class=\"editbox\" type=\"password\" + onfocus=\"javascript:disableHotkeys();\" + onblur=\"javascript:enableHotkeys();\" onkeypress=\"return filterCR(event, changeUserPassword)\" name=\"NEW_PASSWORD\"></td></tr>"; print "<tr><td width=\"40%\">".__("Confirm password")."</td>"; print "<td><input class=\"editbox\" type=\"password\" + onfocus=\"javascript:disableHotkeys();\" + onblur=\"javascript:enableHotkeys();\" onkeypress=\"return filterCR(event, changeUserPassword)\" name=\"CONFIRM_PASSWORD\"></td></tr>"; @@ -394,7 +402,10 @@ print_radio($pref_name, $value, __("Yes"), array(__("Yes"), __("No"))); } else { - print "<input class=\"editbox\" name=\"$pref_name\" value=\"$value\">"; + print "<input class=\"editbox\" + onfocus=\"javascript:disableHotkeys();\" + onblur=\"javascript:enableHotkeys();\" + name=\"$pref_name\" value=\"$value\">"; } print "</td>"; @@ -316,6 +316,9 @@ function addLabel() { var query = Form.serialize("label_edit_form"); + // we can be called from some other tab + active_tab = "labelConfig"; + xmlhttp.open("GET", "backend.php?op=pref-labels&subop=add&" + query, true); xmlhttp.onreadystatechange=infobox_submit_callback; xmlhttp.send(null); @@ -404,6 +407,8 @@ function editLabel(id) { return } + disableHotkeys(); + notify_progress("Loading, please wait..."); document.getElementById("label_create_btn").disabled = true; @@ -427,6 +432,8 @@ function editUser(id) { return } + disableHotkeys(); + notify_progress("Loading, please wait..."); selectTableRowsByIdPrefix('prefUserList', 'UMRR-', 'UMCHK-', false); @@ -446,6 +453,8 @@ function editFilter(id) { return } + disableHotkeys(); + notify_progress("Loading, please wait..."); document.getElementById("create_filter_btn").disabled = true; @@ -467,6 +476,8 @@ function editFeed(feed) { return } + disableHotkeys(); + notify_progress("Loading, please wait..."); document.getElementById("subscribe_to_feed_btn").disabled = true; @@ -496,6 +507,8 @@ function editFeedCat(cat) { return } + disableHotkeys(); + notify_progress("Loading, please wait..."); active_feed_cat = cat; @@ -1293,15 +1306,21 @@ function selectTab(id, noupdate, subop) { updateBigFeedBrowser(); } } + + /* clean selection from all tabs */ - var tab = document.getElementById(active_tab + "Tab"); - - if (tab) { - if (tab.className.match("Selected")) { + var tabs_holder = document.getElementById("prefTabs"); + var tab = tabs_holder.firstChild; + + while (tab) { + if (tab.className && tab.className.match("prefsTabSelected")) { tab.className = "prefsTab"; } + tab = tab.nextSibling; } - + + /* mark new tab as selected */ + tab = document.getElementById(id + "Tab"); if (tab) { @@ -1683,6 +1702,12 @@ function pref_hotkey_handler(e) { if (keycode == 16) return; // ignore lone shift + if ((keycode == 67 || keycode == 71) && !hotkey_prefix) { + hotkey_prefix = keycode; + debug("KP: PREFIX=" + keycode); + return; + } + if (Element.visible("hotkey_help_overlay")) { Element.hide("hotkey_help_overlay"); } @@ -1718,7 +1743,38 @@ function pref_hotkey_handler(e) { return; } - if (keycode == 49) { // 1 + } + + /* Prefix c */ + + if (hotkey_prefix == 67) { // c + hotkey_prefix = false; + + if (keycode == 70) { // f + return displayDlg("quickAddFilter"); + } + + if (keycode == 83) { // s + return displayDlg("quickAddFeed"); + } + + if (keycode == 76) { // l + return displayDlg("quickAddLabel"); + } + + if (keycode == 85) { // u + // no-op + } + + } + + /* Prefix g */ + + if (hotkey_prefix == 71) { // g + + hotkey_prefix = false; + + if (keycode == 49 && document.getElementById("genConfigTab")) { // 1 selectTab("genConfig"); } |