]> git.wh0rd.org - tt-rss.git/blobdiff - js/feedlist.js
temporarily enable entity loader when importing opml because idk
[tt-rss.git] / js / feedlist.js
index bde96c4db9a968ea907de90af0f37d5dfa401cb2..7c2e08052d41888afa630db048d5d36fc46f5a9d 100644 (file)
@@ -2,7 +2,7 @@ var _infscroll_disable = 0;
 var _infscroll_request_sent = 0;
 var _search_query = false;
 var _viewfeed_last = 0;
-var view_settings = [];
+var _viewfeed_timeout = false;
 
 var counters_last_request = 0;
 
@@ -35,10 +35,7 @@ function loadMoreHeadlines() {
                } else if (_search_query) {
                        offset = num_all;
                } else if (view_mode == "adaptive") {
-                       if (num_unread > 0)
-                               offset = unread_in_buffer;
-                       else
-                               offset = num_all;
+                       offset = num_unread > 0 ? unread_in_buffer : num_all;
                } else {
                        offset = num_all;
                }
@@ -53,7 +50,7 @@ function loadMoreHeadlines() {
 }
 
 
-function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
+function viewfeed(feed, method, is_cat, offset, background, infscroll_req, can_wait) {
        try {
                if (is_cat == undefined)
                        is_cat = false;
@@ -93,40 +90,9 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
 
                Form.enable("main_toolbar_form");
 
-               /* var toolbar = document.forms["main_toolbar_form"];
-               var ft = is_cat ? 'C' : 'F';
-
-               _viewmode_disabled = Math.round(new Date().getTime());
-
-               if (feed != getActiveFeedId() || is_cat != activeFeedIsCat()) {
-                       var vs = view_settings[ft + ':' + feed];
-                       if (vs) {
-                               dijit.getEnclosingWidget(toolbar.view_mode).attr('value',
-                                       vs.view_mode);
-
-                               dijit.getEnclosingWidget(toolbar.order_by).attr('value',
-                                       vs.order_by);
-                       } else {
-                               dijit.getEnclosingWidget(toolbar.view_mode).attr('value',
-                                       getInitParam("default_view_mode"));
-
-                               dijit.getEnclosingWidget(toolbar.order_by).attr('value',
-                                       getInitParam("default_view_order_by"));
-                       }
-
-               } else if (parseInt(feed) > 0) {
-                       var ft = is_cat ? 'C' : 'F';
-
-                       var view_mode = dijit.getEnclosingWidget(toolbar.view_mode).attr('value');
-                       var order_by = dijit.getEnclosingWidget(toolbar.order_by).attr('value');
-
-                       view_settings[ft + ':' + feed] = {'view_mode': view_mode,
-                               'order_by': order_by};
-               } */
-
                var toolbar_query = Form.serialize("main_toolbar_form");
 
-               var query = "?op=feeds&method=view&feed=" + feed + "&" +
+               var query = "?op=feeds&method=view&feed=" + param_escape(feed) + "&" +
                        toolbar_query;
 
                if (method) {
@@ -164,12 +130,24 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
 
                console.log(query);
 
-               new Ajax.Request("backend.php", {
-                       parameters: query,
-                       onComplete: function(transport) {
-                               setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
-                               headlines_callback2(transport, offset, background, infscroll_req);
-                       } });
+               if (can_wait && _viewfeed_timeout) {
+                       setFeedExpandoIcon(getActiveFeedId(), activeFeedIsCat(), 'images/blank_icon.gif');
+                       clearTimeout(_viewfeed_timeout);
+               }
+
+               setActiveFeedId(feed, is_cat);
+
+               timeout_ms = can_wait ? 250 : 0;
+               _viewfeed_timeout = setTimeout(function() {
+
+                       new Ajax.Request("backend.php", {
+                               parameters: query,
+                               onComplete: function(transport) {
+                                       setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
+                                       headlines_callback2(transport, offset, background, infscroll_req);
+                                       PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
+                               } });
+               }, timeout_ms); // Wait 250ms
 
        } catch (e) {
                exception_error("viewfeed", e);
@@ -180,6 +158,8 @@ function feedlist_init() {
        try {
                console.log("in feedlist init");
 
+               loading_set_progress(50);
+
                document.onkeydown = hotkey_handler;
                setTimeout("hotkey_prefix_timeout()", 5*1000);
 
@@ -246,12 +226,7 @@ function parse_counters(elems, scheduled_call) {
                        var error = elems[l].error;
                        var has_img = elems[l].has_img;
                        var updated = elems[l].updated;
-                       var vs = elems[l].vs;
-
-                       if (vs) {
-                               var ft = (kind == "cat") ? "C" : "F";
-                               view_settings[ft + ":" + id] = vs;
-                       }
+                       var auxctr = parseInt(elems[l].auxcounter);
 
                        if (id == "global-unread") {
                                global_unread = ctr;
@@ -269,6 +244,7 @@ function parse_counters(elems, scheduled_call) {
                        }
 
                        setFeedUnread(id, (kind == "cat"), ctr);
+                       setFeedValue(id, (kind == "cat"), 'auxcounter', auxctr);
 
                        if (kind != "cat") {
                                setFeedValue(id, false, 'error', error);
@@ -418,20 +394,8 @@ function getNextUnreadFeed(feed, is_cat) {
        }
 }
 
-function catchupCurrentFeed(elem) {
-
-       if (elem) {
-               var toolbar = document.forms["main_toolbar_form"];
-               var catchup_feed = dijit.getEnclosingWidget(toolbar.catchup_feed);
-               var mode = catchup_feed.attr('value');
-
-               if (mode != 'default') {
-                       catchupFeed(getActiveFeedId(), activeFeedIsCat(), mode);
-                       catchup_feed.attr('value', 'default');
-               }
-       } else {
-               catchupFeed(getActiveFeedId(), activeFeedIsCat());
-       }
+function catchupCurrentFeed(mode) {
+       catchupFeed(getActiveFeedId(), activeFeedIsCat(), mode);
 }
 
 function catchupFeedInGroup(id) {
@@ -463,7 +427,7 @@ function catchupFeed(feed, is_cat, mode) {
                case "1week":
                        str = __("Mark all articles in %s older than 1 week as read?");
                        break;
-               case "2weeks":
+               case "2week":
                        str = __("Mark all articles in %s older than 2 weeks as read?");
                        break;
                default: