var hotkeys_enabled = true;
function exception_error(location, e) {
- alert("Exception: " + e.name + "\nMessage: " + e.message +
- "\nLocation: " + location);
+ var msg;
+
+ if (e.fileName) {
+ var base_fname = e.fileName.substring(e.fileName.lastIndexOf("/") + 1);
+
+ msg = "Exception: " + e.name + ", " + e.message +
+ "\nFunction: " + location + "()" +
+ "\nLocation: " + base_fname + ":" + e.lineNumber;
+ } else {
+ msg = "Exception: " + e + "\nFunction: " + location + "()";
+ }
+
+ alert(msg);
}
function disableHotkeys() {
seq = seq + "" + keycode;
}
- var piggie = document.getElementById("piggie");
-
- if (piggie) {
+ if (document.getElementById("piggie")) {
if (seq.match("807371717369")) {
+ seq = "";
localPiggieFunction(true);
} else {
localPiggieFunction(false);
try {
localHotkeyHandler(keycode);
} catch (e) {
- exception_error(e);
+ exception_error("hotkey_handler", e);
}
}
if (child.id == "feedCatHolder") {
var fcat = child.lastChild;
for (j = 0; j < fcat.childNodes.length; j++) {
- var feed = fcat.childNodes[j];
+ var feed = fcat.childNodes[j];
feed.className = feed.className.replace("Selected", "");
}
}
xmlhttp_rpc = new XMLHttpRequest();
}
-function parse_counters(reply, f_document) {
+function parse_counters(reply, f_document, title_obj) {
try {
for (var l = 0; l < reply.childNodes.length; l++) {
+ if (!reply.childNodes[l] ||
+ typeof(reply.childNodes[l].getAttribute) == "undefined") {
+ // where did this come from?
+ continue;
+ }
+
var id = reply.childNodes[l].getAttribute("id");
var t = reply.childNodes[l].getAttribute("type");
var ctr = reply.childNodes[l].getAttribute("counter");
+ var error = reply.childNodes[l].getAttribute("error");
+ var has_img = reply.childNodes[l].getAttribute("hi");
if (id == "global-unread") {
- parent.global_unread = ctr;
- parent.updateTitle();
+ title_obj.global_unread = ctr;
+ title_obj.updateTitle();
continue;
}
var feedctr = f_document.getElementById("FEEDCTR-" + id);
var feedu = f_document.getElementById("FEEDU-" + id);
var feedr = f_document.getElementById("FEEDR-" + id);
-
+ var feed_img = f_document.getElementById("FIMG-" + id);
+
if (feedctr && feedu && feedr) {
feedu.innerHTML = ctr;
+
+ if (error) {
+ feedr.className = feedr.className.replace("feed", "error");
+ } else if (id > 0) {
+ feedr.className = feedr.className.replace("error", "feed");
+ }
if (ctr > 0) {
feedctr.className = "odd";
}
}
} catch (e) {
- exception_error(e);
+ exception_error("parse_counters", e);
}
}
+// this one is called from feedlist context
+// thus title_obj passed to parse_counters is parent (e.g. main ttrss window)
+
function all_counters_callback() {
if (xmlhttp_rpc.readyState == 4) {
try {
var reply = xmlhttp_rpc.responseXML.firstChild;
var f_document = parent.frames["feeds-frame"].document;
- parse_counters(reply, f_document);
+ parse_counters(reply, f_document, parent);
} catch (e) {
exception_error("all_counters_callback", e);
function hideOrShowFeeds(doc, hide) {
+ if (!doc.styleSheets) return;
+
var css_rules = doc.styleSheets[0].cssRules;
+ if (!css_rules || !css_rules.length) return;
+
for (i = 0; i < css_rules.length; i++) {
var rule = css_rules[i];
}
-function fatalError(code) {
- window.location = "error.php?c=" + param_escape(code);
+function fatalError(code, params) {
+ if (!params) {
+ window.location = "error.php?c=" + param_escape(code);
+ } else {
+ window.location = "error.php?c=" + param_escape(code) +
+ "&p=" + param_escape(params);
+ }
}
function selectTableRow(r, do_select) {
}
}
+function selectTableRowById(elem_id, check_id, do_select) {
+
+ try {
+
+ var row = document.getElementById(elem_id);
+
+ if (row) {
+ selectTableRow(row, do_select);
+ }
+
+ var check = document.getElementById(check_id);
+
+ if (check) {
+ check.checked = do_select;
+ }
+ } catch (e) {
+ exception_error("selectTableRowById", e);
+ }
+}
+
function selectTableRowsByIdPrefix(content_id, prefix, check_prefix, do_select,
- classcheck) {
+ classcheck, reset_others) {
var content = document.getElementById(content_id);
if (content.rows[i].id.match(prefix)) {
selectTableRow(content.rows[i], do_select);
+
+ var row_id = content.rows[i].id.replace(prefix, "");
+ var check = document.getElementById(check_prefix + row_id);
+
+ if (check) {
+ check.checked = do_select;
+ }
+ } else if (reset_others) {
+ selectTableRow(content.rows[i], false);
+
+ var row_id = content.rows[i].id.replace(prefix, "");
+ var check = document.getElementById(check_prefix + row_id);
+
+ if (check) {
+ check.checked = false;
+ }
+
}
+ } else if (reset_others) {
+ selectTableRow(content.rows[i], false);
var row_id = content.rows[i].id.replace(prefix, "");
var check = document.getElementById(check_prefix + row_id);
if (check) {
- check.checked = do_select;
+ check.checked = false;
}
+
}
}
}
}
}
+function toggleSelectListRow(sender) {
+ var parent_row = sender.parentNode;
+
+ if (sender.checked) {
+ if (!parent_row.className.match("Selected")) {
+ parent_row.className = parent_row.className + "Selected";
+ }
+ } else {
+ if (parent_row.className.match("Selected")) {
+ parent_row.className = parent_row.className.replace("Selected", "");
+ }
+ }
+}
+
function toggleSelectRow(sender) {
var parent_row = sender.parentNode.parentNode;
}
}
+function hideParentElement(e) {
+ e.parentNode.style.display = "none";
+}
+function dropboxSelect(e, v) {
+ for (i = 0; i < e.length; i++) {
+ if (e[i].value == v) {
+ e.selectedIndex = i;
+ break;
+ }
+ }
+}