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 @@
-
+
- 1 | |
- 2 | |
- 3 | |
- 4 | |
- 5 | |
- 6 | |
+ g 1 | |
+ g 2 | |
+ g 3 | |
+ g 4 | |
+ g 5 | |
+ g 6 | |
|
@@ -21,7 +21,7 @@
|
c s | |
c f | |
c l | |
- c u | |
+
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 "".__('E-mail')." | ";
print " |
";
@@ -258,18 +260,24 @@
print "".__("Old password")." | ";
print " |
";
print "".__("New password")." | ";
print " |
";
print "".__("Confirm password")." | ";
print " |
";
@@ -394,7 +402,10 @@
print_radio($pref_name, $value, __("Yes"), array(__("Yes"), __("No")));
} else {
- print "";
+ print "";
}
print "";
diff --git a/prefs.js b/prefs.js
index 308c7b7aa..3e21ac62a 100644
--- a/prefs.js
+++ b/prefs.js
@@ -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");
}