summaryrefslogtreecommitdiff
path: root/tt-rss.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2011-03-18 12:46:22 +0300
committerAndrew Dolgov <[email protected]>2011-03-18 12:48:26 +0300
commit009646d23a166ed1bbb56d75aa27d5fcc719b5ce (patch)
tree29a3847689422e12ec0a35a92a75c4c289882411 /tt-rss.js
parent014d3ad823d653eed424ac95cac454b5ca6d06f3 (diff)
backend/view: use JSON instead of XML; backend: output session invalid error using JSON
Diffstat (limited to 'tt-rss.js')
-rw-r--r--tt-rss.js103
1 files changed, 53 insertions, 50 deletions
diff --git a/tt-rss.js b/tt-rss.js
index 690e35bcb..3d0f53044 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -52,7 +52,7 @@ function setActiveFeedId(id, is_cat) {
function updateFeedList() {
try {
-// $("feeds-holder").innerHTML = "<div id=\"feedlistLoading\">" +
+// $("feeds-holder").innerHTML = "<div id=\"feedlistLoading\">" +
// __("Loading, please wait...") + "</div>";
Element.show("feedlistLoading");
@@ -81,16 +81,16 @@ function updateFeedList() {
var id = String(item.id);
var cat_id = id.substr(id.indexOf(":")+1);
- new Ajax.Request("backend.php",
- { parameters: "backend.php?op=feeds&subop=collapse&cid=" +
+ new Ajax.Request("backend.php",
+ { parameters: "backend.php?op=feeds&subop=collapse&cid=" +
param_escape(cat_id) + "&mode=0" } );
},
onClose: function (item, node) {
var id = String(item.id);
var cat_id = id.substr(id.indexOf(":")+1);
- new Ajax.Request("backend.php",
- { parameters: "backend.php?op=feeds&subop=collapse&cid=" +
+ new Ajax.Request("backend.php",
+ { parameters: "backend.php?op=feeds&subop=collapse&cid=" +
param_escape(cat_id) + "&mode=1" } );
},
@@ -107,14 +107,14 @@ function updateFeedList() {
}, "feedTree");
/* var menu = new dijit.Menu({id: 'feedMenu'});
-
+
menu.addChild(new dijit.MenuItem({
label: "Simple menu item"
}));
// menu.bindDomNode(tree.domNode); */
-
- var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
+
+ var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
console.log(dijit.getEnclosingWidget(event.target));
dojo.disconnect(tmph);
});
@@ -156,8 +156,8 @@ function catchupAllFeeds() {
new Ajax.Request("backend.php", {
parameters: query_str,
- onComplete: function(transport) {
- feedlist_callback2(transport);
+ onComplete: function(transport) {
+ feedlist_callback2(transport);
} });
global_unread = 0;
@@ -185,28 +185,28 @@ function timeout() {
//console.log("timeout()");
window.clearTimeout(counter_timeout_id);
-
+
var query_str = "?op=rpc&subop=getAllCounters&seq=" + next_seq();
-
+
var omode;
-
+
if (firsttime_update && !navigator.userAgent.match("Opera")) {
firsttime_update = false;
omode = "T";
} else {
omode = "flc";
}
-
+
query_str = query_str + "&omode=" + omode;
if (!_force_scheduled_update)
query_str = query_str + "&last_article_id=" + getInitParam("last_article_id");
-
+
//console.log("[timeout]" + query_str);
-
+
new Ajax.Request("backend.php", {
parameters: query_str,
- onComplete: function(transport) {
+ onComplete: function(transport) {
handle_rpc_json(transport, !_force_scheduled_update);
_force_scheduled_update = false;
} });
@@ -264,7 +264,7 @@ function updateTitle() {
function genericSanityCheck() {
setCookie("ttrss_test", "TEST");
-
+
if (getCookie("ttrss_test") != "TEST") {
return fatalError(2);
}
@@ -317,7 +317,7 @@ function init() {
});
- if (!genericSanityCheck())
+ if (!genericSanityCheck())
return false;
loading_set_progress(20);
@@ -343,10 +343,10 @@ function init_second_stage() {
var toolbar = document.forms["main_toolbar_form"];
- dijit.getEnclosingWidget(toolbar.view_mode).attr('value',
+ dijit.getEnclosingWidget(toolbar.view_mode).attr('value',
getInitParam("default_view_mode"));
- dijit.getEnclosingWidget(toolbar.order_by).attr('value',
+ dijit.getEnclosingWidget(toolbar.order_by).attr('value',
getInitParam("default_view_order_by"));
feeds_sort_by_unread = getInitParam("feeds_sort_by_unread") == 1;
@@ -368,7 +368,7 @@ function quickMenuGo(opid) {
if (opid == "qmcPrefs") {
gotoPreferences();
}
-
+
if (opid == "qmcTagCloud") {
displayDlg("printTagCloud");
}
@@ -377,7 +377,7 @@ function quickMenuGo(opid) {
search();
return;
}
-
+
if (opid == "qmcAddFeed") {
quickAddFeed();
return;
@@ -395,14 +395,14 @@ function quickMenuGo(opid) {
editFeed(getActiveFeedId());
return;
}
-
+
if (opid == "qmcRemoveFeed") {
var actid = getActiveFeedId();
if (activeFeedIsCat()) {
alert(__("You can't unsubscribe from the category."));
return;
- }
+ }
if (!actid) {
alert(__("Please select some feed first."));
@@ -416,7 +416,7 @@ function quickMenuGo(opid) {
if (confirm(pr)) {
unsubscribeFeed(actid);
}
-
+
return;
}
@@ -424,12 +424,12 @@ function quickMenuGo(opid) {
catchupAllFeeds();
return;
}
-
+
if (opid == "qmcShowOnlyUnread") {
toggleDispRead();
return;
}
-
+
if (opid == "qmcAddFilter") {
quickAddFilter();
return;
@@ -462,16 +462,16 @@ function toggleDispRead() {
hideOrShowFeeds(hide);
- var query = "?op=rpc&subop=setpref&key=HIDE_READ_FEEDS&value=" +
+ var query = "?op=rpc&subop=setpref&key=HIDE_READ_FEEDS&value=" +
param_escape(hide);
setInitParam("hide_read_feeds", hide);
new Ajax.Request("backend.php", {
parameters: query,
- onComplete: function(transport) {
+ onComplete: function(transport) {
} });
-
+
} catch (e) {
exception_error("toggleDispRead", e);
}
@@ -517,7 +517,7 @@ function parse_runtime_info(data) {
}
}
- init_params[k] = v;
+ init_params[k] = v;
notify('');
}
}
@@ -525,7 +525,7 @@ function parse_runtime_info(data) {
function catchupCurrentFeed() {
var fn = getFeedName(getActiveFeedId(), activeFeedIsCat());
-
+
var str = __("Mark all articles in %s as read?").replace("%s", fn);
if (getInitParam("confirm_feed_catchup") != 1 || confirm(str)) {
@@ -610,7 +610,7 @@ function rescoreCurrentFeed() {
if (activeFeedIsCat() || actid < 0) {
alert(__("You can't rescore this kind of feed."));
return;
- }
+ }
if (!actid) {
alert(__("Please select some feed first."));
@@ -648,7 +648,7 @@ function hotkey_handler(e) {
} catch (e) {
}
-
+
if (window.event) {
keycode = window.event.keyCode;
} else if (e) {
@@ -662,12 +662,12 @@ function hotkey_handler(e) {
Element.hide("hotkey_help_overlay");
}
hotkey_prefix = false;
- }
+ }
if (keycode == 16) return; // ignore lone shift
if (keycode == 17) return; // ignore lone ctrl
- if ((keycode == 70 || keycode == 67 || keycode == 71)
+ if ((keycode == 70 || keycode == 67 || keycode == 71)
&& !hotkey_prefix) {
var date = new Date();
@@ -715,7 +715,7 @@ function hotkey_handler(e) {
return;
}
-
+
if (keycode == 75) { // k
var rv = dijit.byId("feedTree").getNextFeed(
getActiveFeedId(), activeFeedIsCat());
@@ -736,12 +736,12 @@ function hotkey_handler(e) {
}
if (shift_key && keycode == 78) { // N
- scrollArticle(50);
+ scrollArticle(50);
return;
}
if (shift_key && keycode == 80) { // P
- scrollArticle(-50);
+ scrollArticle(-50);
return;
}
@@ -761,7 +761,7 @@ function hotkey_handler(e) {
return false;
}
}
-
+
if (keycode == 80 || keycode == 38) { // p, up
if (typeof moveToPost != 'undefined') {
moveToPost('prev');
@@ -795,7 +795,7 @@ function hotkey_handler(e) {
if (keycode == 9) { // tab
var id = getArticleUnderPointer();
- if (id) {
+ if (id) {
var cb = $("RCHK-" + id);
if (cb) {
@@ -830,7 +830,7 @@ function hotkey_handler(e) {
/* Prefix f */
- if (hotkey_prefix == 70) { // f
+ if (hotkey_prefix == 70) { // f
hotkey_prefix = false;
@@ -981,7 +981,7 @@ function hotkey_handler(e) {
/* Cmd */
- if (hotkey_prefix == 224 || hotkey_prefix == 91) { // f
+ if (hotkey_prefix == 224 || hotkey_prefix == 91) { // f
hotkey_prefix = false;
return;
}
@@ -1009,7 +1009,7 @@ function reverseHeadlineOrder() {
new Ajax.Request("backend.php", {
parameters: query_str,
- onComplete: function(transport) {
+ onComplete: function(transport) {
viewCurrentFeed();
} });
@@ -1052,7 +1052,7 @@ function handle_rpc_reply(transport, scheduled_call) {
}
var counters = transport.responseXML.getElementsByTagName("counters")[0];
-
+
if (counters)
parse_counters(JSON.parse(counters.firstChild.nodeValue), scheduled_call);
@@ -1086,7 +1086,7 @@ function scheduleFeedUpdate(id, is_cat) {
return;
}
- var query = "?op=rpc&subop=scheduleFeedUpdate&id=" +
+ var query = "?op=rpc&subop=scheduleFeedUpdate&id=" +
param_escape(id) +
"&is_cat=" + param_escape(is_cat);
@@ -1094,7 +1094,7 @@ function scheduleFeedUpdate(id, is_cat) {
new Ajax.Request("backend.php", {
parameters: query,
- onComplete: function(transport) {
+ onComplete: function(transport) {
handle_rpc_json(transport);
var reply = JSON.parse(transport.responseText);
@@ -1145,6 +1145,9 @@ function handle_rpc_json(transport, scheduled_call) {
if (error) {
var code = error['code'];
var msg = error['msg'];
+
+ console.warn("[handle_rpc_json] received fatal error " + code + "/" + msg);
+
if (code != 0) {
fatalError(code, msg);
return false;
@@ -1155,7 +1158,7 @@ function handle_rpc_json(transport, scheduled_call) {
if (seq) {
if (get_seq() != seq) {
- console.log("[handle_rpc_json] sequence mismatch: " + seq +
+ console.log("[handle_rpc_json] sequence mismatch: " + seq +
" (want: " + get_seq() + ")");
return true;
}
@@ -1172,7 +1175,7 @@ function handle_rpc_json(transport, scheduled_call) {
}
var counters = reply['counters'];
-
+
if (counters)
parse_counters(counters, scheduled_call);