unify frontend hotkey handlers
This commit is contained in:
parent
772bc83b8d
commit
ee1f45f4c7
34
feedlist.js
34
feedlist.js
|
@ -130,40 +130,6 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function localHotkeyHandler(keycode) {
|
|
||||||
|
|
||||||
if (keycode == 65) { // a
|
|
||||||
return parent.toggleDispRead();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 85) { // u
|
|
||||||
if (parent.getActiveFeedId()) {
|
|
||||||
return viewfeed(parent.getActiveFeedId(), 0, "ForceUpdate");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 82) { // r
|
|
||||||
return parent.scheduleFeedUpdate(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
var feedlist = document.getElementById('feedList');
|
|
||||||
|
|
||||||
if (keycode == 74) { // j
|
|
||||||
var feed = getActiveFeedId();
|
|
||||||
var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
|
|
||||||
if (new_feed) viewfeed(new_feed, 0, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 75) { // k
|
|
||||||
var feed = getActiveFeedId();
|
|
||||||
var new_feed = getRelativeFeedId(feedlist, feed, 'next');
|
|
||||||
if (new_feed) viewfeed(new_feed, 0, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
// alert("KC: " + keycode);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleCollapseCat(cat) {
|
function toggleCollapseCat(cat) {
|
||||||
try {
|
try {
|
||||||
if (!xmlhttp_ready(xmlhttp)) {
|
if (!xmlhttp_ready(xmlhttp)) {
|
||||||
|
|
117
functions.js
117
functions.js
|
@ -14,10 +14,13 @@ function exception_error(location, e) {
|
||||||
msg = "Exception: " + e.name + ", " + e.message +
|
msg = "Exception: " + e.name + ", " + e.message +
|
||||||
"\nFunction: " + location + "()" +
|
"\nFunction: " + location + "()" +
|
||||||
"\nLocation: " + base_fname + ":" + e.lineNumber;
|
"\nLocation: " + base_fname + ":" + e.lineNumber;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
msg = "Exception: " + e + "\nFunction: " + location + "()";
|
msg = "Exception: " + e + "\nFunction: " + location + "()";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
debug("<b>EXCEPTION: " + msg + "</b>");
|
||||||
|
|
||||||
alert(msg);
|
alert(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,40 +151,85 @@ var seq = "";
|
||||||
|
|
||||||
function hotkey_handler(e) {
|
function hotkey_handler(e) {
|
||||||
|
|
||||||
var keycode;
|
try {
|
||||||
|
|
||||||
if (!hotkeys_enabled) return;
|
var keycode;
|
||||||
|
|
||||||
if (window.event) {
|
|
||||||
keycode = window.event.keyCode;
|
|
||||||
} else if (e) {
|
|
||||||
keycode = e.which;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 13 || keycode == 27) {
|
|
||||||
seq = "";
|
|
||||||
} else {
|
|
||||||
seq = seq + "" + keycode;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (document.getElementById("piggie")) {
|
|
||||||
|
|
||||||
if (seq.match("807371717369")) {
|
|
||||||
seq = "";
|
|
||||||
localPiggieFunction(true);
|
|
||||||
} else {
|
|
||||||
localPiggieFunction(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof localHotkeyHandler != 'undefined') {
|
if (!hotkeys_enabled) return;
|
||||||
try {
|
|
||||||
localHotkeyHandler(keycode);
|
if (window.event) {
|
||||||
} catch (e) {
|
keycode = window.event.keyCode;
|
||||||
exception_error("hotkey_handler", e);
|
} else if (e) {
|
||||||
|
keycode = e.which;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keycode == 13 || keycode == 27) {
|
||||||
|
seq = "";
|
||||||
|
} else {
|
||||||
|
seq = seq + "" + keycode;
|
||||||
|
}
|
||||||
|
|
||||||
|
var m_ctx = getMainContext();
|
||||||
|
var f_ctx = getFeedsContext();
|
||||||
|
var h_ctx = getHeadlinesContext();
|
||||||
|
|
||||||
|
if (keycode == 82) { // r
|
||||||
|
return m_ctx.scheduleFeedUpdate(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keycode == 85) { // u
|
||||||
|
if (getActiveFeedId()) {
|
||||||
|
return f_ctx.viewfeed(getActiveFeedId(), 0, "ForceUpdate");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keycode == 65) { // a
|
||||||
|
return m_ctx.toggleDispRead();
|
||||||
|
}
|
||||||
|
|
||||||
|
var f_doc = m_ctx.frames["feeds-frame"].document;
|
||||||
|
var feedlist = f_doc.getElementById('feedList');
|
||||||
|
|
||||||
|
if (keycode == 74) { // j
|
||||||
|
var feed = getActiveFeedId();
|
||||||
|
var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
|
||||||
|
if (new_feed) viewfeed(new_feed, 0, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keycode == 75) { // k
|
||||||
|
var feed = getActiveFeedId();
|
||||||
|
var new_feed = getRelativeFeedId(feedlist, feed, 'next');
|
||||||
|
if (new_feed) viewfeed(new_feed, 0, '');
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
if (keycode == 78 || keycode == 40) { // n, down
|
||||||
|
return h_ctx.moveToPost('next');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (keycode == 80 || keycode == 38) { // p, up
|
||||||
|
return h_ctx.moveToPost('prev');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (document.getElementById("piggie")) {
|
||||||
|
|
||||||
|
if (seq.match("807371717369")) {
|
||||||
|
seq = "";
|
||||||
|
localPiggieFunction(true);
|
||||||
|
} else {
|
||||||
|
localPiggieFunction(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof localHotkeyHandler != 'undefined') {
|
||||||
|
try {
|
||||||
|
localHotkeyHandler(keycode);
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("hotkey_handler, local:", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("hotkey_handler", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function cleanSelectedList(element) {
|
function cleanSelectedList(element) {
|
||||||
|
@ -1070,6 +1118,15 @@ function getFeedsContext() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getHeadlinesContext() {
|
||||||
|
try {
|
||||||
|
return getMainContext().frames["headlines-frame"];
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("getHeadlinesContext", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function debug(msg) {
|
function debug(msg) {
|
||||||
var ctx = getMainContext();
|
var ctx = getMainContext();
|
||||||
|
|
||||||
|
|
35
tt-rss.js
35
tt-rss.js
|
@ -288,41 +288,6 @@ function localPiggieFunction(enable) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function localHotkeyHandler(keycode) {
|
|
||||||
|
|
||||||
if (keycode == 82) { // r
|
|
||||||
return scheduleFeedUpdate(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 85) { // u
|
|
||||||
if (getActiveFeedId()) {
|
|
||||||
return viewfeed(getActiveFeedId(), 0, "ForceUpdate");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 65) { // a
|
|
||||||
return toggleDispRead();
|
|
||||||
}
|
|
||||||
|
|
||||||
var f_doc = window.frames["feeds-frame"].document;
|
|
||||||
var feedlist = f_doc.getElementById('feedList');
|
|
||||||
|
|
||||||
if (keycode == 74) { // j
|
|
||||||
var feed = getActiveFeedId();
|
|
||||||
var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
|
|
||||||
if (new_feed) viewfeed(new_feed, 0, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 75) { // k
|
|
||||||
var feed = getActiveFeedId();
|
|
||||||
var new_feed = getRelativeFeedId(feedlist, feed, 'next');
|
|
||||||
if (new_feed) viewfeed(new_feed, 0, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
// notify("KC: " + keycode);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// if argument is undefined, current subtitle is not updated
|
// if argument is undefined, current subtitle is not updated
|
||||||
// use blank string to clear subtitle
|
// use blank string to clear subtitle
|
||||||
function updateTitle(s) {
|
function updateTitle(s) {
|
||||||
|
|
116
viewfeed.js
116
viewfeed.js
|
@ -22,38 +22,42 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
|
||||||
}
|
}
|
||||||
|
|
||||||
function view(id, feed_id) {
|
function view(id, feed_id) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
parent.debug("loading article: " + id + "/" + feed_id);
|
debug("loading article: " + id + "/" + feed_id);
|
||||||
|
|
||||||
var f_document = parent.frames["feeds-frame"].document;
|
var f_document = getFeedsContext().document;
|
||||||
var h_document = document;
|
var m_document = parent.document;
|
||||||
var m_document = parent.document;
|
|
||||||
|
enableHotkeys();
|
||||||
enableHotkeys();
|
|
||||||
|
var crow = document.getElementById("RROW-" + id);
|
||||||
var crow = h_document.getElementById("RROW-" + id);
|
|
||||||
|
crow.className = crow.className.replace("Unread", "");
|
||||||
crow.className = crow.className.replace("Unread", "");
|
|
||||||
|
cleanSelected("headlinesList");
|
||||||
cleanSelected("headlinesList");
|
|
||||||
|
var upd_img_pic = document.getElementById("FUPDPIC-" + id);
|
||||||
var upd_img_pic = h_document.getElementById("FUPDPIC-" + id);
|
|
||||||
|
if (upd_img_pic) {
|
||||||
if (upd_img_pic) {
|
upd_img_pic.src = "images/blank_icon.gif";
|
||||||
upd_img_pic.src = "images/blank_icon.gif";
|
}
|
||||||
}
|
|
||||||
|
active_post_id = id;
|
||||||
active_post_id = id;
|
setActiveFeedId(feed_id);
|
||||||
setActiveFeedId(feed_id);
|
|
||||||
|
var content = m_document.getElementById("content-frame");
|
||||||
var content = m_document.getElementById("content-frame");
|
|
||||||
|
content.src = "backend.php?op=view&id=" + param_escape(id) +
|
||||||
content.src = "backend.php?op=view&id=" + param_escape(id) +
|
"&feed=" + param_escape(feed_id);
|
||||||
"&feed=" + param_escape(feed_id);
|
|
||||||
|
selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
|
||||||
selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
|
markHeadline(active_post_id);
|
||||||
markHeadline(active_post_id);
|
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("view", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleMark(id) {
|
function toggleMark(id) {
|
||||||
|
@ -155,58 +159,6 @@ function viewfeed(id) {
|
||||||
f.viewfeed(id, 0);
|
f.viewfeed(id, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function localHotkeyHandler(keycode) {
|
|
||||||
|
|
||||||
if (keycode == 78 || keycode == 40) { // n, down
|
|
||||||
return moveToPost('next');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 80 || keycode == 38) { // p, up
|
|
||||||
return moveToPost('prev');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 65) { // a
|
|
||||||
return parent.toggleDispRead();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 85) { // u
|
|
||||||
if (parent.getActiveFeedId()) {
|
|
||||||
return parent.viewfeed(parent.getActiveFeedId(), 0, "ForceUpdate");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 82) { // r
|
|
||||||
return parent.scheduleFeedUpdate(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
var f_doc = parent.frames["feeds-frame"].document;
|
|
||||||
var feedlist = f_doc.getElementById('feedList');
|
|
||||||
|
|
||||||
if (keycode == 74) { // j
|
|
||||||
var feed = getActiveFeedId();
|
|
||||||
var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
|
|
||||||
if (new_feed) viewfeed(new_feed, 0, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (keycode == 75) { // k
|
|
||||||
var feed = getActiveFeedId();
|
|
||||||
var new_feed = getRelativeFeedId(feedlist, feed, 'next');
|
|
||||||
if (new_feed) viewfeed(new_feed, 0, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
// FIXME
|
|
||||||
// if (keycode == 85) {
|
|
||||||
// return viewfeed(active_feed_id, active_offset, "ForceUpdate");
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (keycode == 83) { // s
|
|
||||||
selectionToggleMarked();
|
|
||||||
}
|
|
||||||
|
|
||||||
// alert("KC: " + keycode);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleUnread(id, cmode) {
|
function toggleUnread(id, cmode) {
|
||||||
try {
|
try {
|
||||||
if (!xmlhttp_ready(xmlhttp_rpc)) {
|
if (!xmlhttp_ready(xmlhttp_rpc)) {
|
||||||
|
|
Loading…
Reference in New Issue