]> git.wh0rd.org - tt-rss.git/blobdiff - tt-rss.js
compat theme: properly reflow container height
[tt-rss.git] / tt-rss.js
index 9cbe0513435f56e671721cb1b3d6a5db37297d36..0e4c153c0cf295b7fb2278136b92eab5526da6b4 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -13,6 +13,7 @@ var active_feed_id = 0;
 var active_feed_is_cat = false;
 var number_of_feeds = 0;
 var sanity_check_done = false;
+var _hfd_scrolltop = 0;
 
 var init_params = new Object();
 
@@ -218,20 +219,24 @@ function updateFeedList(silent, fetch) {
 
 function catchupAllFeeds() {
 
-       var query_str = "backend.php?op=feeds&subop=catchupAll";
+       var str = __("Mark all articles as read?");
 
-       notify_progress("Marking all feeds as read...");
+       if (getInitParam("confirm_feed_catchup") != 1 || confirm(str)) {
 
-       debug("catchupAllFeeds Q=" + query_str);
+               var query_str = "backend.php?op=feeds&subop=catchupAll";
 
-       new Ajax.Request(query_str, {
-               onComplete: function(transport) { 
-                       feedlist_callback2(transport); 
-               } });
+               notify_progress("Marking all feeds as read...");
 
-       global_unread = 0;
-       updateTitle("");
+               debug("catchupAllFeeds Q=" + query_str);
 
+               new Ajax.Request(query_str, {
+                       onComplete: function(transport) { 
+                               feedlist_callback2(transport); 
+                       } });
+
+               global_unread = 0;
+               updateTitle("");
+       }
 }
 
 function viewCurrentFeed(subop) {
@@ -354,9 +359,14 @@ function resize_headlines() {
        var h_frame = document.getElementById("headlines-frame");
        var c_frame = document.getElementById("content-frame");
        var f_frame = document.getElementById("footer");
+       var feeds_frame = document.getElementById("feeds-holder");
 
        if (!c_frame || !h_frame) return;
 
+       if (feeds_frame && getInitParam("theme") == "compat") {
+                       feeds_frame.style.bottom = f_frame.offsetHeight + "px";         
+       }
+
        if (getInitParam("theme") == "3pane") {
                debug("resize_headlines: HOR-mode");
 
@@ -515,6 +525,10 @@ function quickMenuGo(opid) {
                        displayDlg("quickAddFilter", getActiveFeedId());
                }
 
+               if (opid == "qmcRescoreFeed") {
+                       rescoreCurrentFeed();
+               }
+
        } catch (e) {
                exception_error("quickMenuGo", e);
        }
@@ -633,8 +647,6 @@ function catchupCurrentFeed() {
 function editFeedDlg(feed) {
        try {
 
-               disableHotkeys();
-       
                if (!feed) {
                        alert(__("Please select some feed first."));
                        return;
@@ -652,7 +664,9 @@ function editFeedDlg(feed) {
                } else {
                        query = "backend.php?op=pref-labels&subop=edit&id=" +   param_escape(-feed-11);
                }
-       
+
+               disableHotkeys();
+
                new Ajax.Request(query, {
                        onComplete: function(transport) { 
                                infobox_callback2(transport); 
@@ -739,6 +753,7 @@ function clearFeedArticles(feed_id) {
        return false;
 }
 
+/*
 function toggle_feedlist() {
        try {
                debug("toggle_feedlist");
@@ -748,12 +763,137 @@ function toggle_feedlist() {
                if (!Element.visible(fl)) {
                        Element.show(fl);
                        fl.style.zIndex = 30;
+                       fl.scrollTop = _hfd_scrolltop;
                } else {
-                       Element.hide(fl);
+                       _hfd_scrolltop = fl.scrollTop;
+                       Element.hide(fl);                       
 //                     Effect.Fade(fl, {duration : 0.2, 
 //                             queue: { position: 'end', scope: 'FLFADEQ', limit: 1 }});
                }
        } catch (e) {
                exception_error(e, "toggle_feedlist");
        }
+} */
+
+function collapse_feedlist() {
+       try {
+               debug("toggle_feedlist");
+               
+               var theme = getInitParam("theme");
+               if (theme != "" && theme != "compact" && theme != "graycube" &&
+                               theme != "compat") return;
+
+               var fl = document.getElementById("feeds-holder");
+               var fh = document.getElementById("headlines-frame");
+               var fc = document.getElementById("content-frame");
+               var ft = document.getElementById("toolbar");
+               var ff = document.getElementById("footer");
+               var fhdr = document.getElementById("header");
+               var fbtn = document.getElementById("collapse_feeds_btn");
+
+               if (!Element.visible(fl)) {
+                       Element.show(fl);
+                       fbtn.value = "<<";
+
+                       if (theme != "graycube") {
+
+                               fh.style.left = fl.offsetWidth + "px";
+                               ft.style.left = fl.offsetWidth + "px";
+                               if (fc) fc.style.left = fl.offsetWidth + "px";
+                               if (ff && theme != "compat") ff.style.left = (fl.offsetWidth-1) + "px";
+
+                               if (theme == "compact") fhdr.style.left = (fl.offsetWidth + 10) + "px";
+                       } else {
+                               fh.style.left = fl.offsetWidth + 40 + "px";
+                               ft.style.left = fl.offsetWidth + 40 +"px";
+                               if (fc) fc.style.left = fl.offsetWidth + 40 + "px";
+                       }
+
+                       setCookie("ttrss_vf_fclps", "0");
+
+               } else {
+                       Element.hide(fl);
+                       fbtn.value = ">>";
+
+                       if (theme != "graycube") {
+
+                               fh.style.left = "0px";
+                               ft.style.left = "0px";
+                               if (fc) fc.style.left = "0px";
+                               if (ff) ff.style.left = "0px";
+
+                               if (theme == "compact") fhdr.style.left = "10px";
+
+                       } else {
+                               fh.style.left = "20px";
+                               ft.style.left = "20px";
+                               if (fc) fc.style.left = "20px";
+
+                       }
+
+                       setCookie("ttrss_vf_fclps", "1");
+               }
+       } catch (e) {
+               exception_error(e, "toggle_feedlist");
+       }
+}
+
+function viewModeChanged() {
+       cache_empty();
+       return viewCurrentFeed(0, '')
 }
+
+function viewLimitChanged() {
+       cache_empty();
+       return viewCurrentFeed(0, '')
+}
+
+function adjustArticleScore(id, score) {
+       try {
+
+               var pr = prompt(__("Assign score to article:"), score);
+
+               if (pr != undefined) {
+                       var query = "backend.php?op=rpc&subop=setScore&id=" + id + "&score=" + pr;
+
+                       new Ajax.Request(query, {
+                       onComplete: function(transport) {
+                                       viewCurrentFeed();
+                               } });
+
+               }
+       } catch (e) {
+               exception_error(e, "adjustArticleScore");
+       }
+}      
+
+function rescoreCurrentFeed() {
+
+       var actid = getActiveFeedId();
+
+       if (activeFeedIsCat() || actid < 0 || tagsAreDisplayed()) {
+               alert(__("You can't rescore this kind of feed."));
+               return;
+       }       
+
+       if (!actid) {
+               alert(__("Please select some feed first."));
+               return;
+       }
+
+       var fn = getFeedName(actid);
+       var pr = __("Rescore articles in %s?").replace("%s", fn);
+
+       if (confirm(pr)) {
+               notify_progress("Rescoring articles...");
+
+               var query = "backend.php?op=pref-feeds&subop=rescore&quiet=1&ids=" + actid;
+
+               new Ajax.Request(query, {
+               onComplete: function(transport) {
+                       viewCurrentFeed();
+               } });
+       }
+}
+
+