var debug_mode_enabled = false;
var xmlhttp_rpc = Ajax.getTransport();
+/* add method to remove element from array */
+
+Array.prototype.remove = function(s) {
+ for (var i=0; i < this.length; i++) {
+ if (s == this[i]) this.splice(i, 1);
+ }
+}
+
function browser_has_opacity() {
return navigator.userAgent.match("Gecko") != null ||
navigator.userAgent.match("Opera") != null;
return obj.readyState == 4 || obj.readyState == 0 || !obj.readyState;
}
+function open_article_callback() {
+ if (xmlhttp_rpc.readyState == 4) {
+ try {
+
+ if (xmlhttp_rpc.responseXML) {
+ var link = xmlhttp_rpc.responseXML.getElementsByTagName("link")[0];
+ var id = xmlhttp_rpc.responseXML.getElementsByTagName("id")[0];
+
+ if (link) {
+ window.open(link.firstChild.nodeValue, "_blank");
+
+ if (id) {
+ id = id.firstChild.nodeValue;
+ if (!document.getElementById("headlinesList")) {
+ window.setTimeout("toggleUnread(" + id + ", 0)", 100);
+ }
+ }
+ }
+ }
+
+ } catch (e) {
+ exception_error("open_article_callback", e);
+ }
+ }
+}
+
function logout_callback() {
var container = document.getElementById('notify');
if (xmlhttp.readyState == 4) {
if (new_feed) viewfeed(new_feed, '');
}
- if (!is_safari() && (keycode == 78 || keycode == 40)) { // n, down
+ if (keycode == 78 || keycode == 40) { // n, down
if (typeof moveToPost != 'undefined') {
return moveToPost('next');
}
}
- if (!is_safari() && (keycode == 80 || keycode == 38)) { // p, up
+ if (keycode == 80 || keycode == 38) { // p, up
if (typeof moveToPost != 'undefined') {
return moveToPost('prev');
}
}
}
+ if (keycode == 86) { // v
+ if (getActiveArticleId()) {
+ openArticleInNewWindow(getActiveArticleId());
+ }
+ }
+
+ if (keycode == 84) { // t
+
+ var id = getActiveArticleId();
+
+ if (id) {
+
+ var cb = document.getElementById("RCHK-" + id);
+
+ if (cb) {
+ cb.checked = !cb.checked;
+ toggleSelectRowById(cb, "RROW-" + id);
+ }
+ }
+ }
+
+ if (keycode == 67) { // c
+ var id = getActiveArticleId();
+
+ if (id) {
+ toggleUnread(id, 0);
+ }
+ }
+
if (typeof localHotkeyHandler != 'undefined') {
try {
return localHotkeyHandler(e);
if (node.childNodes[i].style != undefined) {
- var has_unread = (node.childNodes[i].className != "feed");
+ var has_unread = (node.childNodes[i].className != "feed" &&
+ node.childNodes[i].className != "tag");
// debug(node.childNodes[i].id + " --> " + has_unread);
if (hide && !has_unread) {
- node.childNodes[i].style.display = "none";
+ //node.childNodes[i].style.display = "none";
+ Effect.Fade(node.childNodes[i], {duration : 0.3});
}
if (!hide) {
node.childNodes[i].style.display = "list-item";
+ //Effect.Appear(node.childNodes[i], {duration : 0.3});
}
if (has_unread) {
node.childNodes[i].style.display = "list-item";
cat_unread++;
+ //Effect.Appear(node.childNodes[i], {duration : 0.3});
+ //Effect.Highlight(node.childNodes[i]);
}
}
}
return;
}
if (hide) {
- cat_node.style.display = "none";
+ //cat_node.style.display = "none";
+ Effect.Fade(cat_node, {duration : 0.3});
} else {
cat_node.style.display = "list-item";
}
}
}
+function tSR(sender) {
+ return toggleSelectRow(sender);
+}
function toggleSelectRow(sender) {
var parent_row = sender.parentNode.parentNode;
}
function closeInfoBox(cleanup) {
+
+ if (!is_msie() && !getInitParam("infobox_disable_overlay")) {
+ var overlay = document.getElementById("dialog_overlay");
+ if (overlay) {
+ overlay.style.display = "none";
+ }
+ }
+
var box = document.getElementById('infoBox');
var shadow = document.getElementById('infoBoxShadow');
return
}
- notify_progress("Loading, please wait...");
+ notify_progress("Loading, please wait...", true);
xmlhttp.open("GET", "backend.php?op=dlg&id=" +
param_escape(id) + "¶m=" + param_escape(param), true);
function infobox_callback() {
if (xmlhttp.readyState == 4) {
- var box = document.getElementById('infoBox');
- var shadow = document.getElementById('infoBoxShadow');
+
+ try {
+
+ if (!is_msie() && !getInitParam("infobox_disable_overlay")) {
+ var overlay = document.getElementById("dialog_overlay");
+ if (overlay) {
+ overlay.style.display = "block";
+ }
+ }
+
+ var box = document.getElementById('infoBox');
+ var shadow = document.getElementById('infoBoxShadow');
+ if (box) {
+ box.innerHTML=xmlhttp.responseText;
+ if (shadow) {
+ shadow.style.display = "block";
+ } else {
+ box.style.display = "block";
+ }
+ }
+
+ /* FIXME this needs to be moved out somewhere */
+
+ if (document.getElementById("tags_choices")) {
+ new Ajax.Autocompleter('tags_str', 'tags_choices',
+ "backend.php?op=rpc&subop=completeTags",
+ { tokens: ',', paramName: "search" });
+ }
+
+ notify("");
+ } catch (e) {
+ exception_error("infobox_callback", e);
+ }
+ }
+}
+
+function helpbox_callback() {
+ if (xmlhttp.readyState == 4) {
+ var box = document.getElementById('helpBox');
+ var shadow = document.getElementById('helpBoxShadow');
if (box) {
box.innerHTML=xmlhttp.responseText;
if (shadow) {
var reg_exp = form.reg_exp.value;
if (reg_exp == "") {
- alert("Can't add filter: nothing to match on.");
+ alert(__("Can't add filter: nothing to match on."));
return false;
}
var feed_url = form.feed_url.value;
if (feed_url == "") {
- alert("Can't subscribe: no feed URL given.");
+ alert(__("Can't subscribe: no feed URL given."));
return false;
}
- notify_progress("Adding feed...");
+ notify_progress(__("Subscribing to feed..."), true);
closeInfoBox();
exception_error("logoutUser", e);
}
}
+
+// this only searches loaded headlines list, not in CDM
+function getRelativePostIds(id) {
+
+ debug("getRelativePostIds: " + id);
+
+ var ids = new Array();
+ var container = document.getElementById("headlinesList");
+
+ if (container) {
+ var rows = container.rows;
+
+ for (var i = 0; i < rows.length; i++) {
+ var r_id = rows[i].id.replace("RROW-", "");
+
+ if (r_id == id) {
+ if (i > 0) ids.push(rows[i-1].id.replace("RROW-", ""));
+ if (i > 1) ids.push(rows[i-2].id.replace("RROW-", ""));
+ if (i > 2) ids.push(rows[i-3].id.replace("RROW-", ""));
+
+ if (i < rows.length-1) ids.push(rows[i+1].id.replace("RROW-", ""));
+ if (i < rows.length-2) ids.push(rows[i+2].id.replace("RROW-", ""));
+ if (i < rows.length-3) ids.push(rows[i+3].id.replace("RROW-", ""));
+
+ return ids;
+ }
+ }
+ }
+
+ return false;
+}
+
+function openArticleInNewWindow(id) {
+ try {
+
+ if (!xmlhttp_ready(xmlhttp_rpc)) {
+ printLockingError();
+ return
+ }
+
+ debug("openArticleInNewWindow: " + id);
+
+ var query = "backend.php?op=rpc&subop=getArticleLink&id=" + id;
+
+ debug(query);
+
+ xmlhttp_rpc.open("GET", query, true);
+ xmlhttp_rpc.onreadystatechange=open_article_callback;
+ xmlhttp_rpc.send(null);
+
+ } catch (e) {
+ exception_error("openArticleInNewWindow", e);
+ }
+}
+