X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=feedlist.js;h=cc36587a2eb288bbbdb3fdb99b74e8ea244950f8;hb=0feab655bab2bfffb90538955eb38308a6dc67e3;hp=7bdf63a062c2c012f6f5e7cadd202f4309dba686;hpb=a38f09cf4da7713b858c5fc439be3ad9162ed356;p=tt-rss.git diff --git a/feedlist.js b/feedlist.js index 7bdf63a0..cc36587a 100644 --- a/feedlist.js +++ b/feedlist.js @@ -1,89 +1,48 @@ -var xmlhttp = false; +//var xmlhttp = Ajax.getTransport(); -var cat_view_mode = false; - -/*@cc_on @*/ -/*@if (@_jscript_version >= 5) -// JScript gives us Conditional compilation, we can cope with old IE versions. -// and security blocked creation of the objects. -try { - xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); -} catch (e) { - try { - xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); - xmlhttp_rpc = new ActiveXObject("Microsoft.XMLHTTP"); - } catch (E) { - xmlhttp = false; - xmlhttp_rpc = false; - } -} -@end @*/ - -if (!xmlhttp && typeof XMLHttpRequest!='undefined') { - xmlhttp = new XMLHttpRequest(); - xmlhttp_rpc = new XMLHttpRequest(); +function viewCategory(cat) { + active_feed_is_cat = true; + viewfeed(cat, '', true); } -function viewCategory(cat) { - viewfeed(cat, 0, '', false, true); +function feedlist_callback() { + if (xmlhttp.readyState == 4) { + debug("feedlist_callback"); + var f = document.getElementById("feeds-frame"); + f.innerHTML = xmlhttp.responseText; + feedlist_init(); + } } -function viewfeed(feed, skip, subop, doc, is_cat) { +function viewfeed(feed, subop, is_cat, subop_param) { try { - if (!doc) doc = parent.document; - enableHotkeys(); - - var searchbox = doc.getElementById("searchbox"); - - if (searchbox) { - search_query = searchbox.value; - } else { - search_query = ""; - } - - var searchmodebox = doc.getElementById("searchmodebox"); - - var search_mode; - - if (searchmodebox) { - search_mode = searchmodebox[searchmodebox.selectedIndex].text; - } else { - search_mode = ""; - } - - setCookie("ttrss_vf_smode", search_mode); - - var viewbox = doc.getElementById("viewbox"); - - var view_mode; - - if (viewbox) { - view_mode = viewbox[viewbox.selectedIndex].text; - } else { - view_mode = "All Posts"; - } - - setCookie("ttrss_vf_vmode", view_mode, getCookie("ttrss_cltime")); - - var limitbox = doc.getElementById("limitbox"); - - var limit; - - if (limitbox) { - limit = limitbox[limitbox.selectedIndex].text; - setCookie("ttrss_vf_limit", limit, getCookie("ttrss_cltime")); - } else { - limit = "All"; + + var toolbar_query = Form.serialize("main_toolbar_form"); + var toolbar_form = document.forms["main_toolbar_form"]; + + if (document.forms["main_toolbar_form"].query) { + toolbar_form.query.value = ""; } - - // document.getElementById("ACTFEEDID").innerHTML = feed; - - if (getActiveFeedId() != feed) { - cat_view_mode = is_cat; + + storeInitParam("toolbar_limit", + toolbar_form.limit[toolbar_form.limit.selectedIndex].value); + + 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); + + if (document.getElementById("search_form")) { + var search_query = Form.serialize("search_form"); + query = query + "&" + search_query; + closeInfoBox(true); } + debug("IS_CAT_STORED: " + activeFeedIsCat() + ", IS_CAT: " + is_cat); + var fe = document.getElementById("FEEDR-" + getActiveFeedId()); if (fe) { @@ -92,103 +51,67 @@ function viewfeed(feed, skip, subop, doc, is_cat) { setActiveFeedId(feed); + if (is_cat != undefined) { + active_feed_is_cat = is_cat; + } + if (subop == "MarkAllRead") { - - var feedr = document.getElementById("FEEDR-" + feed); - var feedctr = document.getElementById("FEEDCTR-" + feed); - if (feedr && feedctr) { - - feedctr.className = "invisible"; - - if (feedr.className.match("Unread")) { - feedr.className = feedr.className.replace("Unread", ""); - } + var feedlist = document.getElementById('feedList'); + + var next_unread_feed = getRelativeFeedId(feedlist, + getActiveFeedId(), "next", true); + + var show_next_feed = getInitParam("on_catchup_show_next_feed") == "1"; + + if (next_unread_feed && show_next_feed && !activeFeedIsCat()) { + query = query + "&nuf=" + param_escape(next_unread_feed); + setActiveFeedId(next_unread_feed); } } - - var query = "backend.php?op=viewfeed&feed=" + param_escape(feed) + - "&skip=" + param_escape(skip) + "&subop=" + param_escape(subop) + - "&view=" + param_escape(view_mode) + "&limit=" + limit + - "&smode=" + param_escape(search_mode); - - if (search_query != "") { - query = query + "&search=" + param_escape(search_query); - searchbox.value = ""; - } - if (cat_view_mode) { + if (activeFeedIsCat()) { query = query + "&cat=1"; } - var headlines_frame = parent.frames["headlines-frame"]; - - // alert(headlines_frame) - if (navigator.userAgent.match("Opera")) { var date = new Date(); var timestamp = Math.round(date.getTime() / 1000); query = query + "&ts=" + timestamp } - parent.debug(query); - - headlines_frame.location.href = query; - -// cleanSelectedList("feedList"); - - var feedr = document.getElementById("FEEDR-" + feed); - if (feedr && !feedr.className.match("Selected")) { - feedr.className = feedr.className + "Selected"; - } + if (!activeFeedIsCat()) { + var feedr = document.getElementById("FEEDR-" + getActiveFeedId()); + if (feedr && !feedr.className.match("Selected")) { + feedr.className = feedr.className + "Selected"; + } + } - disableContainerChildren("headlinesToolbar", false, doc); - - /* var btnMarkAsRead = doc.getElementById("btnMarkFeedAsRead"); - - if (btnMarkAsRead && !isNumeric(feed)) { - btnMarkAsRead.disabled = true; - btnMarkAsRead.className = "disabledButton"; - } */ - - // notify(""); - } catch (e) { - exception_error("viewfeed", e); - } -} - -function localHotkeyHandler(keycode) { + disableContainerChildren("headlinesToolbar", false); + Form.enable("main_toolbar_form"); - if (keycode == 65) { // a - return parent.toggleDispRead(); - } - - if (keycode == 85) { // u - if (parent.getActiveFeedId()) { - return viewfeed(parent.getActiveFeedId(), 0, "ForceUpdate"); - } - } + debug(query); - if (keycode == 82) { // r - return parent.scheduleFeedUpdate(true); - } +/* var container = document.getElementById("headlines-frame"); - var feedlist = document.getElementById('feedList'); + container.innerHTML = "
 " + + "Loading, please wait...
