]> git.wh0rd.org - tt-rss.git/blobdiff - functions.js
make f a hotkey persistent; obsolete option HIDE_READ_FEEDS
[tt-rss.git] / functions.js
index 27823adc9cc43c94b8ff021895e93fbde5ef7eab..8335f7e6eefbe13eef77f2625b9274e4c5f58fce 100644 (file)
@@ -531,7 +531,10 @@ function parse_counters(reply, scheduled_call) {
 
                        if (feedctr && feedu && feedr) {
 
-                               if (parseInt(ctr) > 0 && feedu.innerHTML != ctr && id == getActiveFeedId() && scheduled_call) {
+                               if (parseInt(ctr) > 0 && 
+                                               parseInt(feedu.innerHTML) < parseInt(ctr) && 
+                                               id == getActiveFeedId() && scheduled_call) {
+
                                        displayNewContentPrompt(id);
                                }
 
@@ -564,6 +567,8 @@ function parse_counters(reply, scheduled_call) {
                                        if (row_needs_hl) { 
                                                new Effect.Highlight(feedr, {duration: 1, startcolor: "#fff7d5",
                                                        queue: { position:'end', scope: 'EFQ-' + id, limit: 1 } } );
+
+                                               cache_invalidate("F:" + id);
                                        }
                                } else {
                                        feedctr.className = "feedCtrNoUnread";
@@ -686,11 +691,11 @@ function get_feed_entry_name(elem) {
 }
 
 
-function resort_category(node) {
+function resort_category(node, cat_mode) {
 
        try {
 
-               debug("resort_category: " + node);
+               debug("resort_category: " + node + " CM=" + cat_mode);
        
                var by_unread = feedsSortByUnread();
        
@@ -705,8 +710,11 @@ function resort_category(node) {
        
                                var tmp_name = get_feed_entry_name(list[i]);
                                var cur_name = get_feed_entry_name(list[j]);
-       
-                               if ((by_unread && (cur_val > tmp_val)) || (!by_unread && (cur_name < tmp_name))) {
+
+                               var valid_pair = cat_mode || (list[i].id.match(/FEEDR-[0-9]/) &&
+                                               list[j].id.match(/FEEDR-[0-9]/));
+
+                               if (valid_pair && ((by_unread && (cur_val > tmp_val)) || (!by_unread && (cur_name < tmp_name)))) {
                                        tempnode_i = list[i].cloneNode(true);
                                        tempnode_j = list[j].cloneNode(true);
                                        node.replaceChild(tempnode_i, list[j]);
@@ -730,12 +738,12 @@ function resort_feedlist() {
 
                for (var i = 0; i < lists.length; i++) {
                        if (lists[i].id && lists[i].id.match("FCATLIST-")) {
-                               resort_category(lists[i]);
+                               resort_category(lists[i], true);
                        }
                }
 
        } else {
-               resort_category($("feedList"));
+               resort_category($("feedList"), false);
        }
 }
 
@@ -1311,10 +1319,11 @@ function displayDlg(id, param) {
 
        disableHotkeys();
 
-       var query = "backend.php?op=dlg&id=" +
+       var query = "?op=dlg&id=" +
                param_escape(id) + "&param=" + param_escape(param);
 
-       new Ajax.Request(query, {
+       new Ajax.Request("backend.php", {
+               parameters: query,
                onComplete: function (transport) {
                        infobox_callback2(transport);
                } });
@@ -1496,8 +1505,7 @@ function getInitParam(key) {
        return init_params[key];
 }
 
-function storeInitParam(key, value) {
-       debug("<b>storeInitParam is OBSOLETE: " + key + " => " + value + "</b>");
+function setInitParam(key, value) {
        init_params[key] = value;
 }
 
@@ -1648,9 +1656,10 @@ function filterDlgCheckDate() {
 
                var reg_exp = form.reg_exp.value;
 
-               var query = "backend.php?op=rpc&subop=checkDate&date=" + reg_exp;
+               var query = "?op=rpc&subop=checkDate&date=" + reg_exp;
 
-               new Ajax.Request(query, {
+               new Ajax.Request("backend.php", {
+                       parameters: query,
                        onComplete: function(transport) { 
 
                                var form = document.forms["filter_add_form"];
@@ -1725,7 +1734,7 @@ function openArticleInNewWindow(id) {
        try {
                debug("openArticleInNewWindow: " + id);
 
-               var query = "backend.php?op=rpc&subop=getArticleLink&id=" + id;
+               var query = "?op=rpc&subop=getArticleLink&id=" + id;
                var wname = "ttrss_article_" + id;
 
                debug(query + " " + wname);
@@ -1734,7 +1743,8 @@ function openArticleInNewWindow(id) {
 
                if (!w) notify_error("Failed to open window for the article");
 
-               new Ajax.Request(query, {
+               new Ajax.Request("backend.php", {
+                       parameters: query,
                        onComplete: function(transport) { 
                                open_article_callback(transport); 
                        } });
@@ -1802,10 +1812,11 @@ function labelTest() {
        
                notify_progress("Loading, please wait...");
        
-               var query = "backend.php?op=pref-labels&subop=test&expr=" +
+               var query = "?op=pref-labels&subop=test&expr=" +
                        param_escape(sql_exp) + "&descr=" + param_escape(description);
        
-               new Ajax.Request(query, {
+               new Ajax.Request("backend.php", {
+                       parameters: query,
                        onComplete: function (transport) {
                                labeltest_callback(transport);
                        } });
@@ -2039,24 +2050,16 @@ function getSelectedFeedsFromBrowser() {
 function updateFeedBrowser() {
        try {
 
-               var query = "backend.php?op=rpc&subop=feedBrowser";
+               var options = Form.serialize("feed_browser");
 
-               var search = $("feed_browser_search");
-               var limit = $("feed_browser_limit");
-
-               if (limit) {
-                       query = query + "&limit=" + limit[limit.selectedIndex].value;
-               }
-
-               if (search) {
-                       query = query + "&search=" + param_escape(search.value);
-               }
+               var query = "?op=rpc&subop=feedBrowser&" + options;
 
                //notify_progress("Loading, please wait...", true);
 
                Element.show('feed_browser_spinner');
 
-               new Ajax.Request(query, {
+               new Ajax.Request("backend.php", {
+                       parameters: query,
                        onComplete: function(transport) { 
                                notify('');
 
@@ -2081,21 +2084,22 @@ function updateFeedBrowser() {
 
                        } });
 
-
        } catch (e) {
                exception_error("updateFeedBrowser", e);
        }
+
 }
 
 function browseFeeds(limit) {
 
        try {
 
-               var query = "backend.php?op=pref-feeds&subop=browse";
+               var query = "?op=pref-feeds&subop=browse";
 
                notify_progress("Loading, please wait...", true);
 
-               new Ajax.Request(query, {
+               new Ajax.Request("backend.php", {
+                       parameters: query,
                        onComplete: function(transport) { 
                                infobox_callback2(transport);
                        } });
@@ -2204,7 +2208,9 @@ function hideAuxDlg() {
 
 function displayNewContentPrompt(id) {
        try {
-               var msg = __("New articles in &laquo;%s&raquo;. <a href='#' onclick='viewCurrentFeed()'>Click to view</a>.");
+
+               var msg = "<a href='#' onclick='viewfeed("+id+")'>" +
+                       __("New articles available (Click to show)") + "</a>";
 
                msg = msg.replace("%s", getFeedName(id));