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 = "