]> git.wh0rd.org - tt-rss.git/blobdiff - tt-rss.js
quick unsubscribe prompt shows feed name
[tt-rss.git] / tt-rss.js
index ed6cae91e5f274ae3452aa59d43916081ea53b4a..9e6d70c73bc629762883b4868aada98e20007e39 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -10,6 +10,7 @@ var _qfd_deleted_feed = 0;
 var firsttime_update = true;
 var last_refetch = 0;
 var cookie_lifetime = 0;
+var active_feed_id = 0;
 
 var xmlhttp = Ajax.getTransport();
 
@@ -43,31 +44,6 @@ function dlg_frefresh_callback() {
        } 
 }
 
-function hide_unread_callback() {
-       if (xmlhttp.readyState == 4) {
-
-               try {
-
-                       var reply = xmlhttp.responseXML.firstChild.firstChild;
-                       var value = reply.getAttribute("value");
-                       var hide_read_feeds = (value != "false")
-                       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);
-                       } 
-
-               } catch (e) {
-                       exception_error("hide_unread_callback", e);
-               }
-
-       } 
-}
-
 function refetch_callback() {
        if (xmlhttp.readyState == 4) {
                try {
@@ -94,8 +70,14 @@ function refetch_callback() {
                        if (error_code && error_code != 0) {
                                return fatalError(error_code, reply.getAttribute("error-msg"));
                        }
+
+                       var counters = reply.firstChild;
        
-                       parse_counters(reply, true);
+                       parse_counters(counters, true);
+
+                       var runtime_info = counters.nextSibling;
+
+                       parse_runtime_info(runtime_info);
 
                        debug("refetch_callback: done");
 
@@ -197,7 +179,7 @@ function scheduleFeedUpdate(force) {
        var date = new Date();
 
        if (!xmlhttp_ready(xmlhttp) && last_refetch < date.getTime() / 1000 - 60) {
-               debug("xmlhttp seems to be stuck, aborting");
+               debug("<b>xmlhttp seems to be stuck, aborting</b>");
                xmlhttp.abort();
        }
 
@@ -312,41 +294,6 @@ function localPiggieFunction(enable) {
        }
 }
 
-function localHotkeyHandler(keycode) {
-
-       if (keycode == 82) { // r
-               return scheduleFeedUpdate(true);
-       }
-
-       if (keycode == 85) { // u
-               if (getActiveFeedId()) {
-                       return viewfeed(getActiveFeedId(), 0, "ForceUpdate");
-               }
-       }
-
-       if (keycode == 65) { // a
-               return toggleDispRead();
-       }
-
-       var f_doc = window.frames["feeds-frame"].document;
-       var feedlist = f_doc.getElementById('feedList');
-
-       if (keycode == 74) { // j
-               var feed = getActiveFeedId();
-               var new_feed = getRelativeFeedId(feedlist, feed, 'prev');
-               if (new_feed) viewfeed(new_feed, 0, '');
-       }
-
-       if (keycode == 75) { // k
-               var feed = getActiveFeedId();
-               var new_feed = getRelativeFeedId(feedlist, feed, 'next');
-               if (new_feed) viewfeed(new_feed, 0, '');
-       }
-
-//     notify("KC: " + keycode);
-
-}
-
 // if argument is undefined, current subtitle is not updated
 // use blank string to clear subtitle
 function updateTitle(s) {
@@ -430,8 +377,6 @@ function init_second_stage() {
                cookie_lifetime = getCookie("ttrss_cltime");
 
                delCookie("ttrss_vf_test");
-
-               setCookie("ttrss_vf_actfeed", "");
        
                updateFeedList(false, false);
                document.onkeydown = hotkey_handler;
@@ -450,15 +395,6 @@ function init_second_stage() {
 
                if (navigator.userAgent.match("Opera")) {
                        resize_feeds_frame();
-
-/*                     // fix headlines frame height for Opera
-                       var h = document.getElementById("headlines");
-                       var c = document.getElementById("content");
-                       var nh = document.body.scrollHeight * 0.25;
-       
-                       h.style.height = nh + "px";
-                       c.style.height = c.scrollHeight - nh + "px"; */
-                       
                }
 
                debug("second stage ok");
@@ -500,8 +436,10 @@ function quickMenuGo(opid) {
                                alert("Please select some feed first.");
                                return;
                        }
+
+                       var fn = getFeedName(actid);
        
-                       if (confirm("Unsubscribe from current feed?")) {
+                       if (confirm("Unsubscribe from " + fn + "?")) {
                                qfdDelete(actid);
                        }
                
@@ -540,9 +478,6 @@ function qfdDelete(feed_id) {
                return
        }
 
-//     var feeds_doc = window.frames["feeds-frame"].document;
-//     feeds_doc.location.href = "backend.php?op=error&msg=Loading,%20please wait...";
-
        _qfd_deleted_feed = feed_id;
 
        xmlhttp.open("GET", "backend.php?op=pref-feeds&quiet=1&subop=remove&ids=" + feed_id);
@@ -564,46 +499,42 @@ function toggleDispRead() {
                        return
                }
 
-               var hide_read_feeds = (getCookie("ttrss_vf_hreadf") == 1);
+               var hide_read_feeds = (getInitParam("hide_read_feeds") == "1");
 
                hide_read_feeds = !hide_read_feeds;
-       
+
+               debug("toggle_disp_read => " + hide_read_feeds);
+
+               hideOrShowFeeds(getFeedsContext().document, hide_read_feeds);
+
                var query = "backend.php?op=rpc&subop=setpref" +
                        "&key=HIDE_READ_FEEDS&value=" + param_escape(hide_read_feeds);
 
-               xmlhttp.open("GET", query);
-               xmlhttp.onreadystatechange=hide_unread_callback;
-               xmlhttp.send(null);
+               storeInitParam("hide_read_feeds", hide_read_feeds, true);
+
+               new Ajax.Request(query);
                
        } catch (e) {
                exception_error("toggleDispRead", e);
        }
 }
 
-function fatalError(code, message) {
-       try {   
-               var fe = document.getElementById("fatal_error");
-               var fc = document.getElementById("fatal_error_msg");
-
-               fc.innerHTML = "Code " + code + ": " + message;
-
-               fe.style.display = "block";
-
-       } catch (e) {
-               exception_error("fatalError", e);
-       }
-}
+function parse_runtime_info(elem) {
+       var param = elem.firstChild;
 
-function getInitParam(key) {
-       return init_params[key];
-}
+       while (param) {
+               var k = param.getAttribute("key");
+               var v = param.getAttribute("value");
 
-function storeInitParam(key, value) {
-       try {
-               init_params[key] = value;
-               new Ajax.Request("backend.php?op=rpc&subop=storeParam&key=" + 
-                       param_escape(key) + "&value=" + param_escape(value));           
-       } catch (e) {
-               exception_error("storeInitParam", e);
+               var w = document.getElementById("noDaemonWarning");
+               
+               if (w) {
+                       if (k == "daemon_is_running" && v != 1) {
+                               w.style.display = "block";
+                       } else {
+                               w.style.display = "none";
+                       }
+               }
+               param = param.nextSibling;
        }
 }