sort feeds list by unread; support fatal error messages and login redirects

This commit is contained in:
Andrew Dolgov 2010-09-12 10:15:40 +04:00
parent d5d5632952
commit e0cebf2a81
1 changed files with 57 additions and 0 deletions

View File

@ -79,6 +79,7 @@ function update() {
new Ajax.Request("backend.php", {
parameters: "?op=rpc&subop=digest-init",
onComplete: function(transport) {
fatal_error_check(transport);
parse_feeds(transport);
set_selected_feed(_active_feed_id);
} });
@ -132,6 +133,7 @@ function viewfeed(feed_id, offset) {
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
fatal_error_check(transport);
parse_headlines(transport, offset == 0);
set_selected_feed(feed_id);
_active_feed_offset = offset;
@ -258,6 +260,19 @@ function parse_feeds(transport) {
if (feeds) {
feeds = eval("(" + feeds.firstChild.nodeValue + ")");
feeds.sort( function (a,b)
{
if (b.unread != a.unread)
return (b.unread - a.unread)
else
if (a.title > b.title)
return 1;
else if (a.title < b.title)
return -1;
else
return 0;
});
last_feeds = feeds;
$('feeds-content').innerHTML = "";
@ -499,3 +514,45 @@ function togglePub(mark_img, id, note) {
}
}
function fatal_error(code, msg) {
try {
if (code == 6) {
window.location.href = "digest.php";
} else if (code == 5) {
window.location.href = "update.php";
} else {
if (msg == "") msg = "Unknown error";
console.error("Fatal error: " + code + "\n" +
msg);
}
} catch (e) {
exception_error("fatalError", e);
}
}
function fatal_error_check(transport) {
try {
if (transport.responseXML) {
var error = transport.responseXML.getElementsByTagName("error")[0];
if (error) {
var code = error.getAttribute("error-code");
var msg = error.getAttribute("error-msg");
if (code != 0) {
fatal_error(code, msg);
return false;
}
}
}
} catch (e) {
exception_error("fatal_error_check", e);
}
return true;
}