}
if ($subop == "sanityCheck") {
+ print "<rpc-reply>";
if (sanity_check($link)) {
print "<error error-code=\"0\"/>";
+ print_init_params($link);
}
- }
+ print "</rpc-reply>";
+ }
if ($subop == "globalPurge") {
print "</rpc-reply>";
}
+
+ if ($subop == "storeParam") {
+ $key = $_GET["key"];
+ $value = $_GET["value"];
+ $_SESSION["stored-params"][$key] = $value;
+ }
}
?>
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"];
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);
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);
}
function get_session_cookie_name() {
return ((!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME);
}
+
+ function print_init_params($link) {
+ print "<init-params>";
+ if ($_SESSION["stored-params"]) {
+ foreach (array_keys($_SESSION["stored-params"]) as $key) {
+ $value = htmlspecialchars($_SESSION["stored-params"][$key]);
+ print "<param key=\"$key\" value=\"$value\"/>";
+ }
+ }
+
+ print "<param key=\"daemon_enabled\" value=\"" . ENABLE_UPDATE_DAEMON . "\"/>";
+ print "<param key=\"feeds_frame_refresh\" value=\"" . FEEDS_FRAME_REFRESH . "\"/>";
+
+ print "<param key=\"on_catchup_show_next_feed\" value=\"" .
+ get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED") . "\"/>";
+
+ print "</init-params>";
+ }
?>
var xmlhttp = Ajax.getTransport();
+var init_params = new Array();
+
function toggleTags() {
display_tags = !display_tags;
return;
}
- var reply = xmlhttp.responseXML.firstChild;
+ var reply = xmlhttp.responseXML.firstChild.firstChild;
if (!reply) {
fatalError(3, "[D002, Invalid RPC reply]: " + xmlhttp.responseText);
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) {
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);
}
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
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));
+}