summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-11-26 11:06:56 +0100
committerAndrew Dolgov <[email protected]>2005-11-26 11:06:56 +0100
commit7719618b297400f5bdc44b1be47f969ec582fb47 (patch)
tree49bf70985ee61cd596ca35bdac6a874616b29017
parentd6bf9d41928fd9ff41dde2d34f961a9ce1f8ec2a (diff)
exception handling in some code blocks
-rw-r--r--feedlist.js187
-rw-r--r--functions.js87
-rw-r--r--prefs.js54
-rw-r--r--tt-rss.css5
-rw-r--r--tt-rss.js253
5 files changed, 277 insertions, 309 deletions
diff --git a/feedlist.js b/feedlist.js
index e8d79c6ba..499705b63 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -1,104 +1,105 @@
function viewfeed(feed, skip, subop, doc) {
+ try {
- if (!doc) doc = parent.document;
-
-// p_notify("Loading headlines...");
-
- enableHotkeys();
-
- var searchbox = doc.getElementById("searchbox");
-
- if (searchbox) {
- search_query = searchbox.value;
- } else {
- search_query = "";
- }
-
- var searchmodebox = doc.getElementById("searchmodebox");
-
- var search_mode;
+ if (!doc) doc = parent.document;
- if (searchmodebox) {
- search_mode = searchmodebox[searchmodebox.selectedIndex].text;
- } else {
- search_mode = "";
- }
-
- setCookie("ttrss_vf_smode", search_mode);
-
- var viewbox = doc.getElementById("viewbox");
-
- var view_mode;
-
- if (viewbox) {
- view_mode = viewbox[viewbox.selectedIndex].text;
- } else {
- view_mode = "All Posts";
- }
-
- setCookie("ttrss_vf_vmode", view_mode);
-
- var limitbox = doc.getElementById("limitbox");
-
- var limit;
-
- if (limitbox) {
- limit = limitbox[limitbox.selectedIndex].text;
- setCookie("ttrss_vf_limit", limit);
- } else {
- limit = "All";
- }
-
-// document.getElementById("ACTFEEDID").innerHTML = feed;
-
- setActiveFeedId(feed);
-
- if (subop == "MarkAllRead") {
-
- var feedr = document.getElementById("FEEDR-" + feed);
- var feedctr = document.getElementById("FEEDCTR-" + feed);
+ enableHotkeys();
- feedctr.className = "invisible";
-
- if (feedr.className.match("Unread")) {
- feedr.className = feedr.className.replace("Unread", "");
+ var searchbox = doc.getElementById("searchbox");
+
+ if (searchbox) {
+ search_query = searchbox.value;
+ } else {
+ search_query = "";
+ }
+
+ var searchmodebox = doc.getElementById("searchmodebox");
+
+ var search_mode;
+
+ if (searchmodebox) {
+ search_mode = searchmodebox[searchmodebox.selectedIndex].text;
+ } else {
+ search_mode = "";
}
- }
-
- var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) +
- "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) +
- "&view=" + param_escape(view_mode) + "&limit=" + limit +
- "&smode=" + param_escape(search_mode);
-
- if (search_query != "") {
- query = query + "&search=" + param_escape(search_query);
- }
- var headlines_frame = parent.frames["headlines-frame"];
-
-// alert(headlines_frame)
-
- headlines_frame.location.href = query + "&addheader=true";
-
- cleanSelectedList("feedList");
-
- var feedr = document.getElementById("FEEDR-" + feed);
- if (feedr) {
- feedr.className = feedr.className + "Selected";
- }
+ setCookie("ttrss_vf_smode", search_mode);
- disableContainerChildren("headlinesToolbar", false, doc);
-
-/* var btnMarkAsRead = doc.getElementById("btnMarkFeedAsRead");
-
- if (btnMarkAsRead && !isNumeric(feed)) {
- btnMarkAsRead.disabled = true;
- btnMarkAsRead.className = "disabledButton";
- } */
-
-// notify("");
-
+ var viewbox = doc.getElementById("viewbox");
+
+ var view_mode;
+
+ if (viewbox) {
+ view_mode = viewbox[viewbox.selectedIndex].text;
+ } else {
+ view_mode = "All Posts";
+ }
+
+ setCookie("ttrss_vf_vmode", view_mode);
+
+ var limitbox = doc.getElementById("limitbox");
+
+ var limit;
+
+ if (limitbox) {
+ limit = limitbox[limitbox.selectedIndex].text;
+ setCookie("ttrss_vf_limit", limit);
+ } else {
+ limit = "All";
+ }
+
+ // document.getElementById("ACTFEEDID").innerHTML = feed;
+
+ setActiveFeedId(feed);
+
+ if (subop == "MarkAllRead") {
+
+ var feedr = document.getElementById("FEEDR-" + feed);
+ var feedctr = document.getElementById("FEEDCTR-" + feed);
+
+ feedctr.className = "invisible";
+
+ if (feedr.className.match("Unread")) {
+ feedr.className = feedr.className.replace("Unread", "");
+ }
+ }
+
+ var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) +
+ "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) +
+ "&view=" + param_escape(view_mode) + "&limit=" + limit +
+ "&smode=" + param_escape(search_mode);
+
+ if (search_query != "") {
+ query = query + "&search=" + param_escape(search_query);
+ }
+
+ var headlines_frame = parent.frames["headlines-frame"];
+
+ // alert(headlines_frame)
+
+ headlines_frame.location.href = query + "&addheader=true";
+
+ cleanSelectedList("feedList");
+
+ var feedr = document.getElementById("FEEDR-" + feed);
+ if (feedr) {
+ feedr.className = feedr.className + "Selected";
+ }
+
+ disableContainerChildren("headlinesToolbar", false, doc);
+
+ /* var btnMarkAsRead = doc.getElementById("btnMarkFeedAsRead");
+
+ if (btnMarkAsRead && !isNumeric(feed)) {
+ btnMarkAsRead.disabled = true;
+ btnMarkAsRead.className = "disabledButton";
+ } */
+
+ // notify("");
+ } catch (e) {
+ exception_error("viewfeed", e);
+ }
}
function localHotkeyHandler(keycode) {
diff --git a/functions.js b/functions.js
index d236c4e18..36aa8fd6a 100644
--- a/functions.js
+++ b/functions.js
@@ -1,5 +1,10 @@
var hotkeys_enabled = true;
+function exception_error(location, e) {
+ alert("Exception: " + e.name + "\nMessage: " + e.message +
+ "\nLocation: " + location);
+}
+
function disableHotkeys() {
hotkeys_enabled = false;
}
@@ -330,48 +335,51 @@ if (!xmlhttp_rpc && typeof XMLHttpRequest!='undefined') {
function all_counters_callback() {
if (xmlhttp_rpc.readyState == 4) {
-
- if (!xmlhttp_rpc.responseXML) {
- notify("[all_counters_callback] backend did not return valid XML");
- return;
- }
-
- var reply = xmlhttp_rpc.responseXML.firstChild;
-
- var f_document = parent.frames["feeds-frame"].document;
-
- for (var l = 0; l < reply.childNodes.length; l++) {
- var id = reply.childNodes[l].getAttribute("id");
- var ctr = reply.childNodes[l].getAttribute("counter");
-
- var feedctr = f_document.getElementById("FEEDCTR-" + id);
- var feedu = f_document.getElementById("FEEDU-" + id);
- var feedr = f_document.getElementById("FEEDR-" + id);
-
- if (feedctr && feedu && feedr) {
-
- feedu.innerHTML = ctr;
+ try {
+ if (!xmlhttp_rpc.responseXML) {
+ notify("[all_counters_callback] backend did not return valid XML");
+ return;
+ }
+
+ var reply = xmlhttp_rpc.responseXML.firstChild;
+
+ var f_document = parent.frames["feeds-frame"].document;
+
+ for (var l = 0; l < reply.childNodes.length; l++) {
+ var id = reply.childNodes[l].getAttribute("id");
+ var ctr = reply.childNodes[l].getAttribute("counter");
+
+ var feedctr = f_document.getElementById("FEEDCTR-" + id);
+ var feedu = f_document.getElementById("FEEDU-" + id);
+ var feedr = f_document.getElementById("FEEDR-" + id);
+
+ if (feedctr && feedu && feedr) {
+
+ feedu.innerHTML = ctr;
+
+ if (ctr > 0) {
+ feedctr.className = "odd";
+ if (!feedr.className.match("Unread")) {
+ var is_selected = feedr.className.match("Selected");
+
+ feedr.className = feedr.className.replace("Selected", "");
+ feedr.className = feedr.className.replace("Unread", "");
+
+ feedr.className = feedr.className + "Unread";
+
+ if (is_selected) {
+ feedr.className = feedr.className + "Selected";
+ }
- if (ctr > 0) {
- feedctr.className = "odd";
- if (!feedr.className.match("Unread")) {
- var is_selected = feedr.className.match("Selected");
-
- feedr.className = feedr.className.replace("Selected", "");
- feedr.className = feedr.className.replace("Unread", "");
-
- feedr.className = feedr.className + "Unread";
-
- if (is_selected) {
- feedr.className = feedr.className + "Selected";
}
-
- }
- } else {
- feedctr.className = "invisible";
- feedr.className = feedr.className.replace("Unread", "");
- }
+ } else {
+ feedctr.className = "invisible";
+ feedr.className = feedr.className.replace("Unread", "");
+ }
+ }
}
+ } catch (e) {
+ exception_error("all_counters_callback", e);
}
}
}
@@ -506,4 +514,3 @@ function getSelectedTableRowIds(content_id, prefix) {
}
-
diff --git a/prefs.js b/prefs.js
index 404602c33..b69369ba1 100644
--- a/prefs.js
+++ b/prefs.js
@@ -28,8 +28,8 @@ if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
}
function feedlist_callback() {
- var container = document.getElementById('prefContent');
if (xmlhttp.readyState == 4) {
+ var container = document.getElementById('prefContent');
container.innerHTML=xmlhttp.responseText;
if (active_feed) {
var row = document.getElementById("FEEDR-" + active_feed);
@@ -1146,45 +1146,25 @@ function selectTab(id) {
function init() {
- // IE kludge
-
- if (!xmlhttp) {
- document.getElementById("prefContent").innerHTML =
- "<b>Fatal error:</b> This program needs XmlHttpRequest " +
- "to function properly. Your browser doesn't seem to support it.";
- return;
+ try {
+
+ // IE kludge
+ if (!xmlhttp) {
+ document.getElementById("prefContent").innerHTML =
+ "<b>Fatal error:</b> This program needs XmlHttpRequest " +
+ "to function properly. Your browser doesn't seem to support it.";
+ return;
+ }
+
+ selectTab("genConfig");
+
+ document.onkeydown = hotkey_handler;
+ notify("");
+ } catch (e) {
+ exception_error("init", e);
}
-
- selectTab("genConfig");
-
- document.onkeydown = hotkey_handler;
- notify("");
-
}
-/*
-var help_topic_id = false;
-
-function do_dispOptionHelp() {
-
- if (!xmlhttp_ready(xmlhttp))
- return;
-
- xmlhttp.open("GET", "backend.php?op=pref-prefs&subop=getHelp&pn=" +
- param_escape(help_topic_id), true);
- xmlhttp.onreadystatechange=gethelp_callback;
- xmlhttp.send(null);
-
-}
-
-function dispOptionHelp(event, sender) {
-
- help_topic_id = sender.id;
-
-// document.setTimeout("do_dispOptionHelp()", 100);
-
-} */
-
function closeInfoBox() {
var box = document.getElementById('infoBox');
var shadow = document.getElementById('infoBoxShadow');
diff --git a/tt-rss.css b/tt-rss.css
index e4699f343..78a7a8d03 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -386,13 +386,10 @@ a.button {
font-weight : bold;
}
-.evenSelected {
+.evenSelected, .oddSelected {
background-color : #e0e0ff;
}
-.oddSelected {
- background-color : #e0e0ff;
-}
/*
.feedUnreadSelected, .feedSelectedUnread,
diff --git a/tt-rss.js b/tt-rss.js
index 0af11bfca..94aad44d0 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -62,108 +62,99 @@ function dialog_refresh_callback() {
function refetch_callback() {
if (xmlhttp.readyState == 4) {
+ try {
-// document.title = "Tiny Tiny RSS";
-
- if (!xmlhttp.responseXML) {
- notify("refetch_callback: backend did not return valid XML");
- return;
- }
+ if (!xmlhttp.responseXML) {
+ notify("refetch_callback: backend did not return valid XML");
+ return;
+ }
+
+ var reply = xmlhttp.responseXML.firstChild;
- var reply = xmlhttp.responseXML.firstChild;
-
- if (!reply) {
- notify("refetch_callback: backend did not return expected XML object");
- return;
- }
-
- var error_code = reply.getAttribute("error-code");
+ if (!reply) {
+ notify("refetch_callback: backend did not return expected XML object");
+ return;
+ }
- if (error_code && error_code != 0) {
- return fatalError(error_code);
- }
-
- var f_document = window.frames["feeds-frame"].document;
-
- for (var l = 0; l < reply.childNodes.length; l++) {
- var id = reply.childNodes[l].getAttribute("id");
- var ctr = reply.childNodes[l].getAttribute("counter");
-
- var feedctr = f_document.getElementById("FEEDCTR-" + id);
- var feedu = f_document.getElementById("FEEDU-" + id);
- var feedr = f_document.getElementById("FEEDR-" + id);
-
-/* TODO figure out how to update this from viewfeed.js->view()
- disabled for now...
-
- if (id == "global-unread") {
- global_unread = ctr;
- } */
-
- if (feedctr && feedu && feedr) {
-
- feedu.innerHTML = ctr;
+ var error_code = reply.getAttribute("error-code");
+
+ if (error_code && error_code != 0) {
+ return fatalError(error_code);
+ }
+
+ var f_document = window.frames["feeds-frame"].document;
- if (ctr > 0) {
- feedctr.className = "odd";
- if (!feedr.className.match("Unread")) {
- feedr.className = feedr.className + "Unread";
+ for (var l = 0; l < reply.childNodes.length; l++) {
+ var id = reply.childNodes[l].getAttribute("id");
+ var ctr = reply.childNodes[l].getAttribute("counter");
+
+ var feedctr = f_document.getElementById("FEEDCTR-" + id);
+ var feedu = f_document.getElementById("FEEDU-" + id);
+ var feedr = f_document.getElementById("FEEDR-" + id);
+
+ /* TODO figure out how to update this from viewfeed.js->view()
+ disabled for now...
+
+ if (id == "global-unread") {
+ global_unread = ctr;
+ } */
+
+ if (feedctr && feedu && feedr) {
+
+ feedu.innerHTML = ctr;
+
+ if (ctr > 0) {
+ feedctr.className = "odd";
+ if (!feedr.className.match("Unread")) {
+ feedr.className = feedr.className + "Unread";
+ }
+ } else {
+ feedctr.className = "invisible";
+ feedr.className = feedr.className.replace("Unread", "");
}
- } else {
- feedctr.className = "invisible";
- feedr.className = feedr.className.replace("Unread", "");
}
- }
- }
-
- updateTitle("");
- notify("All feeds updated.");
-
+ }
+
+ updateTitle("");
+ notify("All feeds updated.");
+ } catch (e) {
+ exception_error("refetch_callback", e);
+ }
}
}
function backend_sanity_check_callback() {
if (xmlhttp.readyState == 4) {
-
- if (!xmlhttp.responseXML) {
- fatalError(3);
- return;
- }
-
- var reply = xmlhttp.responseXML.firstChild;
-
- if (!reply) {
- fatalError(3);
- return;
- }
- var error_code = reply.getAttribute("error-code");
+ try {
+
+ if (!xmlhttp.responseXML) {
+ fatalError(3);
+ return;
+ }
- if (error_code && error_code != 0) {
- return fatalError(error_code);
- }
+ var reply = xmlhttp.responseXML.firstChild;
+
+ if (!reply) {
+ fatalError(3);
+ return;
+ }
+
+ var error_code = reply.getAttribute("error-code");
+
+ if (error_code && error_code != 0) {
+ return fatalError(error_code);
+ }
+
+ init_second_stage();
- init_second_stage();
+ } catch (e) {
+ exception_error("backend_sanity_check_callback", e);
+ }
}
}
-/* wtf this is obsolete
-function updateFeed(feed_id) {
-
- var query_str = "backend.php?op=rpc&subop=updateFeed&feed=" + feed_id;
-
- if (xmlhttp_ready(xmlhttp)) {
- xmlhttp.open("GET", query_str, true);
- xmlhttp.onreadystatechange=feed_update_callback;
- xmlhttp.send(null);
- } else {
- printLockingError();
- }
-
-}
-*/
-
function scheduleFeedUpdate(force) {
notify("Updating feeds in background...");
@@ -343,71 +334,63 @@ function genericSanityCheck() {
fatalError(2);
}
-/* if (!xmlhttp) {
- document.getElementById("headlines").innerHTML =
- "<b>Fatal error:</b> This program requires XmlHttpRequest " +
- "to function properly. Your browser doesn't seem to support it.";
- return false;
- }
-
- setCookie("ttrss_vf_test", "TEST");
- if (getCookie("ttrss_vf_test") != "TEST") {
-
- document.getElementById("headlines").innerHTML =
- "<b>Fatal error:</b> This program requires cookies " +
- "to function properly. Your browser doesn't seem to support them.";
-
- return false;
- } */
-
return true;
}
function init() {
- disableContainerChildren("headlinesToolbar", true);
-
- if (!genericSanityCheck())
- return;
-
- xmlhttp.open("GET", "backend.php?op=rpc&subop=sanityCheck", true);
- xmlhttp.onreadystatechange=backend_sanity_check_callback;
- xmlhttp.send(null);
-
-}
-
-function init_second_stage() {
-
- setCookie("ttrss_vf_actfeed", "");
+ try {
- updateFeedList(false, false);
- document.onkeydown = hotkey_handler;
+ disableContainerChildren("headlinesToolbar", true);
- var content = document.getElementById("content");
+ if (!genericSanityCheck())
+ return;
- if (getCookie("ttrss_vf_vmode")) {
- var viewbox = document.getElementById("viewbox");
- viewbox.value = getCookie("ttrss_vf_vmode");
- }
+ xmlhttp.open("GET", "backend.php?op=rpc&subop=sanityCheck", true);
+ xmlhttp.onreadystatechange=backend_sanity_check_callback;
+ xmlhttp.send(null);
- if (getCookie("ttrss_vf_limit")) {
- var limitbox = document.getElementById("limitbox");
- limitbox.value = getCookie("ttrss_vf_limit");
+ } catch (e) {
+ exception_error("init", e);
}
+}
-// if (getCookie("ttrss_vf_actfeed")) {
-// viewfeed(getCookie("ttrss_vf_actfeed"), 0, '');
-// }
-
-// setTimeout("timeout()", 2*1000);
-// scheduleFeedUpdate(true);
+function init_second_stage() {
- var splash = document.getElementById("splash");
+ try {
- if (splash) {
- splash.style.display = "none";
+ setCookie("ttrss_vf_actfeed", "");
+
+ updateFeedList(false, false);
+ document.onkeydown = hotkey_handler;
+
+ var content = document.getElementById("content");
+
+ if (getCookie("ttrss_vf_vmode")) {
+ var viewbox = document.getElementById("viewbox");
+ viewbox.value = getCookie("ttrss_vf_vmode");
+ }
+
+ if (getCookie("ttrss_vf_limit")) {
+ var limitbox = document.getElementById("limitbox");
+ limitbox.value = getCookie("ttrss_vf_limit");
+ }
+
+ // if (getCookie("ttrss_vf_actfeed")) {
+ // viewfeed(getCookie("ttrss_vf_actfeed"), 0, '');
+ // }
+
+ // setTimeout("timeout()", 2*1000);
+ // scheduleFeedUpdate(true);
+
+ var splash = document.getElementById("splash");
+
+ if (splash) {
+ splash.style.display = "none";
+ }
+ } catch (e) {
+ exception_error("init_second_stage", e);
}
-
}
function quickMenuGo() {