"; */ - if (keycode == 74) { // j - var feed = getActiveFeedId(); - var new_feed = getRelativeFeedId(feedlist, feed, 'prev'); - if (new_feed) viewfeed(new_feed, 0, ''); - } + notify("Loading, please wait...", true); - if (keycode == 75) { // k - var feed = getActiveFeedId(); - var new_feed = getRelativeFeedId(feedlist, feed, 'next'); - if (new_feed) viewfeed(new_feed, 0, ''); - } + xmlhttp.abort(); -// alert("KC: " + keycode); + if (xmlhttp_ready(xmlhttp)) { + xmlhttp.open("GET", query, true); + xmlhttp.onreadystatechange=headlines_callback; + xmlhttp.send(null); + } else { + debug("xmlhttp busy (@feeds)"); + } + } catch (e) { + exception_error("viewfeed", e); + } } function toggleCollapseCat(cat) { @@ -216,34 +139,36 @@ function toggleCollapseCat(cat) { } } - xmlhttp_rpc.open("GET", "backend.php?op=feeds&subop=collapse&cid=" + - param_escape(cat), true); - xmlhttp_rpc.onreadystatechange=rpc_pnotify_callback; - xmlhttp_rpc.send(null); + new Ajax.Request("backend.php?op=feeds&subop=collapse&cid=" + + param_escape(cat)); } catch (e) { exception_error("toggleCollapseCat", e); } } -function init() { +function feedlist_init() { try { - if (arguments.callee.done) return; - arguments.callee.done = true; +// if (arguments.callee.done) return; +// arguments.callee.done = true; - parent.debug("in feedlist init"); + debug("in feedlist init"); - hideOrShowFeeds(document, getCookie("ttrss_vf_hreadf") == 1); + hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); document.onkeydown = hotkey_handler; - parent.setTimeout("timeout()", 0); + setTimeout("timeout()", 0); - parent.debug("about to remove splash, OMG!"); + debug("about to remove splash, OMG!"); - var o = parent.document.getElementById("overlay"); + var o = document.getElementById("overlay"); if (o) { o.style.display = "none"; - parent.debug("removed splash!"); + debug("removed splash!"); + } + + if (typeof correctPNG != 'undefined') { + correctPNG(); } } catch (e) {