diff --git a/backend-rpc.php b/backend-rpc.php
index 2b2f61279..1e98aa125 100644
--- a/backend-rpc.php
+++ b/backend-rpc.php
@@ -186,10 +186,13 @@
}
if ($subop == "sanityCheck") {
+ print "";
if (sanity_check($link)) {
print "";
+ print_init_params($link);
}
- }
+ print "";
+ }
if ($subop == "globalPurge") {
@@ -198,5 +201,11 @@
print "";
}
+
+ if ($subop == "storeParam") {
+ $key = $_GET["key"];
+ $value = $_GET["value"];
+ $_SESSION["stored-params"][$key] = $value;
+ }
}
?>
diff --git a/backend.php b/backend.php
index bad5253c9..d48d81497 100644
--- a/backend.php
+++ b/backend.php
@@ -108,14 +108,14 @@
setcookie("ttrss_vf_hreadf", 0);
}
- setcookie('ttrss_vf_refresh', FEEDS_FRAME_REFRESH);
- setcookie('ttrss_vf_daemon', ENABLE_UPDATE_DAEMON);
+// setcookie('ttrss_vf_refresh', FEEDS_FRAME_REFRESH);
+// setcookie('ttrss_vf_daemon', ENABLE_UPDATE_DAEMON);
- if (get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED")) {
+/* if (get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED")) {
setcookie('ttrss_vf_catchupnext', 1);
} else {
setcookie('ttrss_vf_catchupnext', 0);
- }
+ } */
}
$fetch = $_GET["fetch"];
diff --git a/feedlist.js b/feedlist.js
index 65025ecac..66ae169cd 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -42,8 +42,14 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
toolbar_form.query.value = "";
}
- setCookie("ttrss_vf_limit", toolbar_form.limit[toolbar_form.limit.selectedIndex].value);
- setCookie("ttrss_vf_vmode", toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value);
+// setCookie("ttrss_vf_limit", toolbar_form.limit[toolbar_form.limit.selectedIndex].value);
+// setCookie("ttrss_vf_vmode", toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value);
+
+ parent.storeInitParam("toolbar_limit",
+ toolbar_form.limit[toolbar_form.limit.selectedIndex].value);
+
+ parent.storeInitParam("toolbar_view_mode",
+ toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value);
var query = "backend.php?op=viewfeed&feed=" + feed + "&" +
toolbar_query + "&subop=" + param_escape(subop);
@@ -85,7 +91,9 @@ function viewfeed(feed, skip, subop, doc, is_cat, subop_param) {
var next_unread_feed = getRelativeFeedId(feedlist,
getActiveFeedId(), "next", true);
- if (next_unread_feed && getCookie('ttrss_vf_catchupnext') == 1) {
+ var show_next_feed = parent.getInitParam("on_catchup_show_next_feed") == "1";
+
+ if (next_unread_feed && show_next_feed) {
query = query + "&nuf=" + param_escape(next_unread_feed);
setActiveFeedId(next_unread_feed);
}
diff --git a/functions.js b/functions.js
index 46c812ed5..5940174d3 100644
--- a/functions.js
+++ b/functions.js
@@ -1054,3 +1054,4 @@ function filterCR(e)
return true;
}
+
diff --git a/functions.php b/functions.php
index c97be42c8..30f309dd3 100644
--- a/functions.php
+++ b/functions.php
@@ -1688,4 +1688,22 @@
function get_session_cookie_name() {
return ((!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME);
}
+
+ function print_init_params($link) {
+ print "";
+ if ($_SESSION["stored-params"]) {
+ foreach (array_keys($_SESSION["stored-params"]) as $key) {
+ $value = htmlspecialchars($_SESSION["stored-params"][$key]);
+ print "";
+ }
+ }
+
+ print "";
+ print "";
+
+ print "";
+
+ print "";
+ }
?>
diff --git a/tt-rss.js b/tt-rss.js
index 98cb9c712..c7e6cbcd7 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -13,6 +13,8 @@ var cookie_lifetime = 0;
var xmlhttp = Ajax.getTransport();
+var init_params = new Array();
+
function toggleTags() {
display_tags = !display_tags;
@@ -123,7 +125,7 @@ function backend_sanity_check_callback() {
return;
}
- var reply = xmlhttp.responseXML.firstChild;
+ var reply = xmlhttp.responseXML.firstChild.firstChild;
if (!reply) {
fatalError(3, "[D002, Invalid RPC reply]: " + xmlhttp.responseText);
@@ -138,6 +140,21 @@ function backend_sanity_check_callback() {
debug("sanity check ok");
+ var params = reply.nextSibling;
+
+ if (params) {
+ debug('reading init-params...');
+ var param = params.firstChild;
+
+ while (param) {
+ var k = param.getAttribute("key");
+ var v = param.getAttribute("value");
+ debug(k + " => " + v);
+ init_params[k] = v;
+ param = param.nextSibling;
+ }
+ }
+
init_second_stage();
} catch (e) {
@@ -259,9 +276,9 @@ function viewfeed(feed, skip, subop) {
function timeout() {
scheduleFeedUpdate(false);
- var refresh_time = getCookie('ttrss_vf_refresh');
+ var refresh_time = getInitParam("feeds_frame_refresh");
- if (!refresh_time) refresh_time = 600;
+ if (!refresh_time) refresh_time = 600;
setTimeout("timeout()", refresh_time*1000);
}
@@ -423,10 +440,10 @@ function init_second_stage() {
var tb = parent.document.forms["main_toolbar_form"];
- dropboxSelect(tb.view_mode, getCookie("ttrss_vf_vmode"));
- dropboxSelect(tb.limit, getCookie("ttrss_vf_limit"));
+ dropboxSelect(tb.view_mode, getInitParam("toolbar_view_mode"));
+ dropboxSelect(tb.limit, getInitParam("toolbar_limit"));
- daemon_enabled = getCookie("ttrss_vf_daemon");
+ daemon_enabled = getInitParam("daemon_enabled");
// FIXME should be callled after window resize
@@ -592,3 +609,12 @@ function fatalError(code, message) {
exception_error("fatalError", e);
}
}
+
+function getInitParam(key) {
+ return init_params[key];
+}
+
+function storeInitParam(key, value) {
+ new Ajax.Request("backend.php?op=rpc&subop=storeParam&key=" +
+ param_escape(key) + "&value=" + param_escape(value));
+}