X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=tt-rss.js;h=0fb61a117526bee3b22094a74f47dd70c8724d54;hb=3745788e891932ba47ea4efe8d448e9f8d9ca359;hp=919b0bd458a87c52f8f91bf948738465f9660e42;hpb=9cab3250d6d1f88bc22a06865dd63680d43d30ff;p=tt-rss.git diff --git a/tt-rss.js b/tt-rss.js index 919b0bd4..0fb61a11 100644 --- a/tt-rss.js +++ b/tt-rss.js @@ -9,8 +9,12 @@ var total_unread = 0; var first_run = true; var search_query = ""; +var search_mode = ""; var display_tags = false; +//var display_read_feeds = true; + +var global_unread = 0; /*@cc_on @*/ /*@if (@_jscript_version >= 5) @@ -45,30 +49,26 @@ function toggleTags() { updateFeedList(); } -/* -function feedlist_callback() { - var container = document.getElementById('feeds'); +function dlg_frefresh_callback() { if (xmlhttp.readyState == 4) { - container.innerHTML=xmlhttp.responseText; + updateFeedList(false, false); + closeDlg(); + } +} - if (first_run) { - scheduleFeedUpdate(false); - if (getCookie("ttrss_vf_actfeed")) { - viewfeed(getCookie("ttrss_vf_actfeed"), 0, ""); - } - first_run = false; - } else { - notify(""); - } +function dialog_refresh_callback() { + if (xmlhttp.readyState == 4) { + var dlg = document.getElementById("userDlg"); + + dlg.innerHTML = xmlhttp.responseText; + dlg.style.display = "block"; } } -*/ function refetch_callback() { if (xmlhttp.readyState == 4) { - document.title = "Tiny Tiny RSS"; - notify("All feeds updated."); +// document.title = "Tiny Tiny RSS"; if (!xmlhttp.responseXML) { notify("refetch_callback: backend did not return valid XML"); @@ -92,6 +92,13 @@ function refetch_callback() { var feedu = f_document.getElementById("FEEDU-" + id); var feedr = f_document.getElementById("FEEDR-" + id); +/* TODO figure out how to update this from viewfeed.js->view() + disabled for now... + + if (id == "global-unread") { + global_unread = ctr; + } */ + if (feedctr && feedu && feedr) { feedu.innerHTML = ctr; @@ -107,6 +114,10 @@ function refetch_callback() { } } } + + updateTitle(""); + notify("All feeds updated."); + } } @@ -128,7 +139,9 @@ function scheduleFeedUpdate(force) { notify("Updating feeds in background..."); - document.title = "Tiny Tiny RSS - Updating..."; +// document.title = "Tiny Tiny RSS - Updating..."; + + updateTitle("Updating..."); var query_str = "backend.php?op=rpc&subop="; @@ -138,6 +151,16 @@ function scheduleFeedUpdate(force) { query_str = query_str + "updateAllFeeds"; } + var omode; + + if (display_tags) { + omode = "t"; + } else { + omode = "fl"; + } + + query_str = query_str + "&omode=" + omode; + if (xmlhttp_ready(xmlhttp)) { xmlhttp.open("GET", query_str, true); xmlhttp.onreadystatechange=refetch_callback; @@ -180,12 +203,18 @@ function catchupAllFeeds() { feeds_frame.src = query_str; + global_unread = 0; + updateTitle(); + } function viewCurrentFeed(skip, subop) { if (getActiveFeedId()) { viewfeed(getActiveFeedId(), skip, subop); + } else { + disableContainerChildren("headlinesToolbar", false, document); + viewfeed(-1, skip, subop); // FIXME } } @@ -203,6 +232,16 @@ function viewfeed(feed, skip, subop) { search_query = ""; } + var searchmodebox = document.getElementById("searchmodebox"); + + if (searchmodebox) { + search_mode = searchmodebox.value; + } else { + search_mode = ""; + } + + setCookie("ttrss_vf_smode", search_mode); + var viewbox = document.getElementById("viewbox"); var view_mode; @@ -246,7 +285,8 @@ function viewfeed(feed, skip, subop) { 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; + "&view=" + param_escape(view_mode) + "&limit=" + limit + + "&smode=" + param_escape(search_mode); if (search_query != "") { query = query + "&search=" + param_escape(search_query); @@ -264,6 +304,13 @@ function viewfeed(feed, skip, subop) { disableContainerChildren("headlinesToolbar", false, doc); + var btnMarkAsRead = document.getElementById("btnMarkFeedAsRead"); + + if (btnMarkAsRead && !isNumeric(feed)) { + btnMarkAsRead.disabled = true; + btnMarkAsRead.className = "disabledButton"; + } + // notify(""); } @@ -322,6 +369,19 @@ function localHotkeyHandler(keycode) { } +function updateTitle(s) { + var tmp = "Tiny Tiny RSS"; + + if (global_unread > 0) { + tmp = tmp + " (" + global_unread + ")"; + } + + if (s) { + tmp = tmp + " - " + s; + } + document.title = tmp; +} + function genericSanityCheck() { if (!xmlhttp) { @@ -377,4 +437,130 @@ function init() { } +function quickMenuGo() { + var chooser = document.getElementById("quickMenuChooser"); + + var opname = chooser[chooser.selectedIndex].text; + + if (opname == "Preferences") { + gotoPreferences(); + } + + if (opname == "Extended search") { + displayDlg("search"); + return; + } + + if (opname.match("Add new feed")) { + displayDlg("quickAddFeed"); + return; + } + + if (opname.match("Remove this feed")) { + var actid = getActiveFeedId(); + + if (!actid) { + notify("Please select some feed first."); + return; + } + + displayDlg("quickDelFeed", actid); + return; + } +} + +function qafAdd() { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + var link = document.getElementById("qafInput"); + + if (link.value.length == 0) { + notify("Missing feed URL."); + } else { + notify("Adding feed..."); + + var feeds_doc = window.frames["feeds-frame"].document; + + feeds_doc.location.href = "backend.php?op=error&msg=Loading,%20please wait..."; + + xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=add&link=" + + param_escape(link.value), true); + xmlhttp.onreadystatechange=dlg_frefresh_callback; + xmlhttp.send(null); + + link.value = ""; + + } +} + +function displayDlg(id, param) { + + notify(""); + + xmlhttp.open("GET", "backend.php?op=dlg&id=" + + param_escape(id) + "¶m=" + param_escape(param), true); + xmlhttp.onreadystatechange=dialog_refresh_callback; + xmlhttp.send(null); + +} + +function closeDlg() { + var dlg = document.getElementById("userDlg"); + dlg.style.display = "none"; +} + +function qfdDelete(feed_id) { + notify("Removing feed..."); + + var feeds_doc = window.frames["feeds-frame"].document; + feeds_doc.location.href = "backend.php?op=error&msg=Loading,%20please wait..."; + + xmlhttp.open("GET", "backend.php?op=pref-feeds&subop=remove&ids=" + feed_id); + xmlhttp.onreadystatechange=dlg_frefresh_callback; + xmlhttp.send(null); +} + + +function allFeedsMenuGo() { + var chooser = document.getElementById("allFeedsChooser"); + + var opname = chooser[chooser.selectedIndex].text; + + if (opname == "Update") { + scheduleFeedUpdate(true); + return; + } + + if (opname == "Mark as read") { + catchupAllFeeds(); + return; + } + + if (opname == "Toggle display read") { + toggleDispRead(); + return; + } + +} + +function toggleDispRead() { + var hide_read_feeds = (getCookie("ttrss_vf_hreadf") == 1); + + hide_read_feeds = !hide_read_feeds; + + var feeds_doc = window.frames["feeds-frame"].document; + + hideOrShowFeeds(feeds_doc, hide_read_feeds); + + if (hide_read_feeds) { + setCookie("ttrss_vf_hreadf", 1); + } else { + setCookie("ttrss_vf_hreadf", 0); + } + +}