diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/FeedTree.js | 1 | ||||
| -rw-r--r-- | js/feedlist.js | 6 | ||||
| -rw-r--r-- | js/functions.js | 35 | ||||
| -rw-r--r-- | js/tt-rss.js | 18 | ||||
| -rw-r--r-- | js/viewfeed.js | 86 |
5 files changed, 109 insertions, 37 deletions
diff --git a/js/FeedTree.js b/js/FeedTree.js index b02d8ad7c..2e686c156 100644 --- a/js/FeedTree.js +++ b/js/FeedTree.js @@ -165,6 +165,7 @@ dojo.declare("fox.FeedTree", dijit.Tree, { if (id.match("CAT:")) { loading = dojo.doc.createElement('img'); loading.className = 'loadingNode'; + loading.src = 'images/blank_icon.gif'; dojo.place(loading, tnode.labelNode, 'after'); tnode.loadingNode = loading; } diff --git a/js/feedlist.js b/js/feedlist.js index ae4c3a2fb..aaf6c2aa6 100644 --- a/js/feedlist.js +++ b/js/feedlist.js @@ -125,11 +125,9 @@ function viewfeed(feed, method, is_cat, offset, background, infscroll_req) { Form.enable("main_toolbar_form"); - if (!offset) { - if (!setFeedExpandoIcon(feed, is_cat, - (is_cat) ? 'images/indicator_tiny.gif' : 'images/indicator_white.gif')) + 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; diff --git a/js/functions.js b/js/functions.js index 4840bcbe1..a9367da60 100644 --- a/js/functions.js +++ b/js/functions.js @@ -201,13 +201,13 @@ function notify_real(msg, no_hide, n_type) { n.className = "notify"; } else if (n_type == 2) { n.className = "notifyProgress"; - msg = "<img src='"+getInitParam("sign_progress")+"'> " + msg; + msg = "<img src='images/indicator_white.gif'> " + msg; } else if (n_type == 3) { n.className = "notifyError"; - msg = "<img src='"+getInitParam("sign_excl")+"'> " + msg; + msg = "<img src='images/sign_excl.svg'> " + msg; } else if (n_type == 4) { n.className = "notifyInfo"; - msg = "<img src='"+getInitParam("sign_info")+"'> " + msg; + msg = "<img src='images/sign_info.svg'> " + msg; } // msg = "<img src='images/live_com_loading.gif'> " + msg; @@ -1216,20 +1216,31 @@ function quickAddFilter() { var lh = dojo.connect(dialog, "onLoad", function(){ dojo.disconnect(lh); - var title = $("PTITLE-FULL-" + getActiveArticleId()); + var query = "op=rpc&method=getlinktitlebyid&id=" + getActiveArticleId(); - if (title || getActiveFeedId() || activeFeedIsCat()) { - if (title) title = title.innerHTML; + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + var reply = JSON.parse(transport.responseText); - console.log(title + " " + getActiveFeedId()); + var title = false; - var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) : - getActiveFeedId(); + if (reply && reply) title = reply.title; - var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 }; + if (title || getActiveFeedId() || activeFeedIsCat()) { + + console.log(title + " " + getActiveFeedId()); + + var feed_id = activeFeedIsCat() ? 'CAT:' + parseInt(getActiveFeedId()) : + getActiveFeedId(); + + var rule = { reg_exp: title, feed_id: feed_id, filter_type: 1 }; + + addFilterRule(null, dojo.toJson(rule)); + } + + } }); - addFilterRule(null, dojo.toJson(rule)); - } }); } diff --git a/js/tt-rss.js b/js/tt-rss.js index bced92674..eaa1f3daf 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -181,7 +181,7 @@ function updateTitle() { var tmp = "Tiny Tiny RSS"; if (global_unread > 0) { - tmp = tmp + " (" + global_unread + ")"; + tmp = "(" + global_unread + ") " + tmp; } if (window.fluid) { @@ -446,6 +446,12 @@ function parse_runtime_info(data) { return; } + if (k == "dep_ts" && parseInt(getInitParam("dep_ts")) > 0) { + if (parseInt(getInitParam("dep_ts")) < parseInt(v)) { + window.location.reload(); + } + } + if (k == "daemon_is_running" && v != 1) { notify_error("<span onclick=\"javascript:explainError(1)\">Update daemon is not running.</span>", true); return; @@ -786,6 +792,14 @@ function hotkey_handler(e) { case "collapse_sidebar": collapse_feedlist(); return false; + case "toggle_embed_original": + if (typeof embedOriginalArticle != "undefined") { + if (getActiveArticleId()) + embedOriginalArticle(getActiveArticleId()); + } else { + alert(__("Please enable embed_original plugin first.")); + } + return false; case "toggle_widescreen": if (!isCdmMode()) { _widescreen_mode = !_widescreen_mode; @@ -928,6 +942,8 @@ function handle_rpc_json(transport, scheduled_call) { function switchPanelMode(wide) { try { + if (isCdmMode()) return; + article_id = getActiveArticleId(); if (wide) { diff --git a/js/viewfeed.js b/js/viewfeed.js index 4c6d90366..ece1f1394 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -205,6 +205,8 @@ function headlines_callback2(transport, offset, background, infscroll_req) { _infscroll_request_sent = 0; + headlines_scroll_handler($("headlines-frame")); + notify(""); } catch (e) { @@ -541,7 +543,7 @@ function moveToPost(mode, noscroll) { } else if (next_id) { cdmExpandArticle(next_id); - cdmScrollToArticleId(next_id, noscroll); + cdmScrollToArticleId(next_id, true); } } else if (next_id) { @@ -560,8 +562,13 @@ function moveToPost(mode, noscroll) { var ctr = $("headlines-frame"); if (!getInitParam("cdm_expanded")) { - cdmExpandArticle(prev_id); - cdmScrollToArticleId(prev_id, true); + + if (!noscroll && article.offsetTop < ctr.scrollTop) { + scrollArticle(-ctr.offsetHeight/3); + } else { + cdmExpandArticle(prev_id); + cdmScrollToArticleId(prev_id, true); + } } else { if (!noscroll && article && article.offsetTop < ctr.scrollTop) { @@ -972,9 +979,9 @@ function deleteSelection() { var str; if (getActiveFeedId() != 0) { - str = __("Delete %d selected articles in %s?"); + str = ngettext("Delete %d selected article in %s?", "Delete %d selected articles in %s?" , rows.length); } else { - str = __("Delete %d selected articles?"); + str = ngettext("Delete %d selected article?", "Delete %d selected articles?", rows.length); } str = str.replace("%d", rows.length); @@ -1016,10 +1023,10 @@ function archiveSelection() { var op; if (getActiveFeedId() != 0) { - str = __("Archive %d selected articles in %s?"); + str = ngettext("Archive %d selected article in %s?", "Archive %d selected articles in %s?", rows.length); op = "archive"; } else { - str = __("Move %d archived articles back?"); + str = ngettext("Move %d archived article back?", "Move %d archived articles back?", rows.length); op = "unarchive"; } @@ -1063,7 +1070,7 @@ function catchupSelection() { var fn = getFeedName(getActiveFeedId(), activeFeedIsCat()); - var str = __("Mark %d selected articles in %s as read?"); + var str = ngettext("Mark %d selected article in %s as read?", "Mark %d selected articles in %s as read?", rows.length); str = str.replace("%d", rows.length); str = str.replace("%s", fn); @@ -1171,6 +1178,23 @@ function headlines_scroll_handler(e) { try { var hsp = $("headlines-spacer"); + $$("#headlines-frame > div[id*=RROW]").each( + function(child) { + if (child.offsetTop <= $("headlines-frame").scrollTop + + $("headlines-frame").offsetHeight) { + + var cencw = $("CENCW-" + child.id.replace("RROW-", "")); + + if (cencw) { + cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML); + cencw.setAttribute('id', ''); + Element.show(cencw); + } + } + } + ); + + if (!_infscroll_disable) { if ((hsp && e.scrollTop + e.offsetHeight >= hsp.offsetTop - hsp.offsetHeight) || (e.scrollHeight != 0 && @@ -1192,7 +1216,7 @@ function headlines_scroll_handler(e) { $$("#headlines-frame > div[id*=RROW][class*=Unread]").each( function(child) { - if ($("headlines-frame").scrollTop > + if (child.hasClassName("Unread") && $("headlines-frame").scrollTop > (child.offsetTop + child.offsetHeight/2)) { var id = child.id.replace("RROW-", ""); @@ -1293,7 +1317,7 @@ function catchupRelativeToArticle(below, id) { if (ids_to_mark.length == 0) { alert(__("No articles found to mark")); } else { - var msg = __("Mark %d article(s) as read?").replace("%d", ids_to_mark.length); + var msg = ngettext("Mark %d article as read?", "Mark %d articles as read?", ids_to_mark.length).replace("%d", ids_to_mark.length); if (getInitParam("confirm_feed_catchup") != 1 || confirm(msg)) { @@ -1348,9 +1372,10 @@ function cdmCollapseArticle(event, id) { function cdmExpandArticle(id) { try { - console.log("cdmExpandArticle " + id); + if (!$("RROW-" + id)) return false; + hideAuxDlg(); var elem = $("CICD-" + getActiveArticleId()); @@ -1369,14 +1394,11 @@ function cdmExpandArticle(id) { Element.hide(elem); Element.show("CEXC-" + getActiveArticleId()); Element.hide(collapse); + $("RROW-" + getActiveArticleId()).removeClassName("active"); } setActiveArticleId(id); - if (!getInitParam("cdm_expanded")) { - cdmScrollToArticleId(id, true); - } - elem = $("CICD-" + id); var collapse = $$("div#RROW-" + id + @@ -1388,19 +1410,19 @@ function cdmExpandArticle(id) { if (cencw) { cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML); cencw.setAttribute('id', ''); + Element.show(cencw); } Element.show(elem); Element.hide("CEXC-" + id); Element.show(collapse); + $("RROW-" + id).addClassName("active"); } - /* var new_offset = $("RROW-" + id).offsetTop; - - $("headlines-frame").scrollTop += (new_offset-old_offset); + var new_offset = $("RROW-" + id).offsetTop; - if ($("RROW-" + id).offsetTop != old_offset) - $("headlines-frame").scrollTop = new_offset; */ + if (old_offset > new_offset) + $("headlines-frame").scrollTop -= (old_offset-new_offset); toggleUnread(id, 0, true); toggleSelected(id); @@ -1806,6 +1828,12 @@ function initHeadlinesMenu() { openArticleInNewWindow(this.getParent().callerRowId); }})); + menu.addChild(new dijit.MenuItem({ + label: __("Display article URL"), + onClick: function(event) { + displayArticleUrl(this.getParent().callerRowId); + }})); + menu.addChild(new dijit.MenuSeparator()); menu.addChild(new dijit.MenuItem({ @@ -2017,3 +2045,21 @@ function changeScore(id, pic) { exception_error("changeScore", e); } } + +function displayArticleUrl(id) { + try { + var query = "op=rpc&method=getlinktitlebyid&id=" + param_escape(id); + + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + var reply = JSON.parse(transport.responseText); + + if (reply && reply.link) { + prompt(__("Article URL:"), reply.link); + } + } }); + } catch (e) { + exception_error("changeScore", e); + } +} |