]> git.wh0rd.org - tt-rss.git/blobdiff - tt-rss.js
move r and q hotkeys to prefix f
[tt-rss.git] / tt-rss.js
index d5abfcddaf1f6016be161fcf009840e6434d2876..658c696d2fc2282917987ad4e4ec56f41439e5b7 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -18,6 +18,11 @@ var init_params = new Object();
 var ver_offset = 0;
 var hor_offset = 0;
 var feeds_sort_by_unread = false;
+var feedlist_sortable_enabled = false;
+
+function isFeedlistSortable() {
+       return feedlist_sortable_enabled;
+}
 
 function tagsAreDisplayed() {
        return display_tags;
@@ -259,6 +264,8 @@ function viewfeed(feed, subop) {
 }
 
 function timeout() {
+       if (getInitParam("bw_limit") == "1") return;
+
        scheduleFeedUpdate(false);
 
        var refresh_time = getInitParam("feeds_frame_refresh");
@@ -369,7 +376,8 @@ function resize_headlines(delta_x, delta_y) {
                var f_frame = document.getElementById("footer");
                var feeds_frame = document.getElementById("feeds-holder");
                var resize_grab = document.getElementById("resize-grabber");
-       
+               var resize_handle = document.getElementById("resize-handle");
+
                if (!c_frame || !h_frame) return;
        
                if (feeds_frame && getInitParam("theme") == "compat") {
@@ -393,6 +401,9 @@ function resize_headlines(delta_x, delta_y) {
                        resize_grab.style.left = (h_frame.offsetLeft + h_frame.offsetWidth - 
                                4) + "px";
                        resize_grab.style.display = "block";
+
+                       resize_handle.src = "themes/3pane/images/resize_handle_vert.png";
+                       resize_handle.style.paddingTop = (resize_grab.offsetHeight / 2 - 7) + "px";
        
                } else {
        
@@ -411,11 +422,17 @@ function resize_headlines(delta_x, delta_y) {
        
                        var theme_c = 0;
        
-                       if (getInitParam("theme") == "graycube") theme_c = 1;
+                       if (getInitParam("theme") == "graycube") {
+                               theme_c = 1;
+                       }
+
+                       if (getInitParam("theme") == "graycube" || getInitParam("theme") == "compat") {
+                               resize_handle.src = "themes/graycube/images/resize_handle_horiz.png";
+                       }
        
-                       resize_grab.style.top = (h_frame.offsetTop + h_frame.offsetHeight - 
+/*                     resize_grab.style.top = (h_frame.offsetTop + h_frame.offsetHeight - 
                                4 - theme_c) + "px";
-                       resize_grab.style.display = "block";
+                       resize_grab.style.display = "block"; */
        
                }
        
@@ -447,6 +464,7 @@ function init_second_stage() {
 
                dropboxSelect(toolbar.view_mode, getInitParam("default_view_mode"));
                dropboxSelect(toolbar.limit, getInitParam("default_view_limit"));
+               dropboxSelect(toolbar.order_by, getInitParam("default_view_order_by"));
 
                daemon_enabled = getInitParam("daemon_enabled") == 1;
                daemon_refresh_only = getInitParam("daemon_refresh_only") == 1;
@@ -461,6 +479,8 @@ function init_second_stage() {
                ver_offset = parseInt(getCookie("ttrss_offset_ver"));
                hor_offset = parseInt(getCookie("ttrss_offset_hor"));
 
+               debug("got offsets from cookies: ver " + ver_offset + " hor " + hor_offset);
+
                /* fuck IE */
 
                if (isNaN(hor_offset)) hor_offset = 0;
@@ -587,22 +607,41 @@ function quickMenuGo(opid) {
                        resize_headlines();
                }
 
+               if (opid == "qmcResetCats") {
+
+                       if (confirm(__("Reset category order?"))) {
+
+                               var query = "backend.php?op=feeds&subop=catsortreset";
+
+                               notify_progress("Loading, please wait...", true);
+
+                               new Ajax.Request(query, {
+                                       onComplete: function(transport) { 
+                                               window.setTimeout('updateFeedList(false, false)', 50);
+                                       } });
+                       }
+               }
+
        } catch (e) {
                exception_error("quickMenuGo", e);
        }
 }
 
-function unsubscribeFeed(feed_id) {
+function unsubscribeFeed(feed_id, title) {
 
-       notify_progress("Removing feed...");
 
-       var query = "backend.php?op=pref-feeds&quiet=1&subop=remove&ids=" + feed_id;
+       var msg = __("Unsubscribe from %s?").replace("%s", title);
 
-       new Ajax.Request(query, {
-               onComplete: function(transport) {
-                               dlg_frefresh_callback(transport, feed_id);
-                       } });
+       if (title == undefined || confirm(msg)) {
+               notify_progress("Removing feed...");
 
+               var query = "backend.php?op=pref-feeds&quiet=1&subop=remove&ids=" + feed_id;
+
+               new Ajax.Request(query, {
+                       onComplete: function(transport) {
+                                       dlg_frefresh_callback(transport, feed_id);
+                               } });
+       }
 
        return false;
 }
@@ -702,12 +741,20 @@ function catchupCurrentFeed() {
        }
 }
 
-function catchupFeedInGroup(id, title) {
+function catchupFeedInGroup(id) {
 
-       var str = __("Mark all articles in %s as read?").replace("%s", title);
+       try {
 
-       if (getInitParam("confirm_feed_catchup") != 1 || confirm(str)) {
-               return viewCurrentFeed('MarkAllReadGR:' + id)
+               var title = getFeedName(id);
+
+               var str = __("Mark all articles in %s as read?").replace("%s", title);
+
+               if (getInitParam("confirm_feed_catchup") != 1 || confirm(str)) {
+                       return viewCurrentFeed('MarkAllReadGR:' + id)
+               }
+
+       } catch (e) {
+               exception_error("catchupFeedInGroup", e);
        }
 }
 
@@ -1001,8 +1048,8 @@ function hotkey_handler(e) {
 
                if (keycode == 16) return; // ignore lone shift
 
-               if ((keycode == 70 || keycode == 67 || keycode == 71 || 
-                               keycode == 224 || keycode == 91) && !hotkey_prefix) {
+               if ((keycode == 70 || keycode == 67 || keycode == 71) 
+                               && !hotkey_prefix) {
 
                        hotkey_prefix = keycode;
                        debug("KP: PREFIX=" + keycode + " CHAR=" + keychar);
@@ -1048,13 +1095,6 @@ function hotkey_handler(e) {
                                return;
                        }
 
-                       if (keycode == 82) { // r
-                               if (getActiveFeedId()) {
-                                       viewfeed(getActiveFeedId(), "ForceUpdate", activeFeedIsCat());
-                                       return;
-                               }
-                       }
-
                        if (keycode == 74) { // j
                                var feed = getActiveFeedId();
                                var new_feed = getRelativeFeedId2(feed, activeFeedIsCat(), 'prev');
@@ -1087,16 +1127,27 @@ function hotkey_handler(e) {
                                return;
                        }
 
-                       if (shift_key && (keycode == 78 || keycode == 40)) { // shift - n, down
+                       if (shift_key && keycode == 40) { // shift-down
                                catchupRelativeToArticle(1);
                                return;
                        }
 
-                       if (shift_key && (keycode == 80 || keycode == 38)) { // shift - p, up
+                       if (shift_key && keycode == 38) { // shift-up
                                catchupRelativeToArticle(0);
                                return;
                        }
 
+                       if (shift_key && keycode == 78) { // N
+                               scrollArticle(50);      
+                               return;
+                       }
+
+                       if (shift_key && keycode == 80) { // P
+                               scrollArticle(-50);     
+                               return;
+                       }
+
+
                        if (keycode == 78 || keycode == 40) { // n, down
                                if (typeof moveToPost != 'undefined') {
                                        moveToPost('next');
@@ -1171,13 +1222,6 @@ function hotkey_handler(e) {
                                }
                        }
 
-                       if (keycode == 81) { // q
-                               if (getActiveFeedId()) {
-                                       catchupCurrentFeed();
-                                       return;
-                               }
-                       }
-
                        if (keycode == 220 && shift_key) { // shift + |
                                if (document.getElementById("subtoolbar_search")) {
                                        if (Element.visible("subtoolbar_search")) {
@@ -1204,6 +1248,20 @@ function hotkey_handler(e) {
 
                        hotkey_prefix = false;
 
+                       if (keycode == 81) { // q
+                               if (getActiveFeedId()) {
+                                       catchupCurrentFeed();
+                                       return;
+                               }
+                       }
+
+                       if (keycode == 82) { // r
+                               if (getActiveFeedId()) {
+                                       viewfeed(getActiveFeedId(), "ForceUpdate", activeFeedIsCat());
+                                       return;
+                               }
+                       }
+
                        if (keycode == 65) { // a
                                toggleDispRead();
                                return false;
@@ -1274,6 +1332,28 @@ function hotkey_handler(e) {
                                }
                        }
 
+                       if (keycode == 77) { // m
+                               feedlist_sortable_enabled = !feedlist_sortable_enabled;
+                               if (feedlist_sortable_enabled) {
+                                       notify_info("Category reordering enabled");
+                                       toggle_sortable_feedlist(true);
+                               } else {
+                                       notify_info("Category reordering disabled");
+                                       toggle_sortable_feedlist(false);
+                               }
+                       }
+
+                       if (keycode == 78) { // n
+                               catchupRelativeToArticle(1);
+                               return;
+                       }
+
+                       if (keycode == 80) { // p
+                               catchupRelativeToArticle(0);
+                               return;
+                       }
+
+
                }
 
                /* Prefix g */
@@ -1306,7 +1386,13 @@ function hotkey_handler(e) {
                                toggleTags();
                                return false;
                        }
+               }
+
+               /* Cmd */
 
+               if (hotkey_prefix == 224 || hotkey_prefix == 91) { // f 
+                       hotkey_prefix = false;
+                       return;
                }
 
                if (hotkey_prefix) {