X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=tt-rss.js;h=6660a5d90c0bc82f6231acfab629fdda6fd3f885;hb=5158ced917ce256f6c5adb9d06c69be79751e7e0;hp=07734bacc1695c97ae36dccdcaef88c71888cce5;hpb=5854573ad3f8137d123b7f0d196f1c0e38dcb1d4;p=tt-rss.git diff --git a/tt-rss.js b/tt-rss.js index 07734bac..6660a5d9 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -14,6 +14,7 @@ var cookie_lifetime = 0; var active_feed_id = 0; var active_feed_is_cat = false; var number_of_feeds = 0; +var sanity_check_done = false; var xmlhttp = Ajax.getTransport(); var xmlhttp_ctr = Ajax.getTransport(); @@ -22,18 +23,22 @@ var init_params = new Object(); var op_history = new Array(); +function tagsAreDisplayed() { + return display_tags; +} + function toggleTags() { display_tags = !display_tags; var p = document.getElementById("dispSwitchPrompt"); if (display_tags) { - p.innerHTML = "display feeds"; + p.innerHTML = __("display feeds"); } else { - p.innerHTML = "display tags"; + p.innerHTML = __("display tags"); } - notify("Loading, please wait..."); + notify_progress("Loading, please wait..."); updateFeedList(); } @@ -62,15 +67,15 @@ function refetch_callback() { last_refetch = date.getTime() / 1000; - parse_counters_reply(xmlhttp_ctr); + parse_counters_reply(xmlhttp_ctr, true); debug("refetch_callback: done"); if (!daemon_enabled && !daemon_refresh_only) { - notify("All feeds updated."); + notify_info("All feeds updated."); updateTitle(""); } else { - notify(""); + //notify(""); } } catch (e) { exception_error("refetch_callback", e); @@ -84,7 +89,14 @@ function backend_sanity_check_callback() { if (xmlhttp.readyState == 4) { try { - + + if (sanity_check_done) { + fatalError(11, "Sanity check request received twice. This can indicate "+ + "presence of Firebug or some other disrupting extension. "+ + "Please disable it and try again."); + return; + } + if (!xmlhttp.responseXML) { fatalError(3, "[D001, Received reply is not XML]: " + xmlhttp.responseText); return; @@ -120,6 +132,8 @@ function backend_sanity_check_callback() { } } + sanity_check_done = true; + init_second_stage(); } catch (e) { @@ -131,7 +145,7 @@ function backend_sanity_check_callback() { function scheduleFeedUpdate(force) { if (!daemon_enabled && !daemon_refresh_only) { - notify("Updating feeds, please wait.", true); + notify_progress("Updating feeds, please wait.", true); updateTitle("Updating"); } @@ -150,7 +164,7 @@ function scheduleFeedUpdate(force) { omode = "T"; } else { if (display_tags) { - omode = "t"; + omode = "tl"; } else { omode = "flc"; } @@ -163,6 +177,9 @@ function scheduleFeedUpdate(force) { var date = new Date(); + var timestamp = Math.round(date.getTime() / 1000); + query_str = query_str + "&ts=" + timestamp + if (!xmlhttp_ready(xmlhttp_ctr) && last_refetch < date.getTime() / 1000 - 60) { debug("xmlhttp seems to be stuck, aborting"); xmlhttp_ctr.abort(); @@ -186,6 +203,8 @@ function updateFeedList(silent, fetch) { // notify("Loading feed list..."); // } + debug("updateFeedList"); + var query_str = "backend.php?op=feeds"; if (display_tags) { @@ -196,11 +215,9 @@ function updateFeedList(silent, fetch) { query_str = query_str + "&actid=" + getActiveFeedId(); } - if (navigator.userAgent.match("Opera")) { - var date = new Date(); - var timestamp = Math.round(date.getTime() / 1000); - query_str = query_str + "&ts=" + timestamp - } + var date = new Date(); + var timestamp = Math.round(date.getTime() / 1000); + query_str = query_str + "&ts=" + timestamp if (fetch) query_str = query_str + "&fetch=yes"; @@ -224,7 +241,7 @@ function catchupAllFeeds() { var query_str = "backend.php?op=feeds&subop=catchupAll"; - notify("Marking all feeds as read..."); + notify_progress("Marking all feeds as read..."); debug("catchupAllFeeds Q=" + query_str); @@ -358,7 +375,9 @@ function init() { debug('debug mode activated'); } - xmlhttp.open("GET", "backend.php?op=rpc&subop=sanityCheck", true); + var params = "&ua=" + param_escape(navigator.userAgent); + + xmlhttp.open("GET", "backend.php?op=rpc&subop=sanityCheck" + params, true); xmlhttp.onreadystatechange=backend_sanity_check_callback; xmlhttp.send(null); @@ -367,6 +386,37 @@ function init() { } } +function resize_headlines() { + + var h_frame = document.getElementById("headlines-frame"); + var c_frame = document.getElementById("content-frame"); + var f_frame = document.getElementById("footer"); + + if (!c_frame || !h_frame) return; + + debug("resize_headlines"); + + if (!is_msie()) { + h_frame.style.height = 30 + "%"; + c_frame.style.top = h_frame.offsetTop + h_frame.offsetHeight + 1 + "px"; + h_frame.style.height = h_frame.offsetHeight + "px"; + } else { + h_frame.style.height = document.documentElement.clientHeight * 0.3 + "px"; + c_frame.style.top = h_frame.offsetTop + h_frame.offsetHeight + 1 + "px"; + + var c_bottom = document.documentElement.clientHeight; + + if (f_frame) { + c_bottom = f_frame.offsetTop; + } + + c_frame.style.height = c_bottom - (h_frame.offsetTop + + h_frame.offsetHeight + 1) + "px"; + h_frame.style.height = h_frame.offsetHeight + "px"; + + } +} + function init_second_stage() { try { @@ -374,13 +424,14 @@ function init_second_stage() { cookie_lifetime = getCookie("ttrss_cltime"); delCookie("ttrss_vf_test"); - - document.onkeydown = hotkey_handler; - var tb = parent.document.forms["main_toolbar_form"]; +// document.onresize = resize_headlines; + resize_headlines(); + + var toolbar = document.forms["main_toolbar_form"]; -// dropboxSelect(tb.view_mode, getInitParam("toolbar_view_mode")); -// dropboxSelect(tb.limit, getInitParam("toolbar_limit")); + dropboxSelect(toolbar.view_mode, getInitParam("default_view_mode")); + dropboxSelect(toolbar.limit, getInitParam("default_view_limit")); daemon_enabled = getInitParam("daemon_enabled") == 1; daemon_refresh_only = getInitParam("daemon_refresh_only") == 1; @@ -465,7 +516,7 @@ function quickMenuGo(opid) { function qfdDelete(feed_id) { - notify("Removing feed..."); + notify_progress("Removing feed..."); if (!xmlhttp_ready(xmlhttp)) { printLockingError(); @@ -493,7 +544,7 @@ function toggleDispRead() { if (!xmlhttp_ready(xmlhttp)) { printLockingError(); return - } + } var hide_read_feeds = (getInitParam("hide_read_feeds") == "1"); @@ -503,13 +554,13 @@ function toggleDispRead() { hideOrShowFeeds(getFeedsContext().document, hide_read_feeds); - var query = "backend.php?op=rpc&subop=setpref" + - "&key=HIDE_READ_FEEDS&value=" + param_escape(hide_read_feeds); - storeInitParam("hide_read_feeds", hide_read_feeds, true); - new Ajax.Request(query); - +/* var query = "backend.php?op=rpc&subop=setpref" + + "&key=HIDE_READ_FEEDS&value=" + param_escape(hide_read_feeds); + + new Ajax.Request(query); */ + } catch (e) { exception_error("toggleDispRead", e); } @@ -531,7 +582,22 @@ function parse_runtime_info(elem) { debug("RI: " + k + " => " + v); - var w = document.getElementById("noDaemonWarning"); + if (k == "new_version_available") { + var icon = document.getElementById("newVersionIcon"); + if (icon) { + if (v == "1") { + icon.style.display = "inline"; + } else { + icon.style.display = "none"; + } + } + } + + if (k == "daemon_is_running" && v != 1) { + notify_error("Update daemon is not runing."); + } + +/* var w = document.getElementById("noDaemonWarning"); if (w) { if (k == "daemon_is_running" && v != 1) { @@ -539,7 +605,7 @@ function parse_runtime_info(elem) { } else { w.style.display = "none"; } - } + } */ param = param.nextSibling; } } @@ -574,6 +640,11 @@ function editFeedDlg(feed) { return; } + if (feed <= 0 || active_feed_is_cat || tagsAreDisplayed()) { + alert("You can't edit this kind of feed."); + return; + } + if (xmlhttp_ready(xmlhttp)) { xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=editfeed&id=" + param_escape(feed), true); @@ -605,7 +676,7 @@ function feedEditSave() { var query = Form.serialize("edit_feed_form"); - notify("Saving feed..."); + notify_progress("Saving feed..."); xmlhttp.open("POST", "backend.php", true); xmlhttp.onreadystatechange=dlg_frefresh_callback; @@ -672,7 +743,7 @@ function localHotkeyHandler(e) { } } else { - notify("No operation to undo"); + notify_error("No operation to undo"); } return false;