summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorRichard Beales <[email protected]>2013-03-19 18:19:07 +0000
committerRichard Beales <[email protected]>2013-03-19 18:19:07 +0000
commit05809dfdf7cbf7699be6408c0f49d325585726b5 (patch)
treebfa33dcd1cf8707e65a05df98d27d563396520d2 /js
parent1d707e9f03d1a654e0807aadce7ab790befd0b95 (diff)
parent2229e6ed6b07d4a28b04689a21c645bdb83652f7 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'js')
-rw-r--r--js/FeedTree.js20
-rw-r--r--js/feedlist.js11
-rw-r--r--js/tt-rss.js22
-rw-r--r--js/viewfeed.js4
4 files changed, 39 insertions, 18 deletions
diff --git a/js/FeedTree.js b/js/FeedTree.js
index 2cb6346e4..b02d8ad7c 100644
--- a/js/FeedTree.js
+++ b/js/FeedTree.js
@@ -162,6 +162,13 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
tnode._menu = menu;
}
+ if (id.match("CAT:")) {
+ loading = dojo.doc.createElement('img');
+ loading.className = 'loadingNode';
+ dojo.place(loading, tnode.labelNode, 'after');
+ tnode.loadingNode = loading;
+ }
+
if (id.match("CAT:") && bare_id == -1) {
var menu = new dijit.Menu();
menu.row_id = bare_id;
@@ -243,8 +250,15 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
if (treeNode) {
treeNode = treeNode[0];
- treeNode.expandoNode.src = src;
- return true;
+ if (is_cat) {
+ if (treeNode.loadingNode) {
+ treeNode.loadingNode.src = src;
+ return true;
+ }
+ } else {
+ treeNode.expandoNode.src = src;
+ return true;
+ }
}
return false;
@@ -309,7 +323,7 @@ dojo.declare("fox.FeedTree", dijit.Tree, {
var node = tree._itemNodesMap[id];
if (node) {
- if (hide && unread == 0 && (bare_id > 0 || !show_special)) {
+ if (hide && unread == 0 && (bare_id > 0 || bare_id < -10 || !show_special)) {
Effect.Fade(node[0].rowNode, {duration : 0.3,
queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }});
} else {
diff --git a/js/feedlist.js b/js/feedlist.js
index e227c9386..ae4c3a2fb 100644
--- a/js/feedlist.js
+++ b/js/feedlist.js
@@ -125,13 +125,11 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) {
Form.enable("main_toolbar_form");
- if (!offset)
- if (!is_cat) {
- if (!setFeedExpandoIcon(feed, is_cat, 'images/indicator_white.gif'))
- notify_progress("Loading, please wait...", true);
- } else {
+ if (!offset) {
+ if (!setFeedExpandoIcon(feed, is_cat,
+ (is_cat) ? 'images/indicator_tiny.gif' : 'images/indicator_white.gif'))
notify_progress("Loading, please wait...", true);
- }
+ }
}
query += "&cat=" + is_cat;
@@ -154,7 +152,6 @@ function feedlist_init() {
try {
console.log("in feedlist init");
- hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
document.onkeydown = hotkey_handler;
setTimeout("hotkey_prefix_timeout()", 5*1000);
diff --git a/js/tt-rss.js b/js/tt-rss.js
index 5d6e1d81e..3b96566f9 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -248,9 +248,11 @@ function init() {
loading_set_progress(20);
var hasAudio = !!((myAudioTag = document.createElement('audio')).canPlayType);
+ var hasSandbox = "sandbox" in document.createElement("iframe");
new Ajax.Request("backend.php", {
- parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio},
+ parameters: {op: "rpc", method: "sanityCheck", hasAudio: hasAudio,
+ hasSandbox: hasSandbox},
onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });
@@ -560,7 +562,7 @@ function hotkey_handler(e) {
if (keycode == 16) return; // ignore lone shift
if (keycode == 17) return; // ignore lone ctrl
- if (!shift_key) keychar = keychar.toLowerCase();
+ keychar = keychar.toLowerCase();
var hotkeys = getInitParam("hotkeys");
@@ -581,7 +583,11 @@ function hotkey_handler(e) {
Element.hide(cmdline);
var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")";
+
+ // ensure ^*char notation
+ if (shift_key) hotkey = "*" + hotkey;
if (ctrl_key) hotkey = "^" + hotkey;
+
hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
hotkey_prefix = false;
@@ -657,10 +663,14 @@ function hotkey_handler(e) {
catchupRelativeToArticle(0);
return false;
case "article_scroll_down":
- scrollArticle(50);
+ var ctr = $("content_insert") ? $("content_insert") : $("headlines-frame");
+
+ scrollArticle(ctr.offsetHeight/3);
return false;
case "article_scroll_up":
- scrollArticle(-50);
+ var ctr = $("content_insert") ? $("content_insert") : $("headlines-frame");
+
+ scrollArticle(-ctr.offsetHeight/3);
return false;
case "close_article":
closeArticlePanel();
@@ -668,6 +678,8 @@ function hotkey_handler(e) {
case "email_article":
if (typeof emailArticle != "undefined") {
emailArticle();
+ } else if (typeof mailtoArticle != "undefined") {
+ mailtoArticle();
} else {
alert(__("Please enable mail plugin first."));
}
@@ -893,8 +905,6 @@ function handle_rpc_json(transport, scheduled_call) {
if (runtime_info)
parse_runtime_info(runtime_info);
- hideOrShowFeeds(getInitParam("hide_read_feeds") == 1);
-
Element.hide(dijit.byId("net-alert").domNode);
} else {
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 622a8109f..9a16befff 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -560,11 +560,11 @@ function moveToPost(mode, noscroll) {
var ctr = $("headlines-frame");
if (!noscroll && article && article.offsetTop < ctr.scrollTop) {
- scrollArticle(-ctr.offsetHeight/2);
+ scrollArticle(-ctr.offsetHeight/3);
} else if (!noscroll && prev_article &&
prev_article.offsetTop < ctr.scrollTop) {
cdmExpandArticle(prev_id);
- scrollArticle(-ctr.offsetHeight/2);
+ scrollArticle(-ctr.offsetHeight/3);
} else if (prev_id) {
cdmExpandArticle(prev_id);
cdmScrollToArticleId(prev_id, noscroll);