]> git.wh0rd.org - tt-rss.git/blobdiff - feedlist.js
restyle resizer
[tt-rss.git] / feedlist.js
index ada279ec267d9deb2e6b17f9bc8a3ab89c5d5429..5ba9ec0b83fc38b23d2b67fcccc14c85fe2cf113 100644 (file)
@@ -7,7 +7,8 @@ var mouse_is_down = false;
 var mouse_y = 0;
 var mouse_x = 0;
 
-var enable_resize = false;
+var resize_enabled = false;
+var counters_last_request = 0;
 
 function viewCategory(cat) {
        active_feed_is_cat = true;
@@ -45,6 +46,9 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) {
 
 //             if (!offset) page_offset = 0;
 
+               last_requested_article = 0;
+               counters_last_request = 0;
+
                if (feed == getActiveFeedId()) {
                        cache_invalidate("F:" + feed);
                }
@@ -164,6 +168,10 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) {
                        query = query + "&omode=flc";
                }
 
+               if (!async_counters_work) {
+                       query = query + "&csync=true";
+               }
+
                debug(query);
 
                var container = document.getElementById("headlinesInnerContainer");
@@ -210,22 +218,7 @@ function viewfeed(feed, subop, is_cat, subop_param, skip_history, offset) {
 
                        f.innerHTML = cache_find_param(cache_prefix + feed, unread_ctr);
 
-                       var query = "backend.php?op=rpc&subop=getAllCounters";
-
-                       if (tagsAreDisplayed()) {
-                               query = query + "&omode=tl";
-                       } else {
-                               query = query + "&omode=flc";
-                       }
-
-                       new Ajax.Request(query, {
-                               onComplete: function(transport) { 
-                                       try {
-                                               all_counters_callback2(transport);
-                                       } catch (e) {
-                                               exception_error("viewfeed/getcounters", e);
-                                       }
-                               } });
+                       request_counters();
 
                } else {
 
@@ -332,22 +325,13 @@ function feedlist_init() {
 
                debug("in feedlist init");
                
-               hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1);
+               hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
                document.onkeydown = hotkey_handler;
                document.onmousemove = mouse_move_handler;
                document.onmousedown = mouse_down_handler;
                document.onmouseup = mouse_up_handler;
                setTimeout("timeout()", 0);
 
-/*             debug("about to remove splash, OMG!");
-
-               var o = document.getElementById("overlay");
-
-               if (o) {
-                       o.style.display = "none";
-                       debug("removed splash!");
-               } */
-
                if (typeof correctPNG != 'undefined') {
                        correctPNG();
                }
@@ -368,12 +352,6 @@ function feedlist_init() {
                        setTimeout("hide_footer()", 5000);
                }
 
-/*             if (getInitParam("hide_feedlist") == 1) {
-                       init_hidden_feedlist(getInitParam("theme"));
-               } else {
-                       init_collapsable_feedlist(getInitParam("theme"));
-               } */
-
                init_collapsable_feedlist(getInitParam("theme"));
 
        } catch (e) {
@@ -478,7 +456,8 @@ function mouse_move_handler(e) {
                        client_y = window.event.clientY;
                        client_x = window.event.clientX;
                } else if (e) {
-
+                       client_x = e.screenX;
+                       client_y = e.screenY;
                }
 
                if (mouse_is_down) {
@@ -487,6 +466,10 @@ function mouse_move_handler(e) {
                        if (mouse_x == 0) mouse_x = client_x;
 
                        resize_headlines(mouse_x - client_x, mouse_y - client_y);
+
+                       mouse_y = client_y;
+                       mouse_x = client_x;
+
                        return false;
                }
 
@@ -495,13 +478,19 @@ function mouse_move_handler(e) {
        }
 }
 
-function resize_enabled(b) {
-       enable_resize = b;
+function enable_resize(b) {
+       resize_enabled = b;
 }
 
 function mouse_down_handler(e) {
        try {
-               if (enable_resize) mouse_is_down = true;
+               if (resize_enabled) { 
+                       mouse_is_down = true;
+                       mouse_x = 0;
+                       mouse_y = 0;
+                       document.onselectstart = function() { return false; };
+                       return false;
+               }
        } catch (e) {
                exception_error("mouse_move_handler", e);
        }
@@ -510,7 +499,63 @@ function mouse_down_handler(e) {
 function mouse_up_handler(e) {
        try {
                mouse_is_down = false;
+               document.onselectstart = null;
        } catch (e) {
                exception_error("mouse_move_handler", e);
        }
 }
+
+function request_counters_real() {
+
+       try {
+
+               debug("requesting counters...");
+
+               var query = "backend.php?op=rpc&subop=getAllCounters";
+
+               if (tagsAreDisplayed()) {
+                       query = query + "&omode=tl";
+               } else {
+                       query = query + "&omode=flc";
+               }
+
+               new Ajax.Request(query, {
+                       onComplete: function(transport) { 
+                               try {
+                                       all_counters_callback2(transport, true);
+                               } catch (e) {
+                                       exception_error("viewfeed/getcounters", e);
+                               }
+                       } });
+
+       } catch (e) {
+               exception_error("request_counters_real", e);
+       }
+}
+
+
+function request_counters() {
+
+       try {
+
+               if (getInitParam("bw_limit") == "1") return;
+
+               var date = new Date();
+               var timestamp = Math.round(date.getTime() / 1000);
+
+//             if (getInitParam("sync_counters") == "1" || 
+//                             timestamp - counters_last_request > 10) {
+
+               if (timestamp - counters_last_request > 10) {
+
+                       debug("scheduling request of counters...");
+                       window.setTimeout("request_counters_real()", 1000);
+                       counters_last_request = timestamp;
+               } else {
+                       debug("request_counters: rate limit reached: " + (timestamp - counters_last_request));
+               }
+
+       } catch (e) {
+               exception_error("request_counters", e);
+       }
+}