-var active_post_id = false;
-
var article_cache = new Array();
+var _active_article_id = 0;
+
var vgroup_last_feed = false;
var post_under_pointer = false;
var catchup_id_batch = [];
var catchup_timeout_id = false;
-var feed_precache_timeout_id = false;
-var precache_idle_timeout_id = false;
var cids_requested = [];
+var loaded_article_ids = [];
var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null;
if (getInitParam("cdm_auto_catchup") == 1) {
content = content + "<div id='headlines-spacer'></div>";
}
-
- cache_headlines(feed_id, is_cat, reply['headlines']['toolbar'], content);
return;
}
is_cat || feed_id <= 0);
try {
- if (offset == 0 && infscroll_req == false) {
+ if (infscroll_req == false) {
$("headlines-frame").scrollTop = 0;
}
} catch (e) { };
var articles = reply['articles'];
//var runtime_info = reply['runtime-info'];
- if (offset == 0 && infscroll_req == false) {
+ if (infscroll_req == false) {
+ loaded_article_ids = [];
+
dijit.byId("headlines-frame").attr('content',
reply['headlines']['content']);
reply['headlines']['toolbar']);
$$("#headlines-frame > div[id*=RROW]").each(function(row) {
- if ($$("#headlines-frame DIV[id="+row.id+"]").length > 1) {
+ if (loaded_article_ids.indexOf(row.id) != -1) {
row.parentNode.removeChild(row);
+ } else {
+ loaded_article_ids.push(row.id);
}
});
initHeadlinesMenu();
+ if (_search_query) {
+ $("feed_title").innerHTML += "<span id='cancel_search'>" +
+ " (<a href='#' onclick='cancelSearch()'>" + __("Cancel search") + "</a>)" +
+ "</span>";
+ }
+
} else {
if (headlines_count > 0 && feed_id == getActiveFeedId() && is_cat == activeFeedIsCat()) {
var c = dijit.byId("headlines-frame");
var ids = getSelectedArticleIds2();
- var num_added = 0;
+ var new_elems = [];
$("headlines-tmp").innerHTML = reply['headlines']['content'];
$$("#headlines-tmp > div").each(function(row) {
if (row.className == 'cdmFeedTitle') {
- row.addClassName('new');
row.style.display = 'none';
c.domNode.appendChild(row);
- ++num_added;
- } else if ($$("#headlines-frame DIV[id="+row.id+"]").length == 0) {
+ new_elems.push(row);
+ } else if (loaded_article_ids.indexOf(row.id) == -1) {
row.style.display = 'none';
- row.addClassName('new');
c.domNode.appendChild(row);
- ++num_added;
+ new_elems.push(row);
+ loaded_article_ids.push(row.id);
} else {
row.parentNode.removeChild(row);
}
c.domNode.appendChild(hsp);
}
- console.log("added " + num_added + " headlines");
+ console.log("added " + new_elems.size() + " headlines");
- if (num_added == 0)
+ if (new_elems.size() == 0)
_infscroll_disable = true;
console.log("restore selected ids: " + ids);
initHeadlinesMenu();
- $$("#headlines-frame > div[class*=new]").each(
- function(child) {
- child.removeClassName('new');
- if (!Element.visible(child))
- new Effect.Appear(child, { duration : 0.5 });
+ new_elems.each(function(child) {
+ var cb = dijit.byId(child.id.replace("RROW-", "RCHK-"));
+
+ if (!cb) {
+ dojo.parser.parse(child);
+
+ if (!Element.visible(child))
+ new Effect.Appear(child, { duration : 0.5 });
+ } else {
+ c.domNode.removeChild(child);
+ }
});
} else {
}
}
- if (headlines_count > 0)
- cache_headlines(feed_id, is_cat, reply['headlines']['toolbar'], $("headlines-frame").innerHTML);
-
if (articles) {
for (var i = 0; i < articles.length; i++) {
var a_id = articles[i]['id'];
console.log("no cached articles received");
}
- // do not precache stuff after fresh feed
- if (feed_id != -3)
- precache_headlines();
-
if (counters)
parse_counters(counters);
else
- request_counters();
+ request_counters(true);
- } else {
+ } else if (transport.responseText) {
console.error("Invalid object received: " + transport.responseText);
dijit.byId("headlines-frame").attr('content', "<div class='whiteBox'>" +
__('Could not update headlines (invalid object received - see error console for details)') +
"</div>");
+ } else {
+ //notify_error("Error communicating with server.");
+ Element.show(dijit.byId("net-alert").domNode);
}
_infscroll_request_sent = 0;
selectArticles('none');
- var upd_img_pic = $("FUPDPIC-" + id);
-
var view_mode = false;
try {
//
}
- if (upd_img_pic && (upd_img_pic.src.match("updated.png") ||
- upd_img_pic.src.match("fresh_sign.png"))) {
-
- upd_img_pic.src = "images/blank_icon.gif";
-
- cache_headlines(getActiveFeedId(), activeFeedIsCat(), null, $("headlines-frame").innerHTML);
-
- } else if (article_is_unread && view_mode == "all_articles") {
- cache_headlines(getActiveFeedId(), activeFeedIsCat(), null, $("headlines-frame").innerHTML);
- }
-
markHeadline(id);
if (article_is_unread)
if (reply) {
- var upic = $('FUPDPIC-' + id);
-
- if (upic) upic.src = 'images/blank_icon.gif';
-
reply.each(function(article) {
- if (active_post_id == article['id']) {
+ if (getActiveArticleId() == article['id']) {
render_article(article['content']);
}
cids_requested.remove(article['id']);
// return;
// }
- } else {
+ } else if (transport.responseText) {
console.error("Invalid object received: " + transport.responseText);
render_article("<div class='whiteBox'>" +
__('Could not display article (invalid object received - see error console for details)') + "</div>");
+ } else {
+ Element.show(dijit.byId("net-alert").domNode);
}
- request_counters();
+ var unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length
+ request_counters(unread_in_buffer == 0);
headlines_scroll_handler($("headlines-frame"));
function view(id) {
try {
+ var crow = $("RROW-" + id);
+
+ if (!crow) return;
+
console.log("loading article: " + id);
var cached_article = cache_get("article:" + id);
query = query + "&cids=" + cids_to_request.toString();
- var crow = $("RROW-" + id);
var article_is_unread = crow.hasClassName("Unread");
- active_post_id = id;
+ setActiveArticleId(id);
showArticleInHeadlines(id);
- precache_headlines();
-
- if (!cached_article) {
-
- var upic = $('FUPDPIC-' + id);
-
- if (upic) {
- upic.src = getInitParam("sign_progress");
- }
-
- } else if (cached_article && article_is_unread) {
+ if (cached_article && article_is_unread) {
query = query + "&mode=prefetch";
query = query + "&mark=0";
}
- cache_headlines(getActiveFeedId(), activeFeedIsCat(), null, $("headlines-frame").innerHTML);
-
if (!client_only) {
new Ajax.Request("backend.php", {
parameters: query,
query = query + "&pub=0";
}
- cache_headlines(getActiveFeedId(), activeFeedIsCat(), null, $("headlines-frame").innerHTML);
-
if (!client_only) {
new Ajax.Request("backend.php", {
parameters: query,
}
}
-function moveToPost(mode) {
+function moveToPost(mode, noscroll) {
try {
var prev_id = false;
var next_id = false;
- if (!$('RROW-' + active_post_id)) {
- active_post_id = false;
+ if (!$('RROW-' + getActiveArticleId())) {
+ setActiveArticleId(0);
}
- if (active_post_id == false) {
+ if (!getActiveArticleId()) {
next_id = rows[0];
prev_id = rows[rows.length-1]
} else {
for (var i = 0; i < rows.length; i++) {
- if (rows[i] == active_post_id) {
+ if (rows[i] == getActiveArticleId()) {
// Account for adjacent identical article ids.
if (i > 0) prev_id = rows[i-1];
for (var j = i+1; j < rows.length; j++) {
- if (rows[j] != active_post_id) {
+ if (rows[j] != getActiveArticleId()) {
next_id = rows[j];
break;
}
}
if (mode == "next") {
- if (next_id) {
+ if (next_id || getActiveArticleId()) {
if (isCdmMode()) {
- cdmExpandArticle(next_id);
- cdmScrollToArticleId(next_id);
+ var article = $("RROW-" + getActiveArticleId());
+ var ctr = $("headlines-frame");
- } else {
+ if (!noscroll && article && article.offsetTop + article.offsetHeight >
+ ctr.scrollTop + ctr.offsetHeight) {
+
+ scrollArticle(ctr.offsetHeight/2);
+
+ } else if (next_id) {
+ cdmExpandArticle(next_id);
+ cdmScrollToArticleId(next_id, noscroll);
+ }
+
+ } else if (next_id) {
correctHeadlinesOffset(next_id);
view(next_id, getActiveFeedId());
}
}
if (mode == "prev") {
- if (prev_id) {
+ if (prev_id || getActiveArticleId()) {
if (isCdmMode()) {
- cdmExpandArticle(prev_id);
- cdmScrollToArticleId(prev_id);
- } else {
+
+ var article = $("RROW-" + getActiveArticleId());
+ var prev_article = $("RROW-" + prev_id);
+ var ctr = $("headlines-frame");
+
+ if (!noscroll && article && article.offsetTop < ctr.scrollTop) {
+ scrollArticle(-ctr.offsetHeight/3);
+ } else if (!noscroll && prev_article &&
+ prev_article.offsetTop < ctr.scrollTop) {
+ cdmExpandArticle(prev_id);
+ scrollArticle(-ctr.offsetHeight/3);
+ } else if (prev_id) {
+ cdmExpandArticle(prev_id);
+ cdmScrollToArticleId(prev_id, noscroll);
+ }
+ } else if (prev_id) {
correctHeadlinesOffset(prev_id);
view(prev_id, getActiveFeedId());
}
function toggleSelected(id, force_on) {
try {
- var cb = $("RCHK-" + id);
+ var cb = dijit.byId("RCHK-" + id);
var row = $("RROW-" + id);
if (row) {
if (row.hasClassName('Selected') && !force_on) {
row.removeClassName('Selected');
- if (cb) cb.checked = false;
+ if (cb) cb.attr("checked", false);
} else {
row.addClassName('Selected');
- if (cb) cb.checked = true;
+ if (cb) cb.attr("checked", true);
}
}
} catch (e) {
children.each(function(child) {
var id = child.id.replace("RROW-", "");
- var cb = $("RCHK-" + id);
+ var cb = dijit.byId("RCHK-" + id);
if (mode == "all") {
child.addClassName("Selected");
- cb.checked = true;
+ if (cb) cb.attr("checked", true);
} else if (mode == "unread") {
if (child.hasClassName("Unread")) {
child.addClassName("Selected");
- cb.checked = true;
+ if (cb) cb.attr("checked", true);
} else {
child.removeClassName("Selected");
- cb.checked = false;
+ if (cb) cb.attr("checked", false);
}
} else if (mode == "marked") {
var img = $("FMPIC-" + child.id.replace("RROW-", ""));
if (img && img.src.match("mark_set")) {
child.addClassName("Selected");
- cb.checked = true;
+ if (cb) cb.attr("checked", true);
} else {
child.removeClassName("Selected");
- cb.checked = false;
+ if (cb) cb.attr("checked", false);
}
} else if (mode == "published") {
var img = $("FPPIC-" + child.id.replace("RROW-", ""));
if (img && img.src.match("pub_set")) {
child.addClassName("Selected");
- cb.checked = true;
+ if (cb) cb.attr("checked", true);
} else {
child.removeClassName("Selected");
- cb.checked = false;
+ if (cb) cb.attr("checked", false);
}
} else if (mode == "invert") {
if (child.hasClassName("Selected")) {
child.removeClassName("Selected");
- cb.checked = false;
+ if (cb) cb.attr("checked", false);
} else {
child.addClassName("Selected");
- cb.checked = true;
+ if (cb) cb.attr("checked", true);
}
} else {
child.removeClassName("Selected");
- cb.checked = false;
+ if (cb) cb.attr("checked", false);
}
});
}
-function cdmScrollToArticleId(id) {
+function cdmScrollToArticleId(id, force) {
try {
var ctr = $("headlines-frame");
var e = $("RROW-" + id);
if (!e || !ctr) return;
- ctr.scrollTop = e.offsetTop;
+ if (force || e.offsetTop+e.offsetHeight > (ctr.scrollTop+ctr.offsetHeight) ||
+ e.offsetTop < ctr.scrollTop) {
+ ctr.scrollTop = e.offsetTop;
+ }
} catch (e) {
exception_error("cdmScrollToArticleId", e);
}
}
+function setActiveArticleId(id) {
+ _active_article_id = id;
+}
+
function getActiveArticleId() {
- return active_post_id;
+ return _active_article_id;
}
function postMouseIn(id) {
}
}
-function cdmExpandArticle(id) {
+function cdmCollapseArticle(event, id) {
try {
+ var row = $("RROW-" + id);
+ var elem = $("CICD-" + id);
- hideAuxDlg();
-
- var elem = $("CICD-" + active_post_id);
-
- var upd_img_pic = $("FUPDPIC-" + id);
-
- if (upd_img_pic && (upd_img_pic.src.match("updated.png") ||
- upd_img_pic.src.match("fresh_sign.png"))) {
-
- upd_img_pic.src = "images/blank_icon.gif";
- }
-
- if (id == active_post_id && Element.visible(elem))
- return true;
-
- selectArticles("none");
-
- var old_offset = $("RROW-" + id).offsetTop;
+ if (elem && row) {
+ var collapse = $$("div#RROW-" + id +
+ " span[class='collapseBtn']")[0];
- if (active_post_id && elem && !getInitParam("cdm_expanded")) {
Element.hide(elem);
- Element.show("CEXC-" + active_post_id);
- }
-
- active_post_id = id;
+ Element.show("CEXC-" + id);
+ Element.hide(collapse);
- elem = $("CICD-" + id);
+ markHeadline(id, false);
- if (!Element.visible(elem)) {
- Element.show(elem);
- Element.hide("CEXC-" + id);
+ if (id == getActiveArticleId()) {
+ setActiveArticleId(0);
+ }
- if ($("CWRAP-" + id).innerHTML == "") {
+ if (event) Event.stop(event);
+ }
- $("FUPDPIC-" + id).src = "images/indicator_tiny.gif";
+ } catch (e) {
+ exception_error("cdmCollapseArticle", e);
+ }
+}
- $("CWRAP-" + id).innerHTML = "<div class=\"insensitive\">" +
- __("Loading, please wait...") + "</div>";
+function cdmExpandArticle(id) {
+ try {
- var query = "?op=rpc&method=cdmGetArticle&id=" + param_escape(id);
+ console.log("cdmExpandArticle " + id);
- var neighbor_ids = getRelativePostIds(id);
+ hideAuxDlg();
- /* only request uncached articles */
- var cids_to_request = [];
+ var elem = $("CICD-" + getActiveArticleId());
- for (var i = 0; i < neighbor_ids.length; i++) {
- if (cids_requested.indexOf(neighbor_ids[i]) == -1)
- if ($("CWRAP-" + neighbor_ids[i]).innerHTML == "") {
- cids_to_request.push(neighbor_ids[i]);
- cids_requested.push(neighbor_ids[i]);
- }
- }
+ if (id == getActiveArticleId() && Element.visible(elem))
+ return true;
- console.log("additional ids: " + cids_to_request.toString());
+ selectArticles("none");
- query = query + "&cids=" + cids_to_request.toString();
+ var old_offset = $("RROW-" + id).offsetTop;
- console.log(query);
+ if (getActiveArticleId() && elem && !getInitParam("cdm_expanded")) {
+ var collapse = $$("div#RROW-" + getActiveArticleId() +
+ " span[class='collapseBtn']")[0];
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
+ Element.hide(elem);
+ Element.show("CEXC-" + getActiveArticleId());
+ Element.hide(collapse);
+ }
- $("FUPDPIC-" + id).src = 'images/blank_icon.gif';
+ setActiveArticleId(id);
+ cdmScrollToArticleId(id, true);
- handle_rpc_json(transport);
+ elem = $("CICD-" + id);
- var reply = JSON.parse(transport.responseText);
+ var collapse = $$("div#RROW-" + id +
+ " span[class='collapseBtn']")[0];
- reply.each(function(article) {
- $("CWRAP-" + article['id']).innerHTML = article['content'];
- cids_requested.remove(article['id']);
- });
- }});
+ var cencw = $("CENCW-" + id);
+ if (!Element.visible(elem)) {
+ if (cencw) {
+ cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML);
+ cencw.setAttribute('id', '');
}
+
+ Element.show(elem);
+ Element.hide("CEXC-" + id);
+ Element.show(collapse);
}
- var new_offset = $("RROW-" + id).offsetTop;
+ /* var new_offset = $("RROW-" + id).offsetTop;
$("headlines-frame").scrollTop += (new_offset-old_offset);
if ($("RROW-" + id).offsetTop != old_offset)
- $("headlines-frame").scrollTop = new_offset;
+ $("headlines-frame").scrollTop = new_offset; */
toggleUnread(id, 0, true);
toggleSelected(id);
return post_under_pointer;
}
-function zoomToArticle(event, id) {
- try {
- var cached_article = cache_get("article: " + id);
-
- if (dijit.byId("ATAB-" + id))
- if (!event || !event.shiftKey)
- return dijit.byId("content-tabs").selectChild(dijit.byId("ATAB-" + id));
-
- if (dijit.byId("ATSTRTIP-" + id))
- dijit.byId("ATSTRTIP-" + id).destroyRecursive();
-
- if (cached_article) {
- //closeArticlePanel();
-
- var article_pane = new dijit.layout.ContentPane({
- title: __("Loading...") , content: cached_article,
- style: 'padding : 0px;',
- id: 'ATAB-' + id,
- closable: true });
-
- dijit.byId("content-tabs").addChild(article_pane);
-
- if (!event || !event.shiftKey)
- dijit.byId("content-tabs").selectChild(article_pane);
-
- if ($("PTITLE-" + id))
- article_pane.attr('title', $("PTITLE-" + id).innerHTML);
-
- } else {
-
- var query = "?op=rpc&method=getArticles&ids=" + param_escape(id);
-
- notify_progress("Loading, please wait...", true);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- notify('');
-
- var reply = JSON.parse(transport.responseText);
-
- if (reply) {
- //closeArticlePanel();
-
- var content = reply[0]['content'];
-
- var article_pane = new dijit.layout.ContentPane({
- title: "article-" + id , content: content,
- style: 'padding : 0px;',
- id: 'ATAB-' + id,
- closable: true });
-
- dijit.byId("content-tabs").addChild(article_pane);
-
- if (!event || !event.shiftKey)
- dijit.byId("content-tabs").selectChild(article_pane);
-
- if ($("PTITLE-" + id))
- article_pane.attr('title', $("PTITLE-" + id).innerHTML);
- }
-
- } });
- }
-
- } catch (e) {
- exception_error("zoomToArticle", e);
- }
-}
-
function scrollArticle(offset) {
try {
if (!isCdmMode()) {
if (ctr) ctr.innerHTML = elem.labels;
});
-
- cache_headlines(getActiveFeedId(), activeFeedIsCat(), null, $("headlines-frame").innerHTML);
-
}
} catch (e) {
exception_error("show_labels_in_headlines", e);
}
}
-/* function toggleHeadlineActions() {
- try {
- var e = $("headlineActionsBody");
- var p = $("headlineActionsDrop");
-
- if (!Element.visible(e)) {
- Element.show(e);
- } else {
- Element.hide(e);
- }
-
- e.scrollTop = 0;
- e.style.left = (p.offsetLeft + 1) + "px";
- e.style.top = (p.offsetTop + p.offsetHeight + 2) + "px";
-
- } catch (e) {
- exception_error("toggleHeadlineActions", e);
- }
-} */
-
-/* function publishWithNote(id, def_note) {
- try {
- if (!def_note) def_note = '';
-
- var note = prompt(__("Please enter a note for this article:"), def_note);
-
- if (note != undefined) {
- togglePub(id, false, false, note);
- }
-
- } catch (e) {
- exception_error("publishWithNote", e);
- }
-} */
-
function dismissArticle(id) {
try {
var elem = $("RROW-" + id);
new Effect.Fade(elem, {duration : 0.5});
- active_post_id = false;
+ if (id == getActiveArticleId()) {
+ setActiveArticleId(0);
+ }
} catch (e) {
exception_error("dismissArticle", e);
var elem = $("RROW-" + ids[i]);
if (elem.className && elem.hasClassName("Selected") &&
- ids[i] != active_post_id) {
+ ids[i] != getActiveArticleId()) {
new Effect.Fade(elem, {duration : 0.5});
sel.push(ids[i]);
} else {
if (elem)
elem.removeClassName("Unread");
- var upd_img_pic = $("FUPDPIC-" + id);
-
- if (upd_img_pic && (upd_img_pic.src.match("updated.png") ||
- upd_img_pic.src.match("fresh_sign.png"))) {
-
- upd_img_pic.src = "images/blank_icon.gif";
- }
-
- active_post_id = id;
+ setActiveArticleId(id);
if (article_is_unread) {
decrementFeedCounter(getActiveFeedId(), activeFeedIsCat());
handle_rpc_json(transport);
} });
- return true;
+ return !event.shiftKey;
}
} else {
}
toggleUnread(id, 0, false);
- zoomToArticle(event, id);
+
+ openArticleInNewWindow(id);
}
+ var unread_in_buffer = $$("#headlines-frame > div[id*=RROW][class*=Unread]").length
+ request_counters(unread_in_buffer == 0);
+
} catch (e) {
exception_error("cdmClicked");
}
return false;
}
-function postClicked(event, id) {
- try {
-
- if (!event.ctrlKey) {
- return true;
- } else {
- postOpenInNewTab(event, id);
- return false;
- }
-
- } catch (e) {
- exception_error("postClicked");
- }
-}
-
-function hlOpenInNewTab(event, id) {
- toggleUnread(id, 0, false);
- zoomToArticle(event, id);
-}
-
-function postOpenInNewTab(event, id) {
- closeArticlePanel(id);
- zoomToArticle(event, id);
-}
-
function hlClicked(event, id) {
try {
if (event.which == 2) {
view(id);
return true;
- } else if (event.altKey) {
+ } else if (event.ctrlKey) {
+ toggleSelected(id, true);
+ toggleUnread(id, 0, false);
openArticleInNewWindow(id);
- } else if (!event.ctrlKey) {
- view(id);
return false;
} else {
- toggleSelected(id);
- toggleUnread(id, 0, false);
- zoomToArticle(event, id);
+ view(id);
return false;
}
return getInitParam("combined_display_mode");
}
-function markHeadline(id) {
+function markHeadline(id, marked) {
+ if (marked == undefined) marked = true;
+
var row = $("RROW-" + id);
if (row) {
- var check = $("RCHK-" + id);
+ var check = dijit.byId("RCHK-" + id);
if (check) {
- check.checked = true;
+ check.attr("checked", marked);
}
- row.addClassName("Selected");
+ if (marked)
+ row.addClassName("Selected");
+ else
+ row.removeClassName("Selected");
}
}
function closeArticlePanel() {
- var tabs = dijit.byId("content-tabs");
- var child = tabs.selectedChildWidget;
-
- if (child && tabs.getIndexOfChild(child) > 0) {
- tabs.removeChild(child);
- child.destroy();
- } else {
- if (dijit.byId("content-insert"))
- dijit.byId("headlines-wrap-inner").removeChild(
- dijit.byId("content-insert"));
- }
+ if (dijit.byId("content-insert"))
+ dijit.byId("headlines-wrap-inner").removeChild(
+ dijit.byId("content-insert"));
}
function initHeadlinesMenu() {
openArticleInNewWindow(this.getParent().callerRowId);
}}));
- menu.addChild(new dijit.MenuItem({
- label: __("View in a tt-rss tab"),
- onClick: function(event) {
- hlOpenInNewTab(event, this.getParent().callerRowId);
- }}));
-
menu.addChild(new dijit.MenuSeparator());
menu.addChild(new dijit.MenuItem({
sessionStorage.removeItem(id);
}
-function cache_headlines(feed, is_cat, toolbar_obj, content_obj) {
- if (toolbar_obj && content_obj) {
- cache_set("feed:" + feed + ":" + is_cat,
- JSON.stringify({toolbar: toolbar_obj, content: content_obj}));
- } else {
- try {
- obj = cache_get("feed:" + feed + ":" + is_cat);
-
- if (obj) {
- obj = JSON.parse(obj);
-
- if (toolbar_obj) obj.toolbar = toolbar_obj;
- if (content_obj) obj.content = content_obj;
-
- cache_set("feed:" + feed + ":" + is_cat, JSON.stringify(obj));
- }
-
- } catch (e) {
- console.warn("cache_headlines failed: " + e);
- }
- }
-}
-
-function render_local_headlines(feed, is_cat, obj) {
+function cancelSearch() {
try {
-
- dijit.byId("headlines-toolbar").attr('content',
- obj.toolbar);
-
- dijit.byId("headlines-frame").attr('content',
- obj.content);
-
- dojo.parser.parse('headlines-toolbar');
-
- $("headlines-frame").scrollTop = 0;
- selectArticles('none');
- setActiveFeedId(feed, is_cat);
- initHeadlinesMenu();
-
- dijit.getEnclosingWidget(
- document.forms["main_toolbar_form"].update).attr('disabled',
- is_cat || feed <= 0);
-
- precache_headlines();
-
+ _search_query = "";
+ viewCurrentFeed();
} catch (e) {
- exception_error("render_local_headlines", e);
+ exception_error("cancelSearch", e);
}
}
-function precache_headlines_idle() {
+function setSelectionScore() {
try {
- if (!feed_precache_timeout_id) {
- if (get_timestamp() - _viewfeed_last > 120) {
+ var ids = getSelectedArticleIds2();
- var feeds = dijit.byId("feedTree").getVisibleUnreadFeeds();
- var uncached = [];
+ if (ids.length > 0) {
+ console.log(ids);
- feeds.each(function(item) {
- if (parseInt(item[0]) > 0 && !cache_get("feed:" + item[0] + ":" + item[1]))
- uncached.push(item);
- });
+ var score = prompt(__("Please enter new score for selected articles:"), score);
- if (uncached.length > 0) {
- var rf = uncached[Math.floor(Math.random()*uncached.length)];
- viewfeed(rf[0], '', rf[1], 0, true);
- }
+ if (score != undefined) {
+ var query = "op=rpc&method=setScore&id=" + param_escape(ids.toString()) +
+ "&score=" + param_escape(score);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var reply = JSON.parse(transport.responseText);
+ if (reply) {
+ console.log(ids);
+
+ ids.each(function(id) {
+ var row = $("RROW-" + id);
+
+ if (row) {
+ var pic = row.getElementsByClassName("hlScorePic")[0];
+
+ if (pic) {
+ pic.src = pic.src.replace(/score_.*?\.png/,
+ reply["score_pic"]);
+ pic.setAttribute("score", score);
+ }
+ }
+ });
+ }
+ } });
}
- }
- precache_idle_timeout_id = setTimeout("precache_headlines_idle()", 1000*30);
+ } else {
+ alert(__("No articles are selected."));
+ }
} catch (e) {
- exception_error("precache_headlines_idle", e);
+ exception_error("setSelectionScore", e);
}
}
-function precache_headlines() {
+function changeScore(id, pic) {
try {
+ var score = pic.getAttribute("score");
- if (!feed_precache_timeout_id) {
- feed_precache_timeout_id = window.setTimeout(function() {
- var nuf = getNextUnreadFeed(getActiveFeedId(), activeFeedIsCat());
- var nf = dijit.byId("feedTree").getNextFeed(getActiveFeedId(), activeFeedIsCat());
+ var new_score = prompt(__("Please enter new score for this article:"), score);
- if (nuf && !cache_get("feed:" + nuf + ":" + activeFeedIsCat()))
- viewfeed(nuf, '', activeFeedIsCat(), 0, true);
+ if (new_score != undefined) {
- if (nf && nf[0] != nuf && !cache_get("feed:" + nf[0] + ":" + nf[1]))
- viewfeed(nf[0], '', nf[1], 0, true);
+ var query = "op=rpc&method=setScore&id=" + param_escape(id) +
+ "&score=" + param_escape(new_score);
- window.setTimeout(function() {
- feed_precache_timeout_id = false;
- }, 3000);
- }, 1000);
- }
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ var reply = JSON.parse(transport.responseText);
+ if (reply) {
+ pic.src = pic.src.replace(/score_.*?\.png/, reply["score_pic"]);
+ pic.setAttribute("score", new_score);
+ }
+ } });
+ }
} catch (e) {
- exception_error("precache_headlines", e);
+ exception_error("changeScore", e);
}
}
-
-