]> git.wh0rd.org - tt-rss.git/blobdiff - js/tt-rss.js
Merge pull request #172 from Menti/master
[tt-rss.git] / js / tt-rss.js
index d38b203c1b6fefb40e10e9825dbfcf6a0b64e44e..c6c0c13dd445177c7a6219992c3736e5f52e04a8 100644 (file)
@@ -40,6 +40,8 @@ function setActiveFeedId(id, is_cat) {
                $("headlines-frame").setAttribute("is-cat", is_cat ? 1 : 0);
 
                selectFeed(id, is_cat);
+
+               PluginHost.run(PluginHost.HOOK_FEED_SET_ACTIVE, _active_article_id);
        } catch (e) {
                exception_error("setActiveFeedId", e);
        }
@@ -134,7 +136,8 @@ function catchupAllFeeds() {
                new Ajax.Request("backend.php", {
                        parameters: query_str,
                        onComplete: function(transport) {
-                               feedlist_callback2(transport);
+                               request_counters(true);
+                               viewCurrentFeed();
                        } });
 
                global_unread = 0;
@@ -159,7 +162,7 @@ function timeout() {
 }
 
 function search() {
-       var query = "backend.php?op=dlg&method=search&param=" +
+       var query = "backend.php?op=feeds&method=search&param=" +
                param_escape(getActiveFeedId() + ":" + activeFeedIsCat());
 
        if (dijit.byId("searchDlg"))
@@ -248,11 +251,17 @@ function init() {
 
                loading_set_progress(20);
 
-               var hasAudio = !!((myAudioTag = document.createElement('audio')).canPlayType);
+               var a = document.createElement('audio');
+
+               var hasAudio = !!a.canPlayType;
                var hasSandbox = "sandbox" in document.createElement("iframe");
+               var hasMp3 = !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
+               var clientTzOffset = new Date().getTimezoneOffset() * 60;
 
                new Ajax.Request("backend.php", {
                        parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio,
+                               hasMp3: hasMp3,
+                               clientTzOffset: clientTzOffset,
                                hasSandbox: hasSandbox},
                        onComplete: function(transport) {
                                        backend_sanity_check_callback(transport);
@@ -282,6 +291,12 @@ function init() {
                hotkey_actions["prev_article_noscroll"] = function() {
                                moveToPost('prev', true);
                };
+               hotkey_actions["next_article_noexpand"] = function() {
+                               moveToPost('next', true, true);
+               };
+               hotkey_actions["prev_article_noexpand"] = function() {
+                               moveToPost('prev', true, true);
+               };
                hotkey_actions["collapse_article"] = function() {
                                var id = getActiveArticleId();
                                var elem = $("CICD-"+id);
@@ -292,6 +307,16 @@ function init() {
                                        cdmExpandArticle(id);
                                }
                };
+               hotkey_actions["toggle_expand"] = function() {
+                               var id = getActiveArticleId();
+                               var elem = $("CICD-"+id);
+                               if(elem.visible()) {
+                                       cdmCollapseArticle(null, id, false);
+                               }
+                               else {
+                                       cdmExpandArticle(id);
+                               }
+               };
                hotkey_actions["search_dialog"] = function() {
                                search();
                };
@@ -307,7 +332,7 @@ function init() {
                hotkey_actions["edit_tags"] = function() {
                                var id = getActiveArticleId();
                                if (id) {
-                                       editArticleTags(id, getActiveFeedId(), isCdmMode());
+                                       editArticleTags(id);
                                };
                        }
                hotkey_actions["dismiss_selected"] = function() {
@@ -428,7 +453,7 @@ function init() {
                                viewfeed(-2);
                };
                hotkey_actions["goto_tagcloud"] = function() {
-                               displayDlg("printTagCloud");
+                               displayDlg(__("Tag cloud"), "printTagCloud");
                };
                hotkey_actions["goto_prefs"] = function() {
                                gotoPreferences();
@@ -436,11 +461,17 @@ function init() {
                hotkey_actions["select_article_cursor"] = function() {
                                var id = getArticleUnderPointer();
                                if (id) {
-                                       var cb = dijit.byId("RCHK-" + id);
-                                       if (cb) {
-                                               cb.attr("checked", !cb.attr("checked"));
-                                               toggleSelectRowById(cb, "RROW-" + id);
-                                               return false;
+                                       var row = $("RROW-" + id);
+
+                                       if (row) {
+                                               var cb = dijit.getEnclosingWidget(
+                                                       row.getElementsByClassName("rchk")[0]);
+
+                                               if (cb) {
+                                                       cb.attr("checked", !cb.attr("checked"));
+                                                       toggleSelectRowById(cb, "RROW-" + id);
+                                                       return false;
+                                               }
                                        }
                                }
                };
@@ -480,7 +511,25 @@ function init() {
                                new Ajax.Request("backend.php", {
                                        parameters: query,
                                        onComplete: function(transport) {
-                                               window.location.reload();
+                                               setInitParam("combined_display_mode",
+                                                               !getInitParam("combined_display_mode"));
+
+                                               closeArticlePanel();
+                                               viewCurrentFeed();
+
+                                                               } });
+               };
+               hotkey_actions["toggle_cdm_expanded"] = function() {
+                               notify_progress("Loading, please wait...");
+
+                               var value = getInitParam("cdm_expanded") ? "false" : "true";
+                               var query = "?op=rpc&method=setpref&key=CDM_EXPANDED&value=" + value;
+
+                               new Ajax.Request("backend.php", {
+                                       parameters: query,
+                                       onComplete: function(transport) {
+                                               setInitParam("cdm_expanded", !getInitParam("cdm_expanded"));
+                                               viewCurrentFeed();
                                        } });
                };
 
@@ -563,10 +612,10 @@ function quickMenuGo(opid) {
                        gotoLogout();
                        break;
                case "qmcTagCloud":
-                       displayDlg("printTagCloud");
+                       displayDlg(__("Tag cloud"), "printTagCloud");
                        break;
                case "qmcTagSelect":
-                       displayDlg("printTagSelect");
+                       displayDlg(__("Select item(s) by tags"), "printTagSelect");
                        break;
                case "qmcSearch":
                        search();
@@ -704,6 +753,8 @@ function parse_runtime_info(data) {
                init_params[k] = v;
                notify('');
        }
+
+       PluginHost.run(PluginHost.HOOK_RUNTIME_INFO_LOADED, data);
 }
 
 function collapse_feedlist() {
@@ -734,10 +785,6 @@ function viewModeChanged() {
        return viewCurrentFeed('');
 }
 
-function viewLimitChanged() {
-       return viewCurrentFeed('');
-}
-
 function rescoreCurrentFeed() {
 
        var actid = getActiveFeedId();
@@ -947,7 +994,7 @@ function handle_rpc_json(transport, scheduled_call) {
                        if (counters)
                                parse_counters(counters, scheduled_call);
 
-                       var runtime_info = reply['runtime-info'];;
+                       var runtime_info = reply['runtime-info'];
 
                        if (runtime_info)
                                parse_runtime_info(runtime_info);
@@ -1036,7 +1083,7 @@ function hash_get(key) {
                kv = window.location.hash.substring(1).toQueryParams();
                return kv[key];
        } catch (e) {
-               exception_error("hash_set", e);
+               exception_error("hash_get", e);
        }
 }
 function hash_set(key, value) {