}
}
-function viewfeed(feed, subop, is_cat, subop_param) {
+function viewfeed(feed, subop, is_cat, subop_param, skip_history) {
try {
enableHotkeys();
+ if (!skip_history) {
+ history_push('FEED:' + feed + ':' + subop + ':' + is_cat +
+ ':' + subop_param);
+ }
+
var toolbar_query = Form.serialize("main_toolbar_form");
var toolbar_form = document.forms["main_toolbar_form"];
}
}
- if (typeof localHotkeyHandler != 'undefined') {
- try {
- localHotkeyHandler(keycode);
- } catch (e) {
- exception_error("hotkey_handler, local:", e);
- }
- }
-
if (keycode == 68 && shift_key) { // d
if (!debug_mode_enabled) {
document.getElementById('debug_output').style.display = 'block';
debug_mode_enabled = !debug_mode_enabled;
}
+ if (typeof localHotkeyHandler != 'undefined') {
+ try {
+ return localHotkeyHandler(e);
+ } catch (e) {
+ exception_error("hotkey_handler, local:", e);
+ }
+ }
+
debug("KP=" + keycode);
} catch (e) {
exception_error("hotkey_handler", e);
var init_params = new Object();
+var op_history = new Array();
+
function toggleTags() {
display_tags = !display_tags;
}
}
+function localHotkeyHandler(e) {
+
+ var keycode;
+
+ if (window.event) {
+ keycode = window.event.keyCode;
+ } else if (e) {
+ keycode = e.which;
+ }
+
+ var shift_key = false;
+
+ try {
+ shift_key = e.shiftKey;
+ } catch (e) { }
+
+ if (keycode == 66 && shift_key) { // shift-B
+
+ var op = history_pop();
+
+ if (op) {
+ var op_s = op.split(":");
+
+ var i;
+ for (i = 0; i < op_s.length; i++) {
+ if (op_s[i] == 'undefined') {
+ op_s[i] = undefined;
+ }
+
+ if (op_s[i] == 'false') {
+ op_s[i] = false;
+ }
+
+ if (op_s[i] == 'true') {
+ op_s[i] = true;
+ }
+
+ }
+
+ debug("history split: " + op_s);
+
+ if (op_s[0] == "ARTICLE") {
+ debug("history: reverting to article " + op_s[1] + "/" + op_s[2]);
+ view(op_s[1], op_s[2], true);
+ }
+
+ if (op_s[0] == "FEED") {
+ viewfeed(op_s[1], op_s[2], op_s[3], op_s[4], true);
+ }
+
+ } else {
+ notify("No operation to undo");
+ }
+
+ return false;
+
+ }
+
+ debug("LKP=" + keycode);
+}
+
+function history_push(op) {
+ debug("history_push: " + op);
+ op_history.push(op);
+
+ while (op_history.length > 30) {
+ op_history.shift();
+ }
+}
+
+function history_pop() {
+ var op = op_history.pop();
+ debug("history_pop: " + op);
+ return op;
+}
+
+function history_clear() {
+ debug("history_clear");
+ op_history.clear();
+}
}
}
-function view(id, feed_id) {
+function view(id, feed_id, skip_history) {
try {
debug("loading article: " + id + "/" + feed_id);
+
+ if (!skip_history) {
+ history_push("ARTICLE:" + id + ":" + feed_id);
+ }
enableHotkeys();