_infscroll_request_sent = 0;
+ headlines_scroll_handler($("headlines-frame"));
+
notify("");
} catch (e) {
} else if (next_id) {
cdmExpandArticle(next_id);
- cdmScrollToArticleId(next_id, noscroll);
+ cdmScrollToArticleId(next_id, true);
}
} else if (next_id) {
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) {
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);
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";
}
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);
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 &&
$$("#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-", "");
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)) {
try {
console.log("cdmExpandArticle " + id);
+ if (!$("RROW-" + id)) return false;
+
hideAuxDlg();
var elem = $("CICD-" + getActiveArticleId());
Element.hide(elem);
Element.show("CEXC-" + getActiveArticleId());
Element.hide(collapse);
+ $("RROW-" + getActiveArticleId()).removeClassName("active");
}
setActiveArticleId(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);
-
-// 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);
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({
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);
+ }
+}