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)); +}