var active_post_id = false;
-var _catchup_callback_func = false;
var last_article_view = false;
var active_real_feed_id = false;
try {
debug("catchup_callback");
notify("");
- all_counters_callback();
+ all_counters_callback2(xmlhttp_rpc);
if (_catchup_callback_func) {
setTimeout(_catchup_callback_func, 10);
}
}
}
-function headlines_callback() {
- if (xmlhttp.readyState == 4) {
- debug("headlines_callback");
+function catchup_callback2(transport, callback) {
+ try {
+ debug("catchup_callback2 " + transport + ", " + callback);
+ notify("");
+ all_counters_callback2(transport);
+ if (callback) {
+ setTimeout(callback, 10);
+ }
+ } catch (e) {
+ exception_error("catchup_callback2", e);
+ }
+}
+
+function clean_feed_selections() {
+ try {
+ var feeds = document.getElementById("feedList").getElementsByTagName("LI");
+
+ for (var i = 0; i < feeds.length; i++) {
+ if (feeds[i].id && feeds[i].id.match("FEEDR-")) {
+ feeds[i].className = feeds[i].className.replace("Selected", "");
+ }
+ }
+ } catch (e) {
+ exception_error("clean_feed_selections", e);
+ }
+}
+
+function headlines_callback2(transport, active_feed_id, is_cat, feed_cur_page) {
+ try {
+
+ debug("headlines_callback2 [page=" + feed_cur_page + "]");
+
+ clean_feed_selections();
+
+ setActiveFeedId(active_feed_id);
+
+ if (is_cat != undefined) {
+ active_feed_is_cat = is_cat;
+ }
+
+ if (!is_cat) {
+ var feedr = document.getElementById("FEEDR-" + active_feed_id);
+ if (feedr && !feedr.className.match("Selected")) {
+ feedr.className = feedr.className + "Selected";
+ }
+ }
+
var f = document.getElementById("headlines-frame");
try {
if (feed_cur_page == 0) {
f.scrollTop = 0;
}
} catch (e) { };
+
+ if (transport.responseXML) {
+ var headlines = transport.responseXML.getElementsByTagName("headlines")[0];
+ var headlines_count_obj = transport.responseXML.getElementsByTagName("headlines-count")[0];
+ var headlines_unread_obj = transport.responseXML.getElementsByTagName("headlines-unread")[0];
+ var disable_cache_obj = transport.responseXML.getElementsByTagName("disable-cache")[0];
- if (xmlhttp.responseXML) {
- var headlines = xmlhttp.responseXML.getElementsByTagName("headlines")[0];
- var counters = xmlhttp.responseXML.getElementsByTagName("counters")[0];
- var articles = xmlhttp.responseXML.getElementsByTagName("article");
- var runtime_info = xmlhttp.responseXML.getElementsByTagName("runtime-info");
+ var headlines_count = headlines_count_obj.getAttribute("value");
+ var headlines_unread = headlines_unread_obj.getAttribute("value");
+ var disable_cache = disable_cache_obj.getAttribute("value") != "0";
+ if (headlines_count == 0) _infscroll_disable = 1;
+
+ var counters = transport.responseXML.getElementsByTagName("counters")[0];
+ var articles = transport.responseXML.getElementsByTagName("article");
+ var runtime_info = transport.responseXML.getElementsByTagName("runtime-info");
+
if (feed_cur_page == 0) {
if (headlines) {
f.innerHTML = headlines.firstChild.nodeValue;
+
+ var cache_prefix = "";
+
+ if (is_cat) {
+ cache_prefix = "C:";
+ } else {
+ cache_prefix = "F:";
+ }
+
+ cache_invalidate(cache_prefix + active_feed_id);
+
+ if (!disable_cache) {
+ cache_inject(cache_prefix + active_feed_id,
+ headlines.firstChild.nodeValue, headlines_unread);
+ }
+
} else {
debug("headlines_callback: returned no data");
f.innerHTML = "<div class='whiteBox'>" + __('Could not update headlines (missing XML data)') + "</div>";
}
} else {
if (headlines) {
- debug("adding some more headlines...");
+ if (headlines_count > 0) {
+ debug("adding some more headlines...");
+
+ var c = document.getElementById("headlinesList");
+
+ if (!c) {
+ c = document.getElementById("headlinesInnerContainer");
+ }
- var c = document.getElementById("headlinesList");
+ var ids = getSelectedArticleIds2();
+
+ c.innerHTML = c.innerHTML + headlines.firstChild.nodeValue;
- if (!c) {
- c = document.getElementById("headlinesInnerContainer");
- }
+ debug("restore selected ids: " + ids);
+
+ for (var i = 0; i < ids.length; i++) {
+ markHeadline(ids[i]);
+ }
- c.innerHTML = c.innerHTML + headlines.firstChild.nodeValue;
+ } else {
+ debug("no new headlines received");
+ }
} else {
debug("headlines_callback: returned no data");
notify_error("Error while trying to load more headlines");
}
-
+
}
-
+
if (articles) {
for (var i = 0; i < articles.length; i++) {
var a_id = articles[i].getAttribute("id");
} else {
debug("no cached articles received");
}
-
+
if (counters) {
debug("parsing piggybacked counters: " + counters);
parse_counters(counters, false);
} else {
debug("counters container not found in reply");
}
-
+
if (runtime_info) {
debug("parsing runtime info: " + runtime_info[0]);
parse_runtime_info(runtime_info[0]);
} else {
debug("counters container not found in reply");
}
-
+
} else {
debug("headlines_callback: returned no XML object");
f.innerHTML = "<div class='whiteBox'>" + __('Could not update headlines (missing XML object)') + "</div>";
}
-
+
if (typeof correctPNG != 'undefined') {
correctPNG();
}
-
+
if (_cdm_wd_timeout) window.clearTimeout(_cdm_wd_timeout);
-
+
if (!document.getElementById("headlinesList") &&
getInitParam("cdm_auto_catchup") == 1) {
debug("starting CDM watchdog");
} else {
debug("not in CDM mode or watchdog disabled");
}
-
+
if (_tag_cdm_scroll) {
try {
document.getElementById("headlinesInnerContainer").scrollTop = _tag_cdm_scroll;
_tag_cdm_scroll = false;
debug("resetting headlinesInner scrollTop");
-
+
} catch (e) { }
}
+
+ _feed_cur_page = feed_cur_page;
+ _infscroll_request_sent = 0;
notify("");
+ } catch (e) {
+ exception_error("headlines_callback2", e);
}
}
}
}
-function article_callback() {
- if (xmlhttp.readyState == 4) {
- debug("article_callback");
+function showArticleInHeadlines(id) {
+
+ try {
+
+ cleanSelected("headlinesList");
+
+ var crow = document.getElementById("RROW-" + id);
+
+ if (!crow) return;
+
+ var article_is_unread = crow.className.match("Unread");
+
+ crow.className = crow.className.replace("Unread", "");
+
+ selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
+
+ var upd_img_pic = document.getElementById("FUPDPIC-" + id);
+
+ var cache_prefix = "";
+
+ if (activeFeedIsCat()) {
+ cache_prefix = "C:";
+ } else {
+ cache_prefix = "F:";
+ }
+
+ var view_mode = false;
try {
- if (xmlhttp.responseXML) {
- var reply = xmlhttp.responseXML.firstChild.firstChild;
+ view_mode = document.forms['main_toolbar_form'].view_mode;
+ view_mode = view_mode[view_mode.selectedIndex].value;
+ } catch (e) {
+ exception_error("showArticleInHeadlines/viewmode", e, true);
+ }
- var articles = xmlhttp.responseXML.getElementsByTagName("article");
+ if (upd_img_pic && upd_img_pic.src.match("updated.png")) {
+ upd_img_pic.src = "images/blank_icon.gif";
- for (var i = 0; i < articles.length; i++) {
- var a_id = articles[i].getAttribute("id");
+ cache_invalidate(cache_prefix + getActiveFeedId());
- debug("found id: " + a_id);
+ cache_inject(cache_prefix + getActiveFeedId(),
+ document.getElementById("headlines-frame").innerHTML,
+ get_feed_unread(getActiveFeedId()));
- if (a_id == active_post_id) {
- debug("active article, rendering...");
- render_article(articles[i].firstChild.nodeValue);
- }
+ } else if (article_is_unread && view_mode == "all_articles") {
- cache_inject(a_id, articles[i].firstChild.nodeValue);
+ cache_invalidate(cache_prefix + getActiveFeedId());
+
+ cache_inject(cache_prefix + getActiveFeedId(),
+ document.getElementById("headlines-frame").innerHTML,
+ get_feed_unread(getActiveFeedId())-1);
+
+ } else if (article_is_unread) {
+ cache_invalidate(cache_prefix + getActiveFeedId());
+ }
+
+ markHeadline(id);
+
+ } catch (e) {
+ exception_error("showArticleInHeadlines", e);
+ }
+}
+
+function article_callback2(transport, id, feed_id) {
+ try {
+ debug("article_callback2 " + id);
+
+ if (transport.responseXML) {
+
+ active_real_feed_id = feed_id;
+ active_post_id = id;
+
+ showArticleInHeadlines(id);
+
+ var reply = transport.responseXML.firstChild.firstChild;
+
+ var articles = transport.responseXML.getElementsByTagName("article");
+
+ for (var i = 0; i < articles.length; i++) {
+ var a_id = articles[i].getAttribute("id");
+
+ debug("found id: " + a_id);
+
+ if (a_id == active_post_id) {
+ debug("active article, rendering...");
+ render_article(articles[i].firstChild.nodeValue);
}
-
- } else {
- debug("article_callback: returned no XML object");
- var f = document.getElementById("content-frame");
- f.innerHTML = "<div class='whiteBox'>" + __('Could not display article (missing XML object)') + "</div>";
+
+ cache_inject(a_id, articles[i].firstChild.nodeValue);
}
- } catch (e) {
- exception_error("article_callback", e);
+
+ } else {
+ debug("article_callback: returned no XML object");
+ var f = document.getElementById("content-frame");
+ f.innerHTML = "<div class='whiteBox'>" + __('Could not display article (missing XML object)') + "</div>";
}
var date = new Date();
setTimeout('updateFeedList(false, false)', 50);
_reload_feedlist_after_view = false;
} else {
- var counters = xmlhttp.responseXML.getElementsByTagName("counters")[0];
+ var counters = transport.responseXML.getElementsByTagName("counters")[0];
if (counters) {
debug("parsing piggybacked counters: " + counters);
}
notify("");
+ } catch (e) {
+ exception_error("article_callback2", e);
}
}
try {
debug("loading article: " + id + "/" + feed_id);
-
- active_real_feed_id = feed_id;
-
+
var cached_article = cache_find(id);
debug("cache check result: " + (cached_article != false));
var date = new Date();
- if (!xmlhttp_ready(xmlhttp) && last_article_view < date.getTime() / 1000 - 15) {
- debug("<b>xmlhttp seems to be stuck at view, aborting</b>");
- xmlhttp.abort();
- if (is_safari()) {
- debug("trying alternative reset method for Safari");
- xmlhttp = Ajax.getTransport();
- }
- }
-
- if (xmlhttp_ready(xmlhttp)) {
-
- active_post_id = id;
-
- cleanSelected("headlinesList");
+ var neighbor_ids = getRelativePostIds(active_post_id);
- var crow = document.getElementById("RROW-" + active_post_id);
+ /* only request uncached articles */
- var article_is_unread = crow.className.match("Unread");
- debug("article is unread: " + article_is_unread);
+ var cids_to_request = Array();
- crow.className = crow.className.replace("Unread", "");
-
- var upd_img_pic = document.getElementById("FUPDPIC-" + active_post_id);
-
- if (upd_img_pic) {
- upd_img_pic.src = "images/blank_icon.gif";
+ for (var i = 0; i < neighbor_ids.length; i++) {
+ if (!cache_check(neighbor_ids[i])) {
+ cids_to_request.push(neighbor_ids[i]);
}
+ }
- selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
- markHeadline(active_post_id);
-
- var neighbor_ids = getRelativePostIds(active_post_id);
-
- /* only request uncached articles */
-
- var cids_to_request = Array();
-
- for (var i = 0; i < neighbor_ids.length; i++) {
- if (!cache_check(neighbor_ids[i])) {
- cids_to_request.push(neighbor_ids[i]);
- }
- }
-
- debug("additional ids: " + cids_to_request.toString());
-
- /* additional info for piggyback counters */
-
- if (tagsAreDisplayed()) {
- query = query + "&omode=lt";
- } else {
- query = query + "&omode=flc";
- }
-
- var date = new Date();
- var timestamp = Math.round(date.getTime() / 1000);
- query = query + "&ts=" + timestamp;
-
- query = query + "&cids=" + cids_to_request.toString();
-
- if (!cached_article) {
+ debug("additional ids: " + cids_to_request.toString());
- notify_progress("Loading, please wait...");
+ /* additional info for piggyback counters */
- debug(query);
+ if (tagsAreDisplayed()) {
+ query = query + "&omode=lt";
+ } else {
+ query = query + "&omode=flc";
+ }
- xmlhttp.open("GET", query, true);
- xmlhttp.onreadystatechange=article_callback;
- xmlhttp.send(null);
- } else if (cached_article && article_is_unread) {
+ var date = new Date();
+ var timestamp = Math.round(date.getTime() / 1000);
+ query = query + "&ts=" + timestamp;
- query = query + "&mode=prefetch";
+ query = query + "&cids=" + cids_to_request.toString();
- debug(query);
+ var crow = document.getElementById("RROW-" + id);
+ var article_is_unread = crow.className.match("Unread");
- xmlhttp.open("GET", query, true);
- xmlhttp.onreadystatechange=article_callback;
- xmlhttp.send(null);
+ showArticleInHeadlines(id);
- render_article(cached_article);
+ if (!cached_article) {
- } else if (cached_article) {
+ notify_progress("Loading, please wait...");
- query = query + "&mode=prefetch_old";
+ } else if (cached_article && article_is_unread) {
- debug(query);
+ query = query + "&mode=prefetch";
- xmlhttp.open("GET", query, true);
- xmlhttp.onreadystatechange=article_callback;
- xmlhttp.send(null);
+ render_article(cached_article);
- render_article(cached_article);
+ } else if (cached_article) {
- }
+ query = query + "&mode=prefetch_old";
+ render_article(cached_article);
+ }
- cache_expire();
+ cache_expire();
- } else {
- debug("xmlhttp busy (@view)");
- printLockingError();
- }
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ article_callback2(transport, id, feed_id);
+ } });
} catch (e) {
exception_error("view", e);
return togglePub(id);
}
+function tMark_afh_off(effect) {
+ try {
+ var elem = effect.effects[0].element;
-function toggleMark(id) {
-
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
-
- var query = "backend.php?op=rpc&id=" + id + "&subop=mark";
+ debug("tMark_afh_off : " + elem.id);
- query = query + "&afid=" + getActiveFeedId();
+ if (elem) {
+ elem.src = elem.src.replace("mark_set", "mark_unset");
+ elem.alt = __("Star article");
+ Element.show(elem);
+ }
- if (tagsAreDisplayed()) {
- query = query + "&omode=tl";
- } else {
- query = query + "&omode=flc";
+ } catch (e) {
+ exception_error("tMark_afh_off", e);
}
+}
- var mark_img = document.getElementById("FMPIC-" + id);
- var vfeedu = document.getElementById("FEEDU--1");
- var crow = document.getElementById("RROW-" + id);
-
- if (mark_img.alt != "Reset mark") {
- mark_img.src = "images/mark_set.png";
- mark_img.alt = "Reset mark";
- query = query + "&mark=1";
-
- if (vfeedu && crow.className.match("Unread")) {
- vfeedu.innerHTML = (+vfeedu.innerHTML) + 1;
- }
+function tPub_afh_off(effect) {
+ try {
+ var elem = effect.effects[0].element;
- } else {
- mark_img.src = "images/mark_unset.png";
- mark_img.alt = "Set mark";
- query = query + "&mark=0";
+ debug("tPub_afh_off : " + elem.id);
- if (vfeedu && crow.className.match("Unread")) {
- vfeedu.innerHTML = (+vfeedu.innerHTML) - 1;
+ if (elem) {
+ elem.src = elem.src.replace("pub_set", "pub_unset");
+ elem.alt = __("Publish article");
+ Element.show(elem);
}
+ } catch (e) {
+ exception_error("tPub_afh_off", e);
}
+}
- var vfeedctr = document.getElementById("FEEDCTR--1");
- var vfeedr = document.getElementById("FEEDR--1");
+function toggleMark(id, client_only, no_effects) {
- if (vfeedu && vfeedctr) {
- if ((+vfeedu.innerHTML) > 0) {
- if (crow.className.match("Unread") && !vfeedr.className.match("Unread")) {
- vfeedr.className = vfeedr.className + "Unread";
- vfeedctr.className = "odd";
- }
+ try {
+
+ var query = "backend.php?op=rpc&id=" + id + "&subop=mark";
+
+ query = query + "&afid=" + getActiveFeedId();
+
+ if (tagsAreDisplayed()) {
+ query = query + "&omode=tl";
} else {
- vfeedctr.className = "invisible";
- vfeedr.className = vfeedr.className.replace("Unread", "");
+ query = query + "&omode=flc";
}
- }
+
+ var mark_img = document.getElementById("FMPIC-" + id);
+ var vfeedu = document.getElementById("FEEDU--1");
+ var crow = document.getElementById("RROW-" + id);
+
+ if (mark_img.src.match("mark_unset")) {
+ mark_img.src = mark_img.src.replace("mark_unset", "mark_set");
+ mark_img.alt = __("Unstar article");
+ query = query + "&mark=1";
+
+/* if (vfeedu && crow.className.match("Unread")) {
+ vfeedu.innerHTML = (+vfeedu.innerHTML) + 1;
+ } */
+
+ } else {
+ //mark_img.src = "images/mark_unset.png";
+ mark_img.alt = __("Please wait...");
+ query = query + "&mark=0";
+
+/* if (vfeedu && crow.className.match("Unread")) {
+ vfeedu.innerHTML = (+vfeedu.innerHTML) - 1;
+ } */
+
+ if (document.getElementById("headlinesList") && !no_effects) {
+ Effect.Puff(mark_img, {duration : 0.25, afterFinish: tMark_afh_off});
+ } else {
+ mark_img.src = mark_img.src.replace("mark_set", "mark_unset");
+ mark_img.alt = __("Star article");
+ }
+ }
+
+/* var vfeedctr = document.getElementById("FEEDCTR--1");
+ var vfeedr = document.getElementById("FEEDR--1");
+
+ if (vfeedu && vfeedctr) {
+ if ((+vfeedu.innerHTML) > 0) {
+ if (crow.className.match("Unread") && !vfeedr.className.match("Unread")) {
+ vfeedr.className = vfeedr.className + "Unread";
+ vfeedctr.className = "odd";
+ }
+ } else {
+ vfeedctr.className = "invisible";
+ vfeedr.className = vfeedr.className.replace("Unread", "");
+ }
+ }
+
+ debug("toggle starred for aid " + id);
+
+ //new Ajax.Request(query); */
- debug("toggle starred for aid " + id);
+ if (!client_only) {
+ debug(query);
- new Ajax.Request(query);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ all_counters_callback2(transport);
+ } });
+ }
+
+ } catch (e) {
+ exception_error("toggleMark", e);
+ }
}
-function togglePub(id) {
+function togglePub(id, client_only, no_effects) {
try {
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
-
var query = "backend.php?op=rpc&id=" + id + "&subop=publ";
query = query + "&afid=" + getActiveFeedId();
var vfeedu = document.getElementById("FEEDU--2");
var crow = document.getElementById("RROW-" + id);
- if (mark_img.alt != "Unpublish") {
- mark_img.src = "images/pub_set.png";
- mark_img.alt = "Unpublish";
+ if (mark_img.src.match("pub_unset")) {
+ mark_img.src = mark_img.src.replace("pub_unset", "pub_set");
+ mark_img.alt = __("Unpublish article");
query = query + "&pub=1";
- if (vfeedu && crow.className.match("Unread")) {
+/* if (vfeedu && crow.className.match("Unread")) {
vfeedu.innerHTML = (+vfeedu.innerHTML) + 1;
- }
+ } */
} else {
- mark_img.src = "images/pub_unset.png";
- mark_img.alt = "Publish";
+ //mark_img.src = "images/pub_unset.png";
+ mark_img.alt = __("Please wait...");
query = query + "&pub=0";
- if (vfeedu && crow.className.match("Unread")) {
+/* if (vfeedu && crow.className.match("Unread")) {
vfeedu.innerHTML = (+vfeedu.innerHTML) - 1;
+ } */
+
+ if (document.getElementById("headlinesList") && !no_effects) {
+ Effect.Puff(mark_img, {duration : 0.25, afterFinish: tPub_afh_off});
+ } else {
+ mark_img.src = mark_img.src.replace("pub_set", "pub_unset");
+ mark_img.alt = __("Publish article");
}
-
}
- var vfeedctr = document.getElementById("FEEDCTR--2");
+/* var vfeedctr = document.getElementById("FEEDCTR--2");
var vfeedr = document.getElementById("FEEDR--2");
if (vfeedu && vfeedctr) {
debug("toggle published for aid " + id);
- new Ajax.Request(query);
+ new Ajax.Request(query); */
+
+ if (!client_only) {
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ all_counters_callback2(transport);
+ } });
+ }
+
} catch (e) {
exception_error("togglePub", e);
function toggleUnread(id, cmode) {
try {
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
var row = document.getElementById("RROW-" + id);
if (row) {
nc = nc.replace("Unread", "");
nc = nc.replace("Selected", "");
- if (row.className.match("Unread")) {
+ if (cmode == undefined || cmode == 2) {
+ if (row.className.match("Unread")) {
+ row.className = nc;
+ } else {
+ row.className = nc + "Unread";
+ }
+ } else if (cmode == 0) {
row.className = nc;
- } else {
+ } else if (cmode == 1) {
row.className = nc + "Unread";
}
- if (!cmode) cmode = 2;
+ if (cmode == undefined) cmode = 2;
var query = "backend.php?op=rpc&subop=catchupSelected&ids=" +
param_escape(id) + "&cmode=" + param_escape(cmode);
- notify_progress("Loading, please wait...");
+// notify_progress("Loading, please wait...");
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=all_counters_callback;
- xmlhttp_rpc.send(null);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ all_counters_callback2(transport);
+ } });
}
function selectionToggleUnread(cdm_mode, set_state, callback_func, no_error) {
try {
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
-
var rows;
if (cdm_mode) {
nc = nc.replace("Unread", "");
nc = nc.replace("Selected", "");
- if (row.className.match("Unread")) {
+ if (set_state == undefined) {
+ if (row.className.match("Unread")) {
+ row.className = nc + "Selected";
+ } else {
+ row.className = nc + "UnreadSelected";
+ }
+ }
+
+ if (set_state == false) {
row.className = nc + "Selected";
- } else {
+ }
+
+ if (set_state == true) {
row.className = nc + "UnreadSelected";
}
}
var query = "backend.php?op=rpc&subop=catchupSelected&ids=" +
param_escape(rows.toString()) + "&cmode=" + cmode;
- _catchup_callback_func = callback_func;
-
notify_progress("Loading, please wait...");
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=catchup_callback;
- xmlhttp_rpc.send(null);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ catchup_callback2(transport, callback_func);
+ } });
}
function selectionToggleMarked(cdm_mode) {
try {
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
var rows;
}
for (i = 0; i < rows.length; i++) {
- var row = document.getElementById("RROW-" + rows[i]);
- var mark_img = document.getElementById("FMPIC-" + rows[i]);
-
- if (row && mark_img) {
-
- if (mark_img.alt == "Set mark") {
- mark_img.src = "images/mark_set.png";
- mark_img.alt = "Reset mark";
- mark_img.setAttribute('onclick',
- 'javascript:toggleMark('+rows[i]+', false)');
-
- } else {
- mark_img.src = "images/mark_unset.png";
- mark_img.alt = "Set mark";
- mark_img.setAttribute('onclick',
- 'javascript:toggleMark('+rows[i]+', true)');
- }
- }
+ toggleMark(rows[i], true, true);
}
if (rows.length > 0) {
query = query + "&afid=" + getActiveFeedId();
- if (tagsAreDisplayed()) {
+/* if (tagsAreDisplayed()) {
query = query + "&omode=tl";
} else {
query = query + "&omode=flc";
- }
+ } */
+
+ query = query + "&omode=lc";
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=all_counters_callback;
- xmlhttp_rpc.send(null);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ all_counters_callback2(transport);
+ } });
}
function selectionTogglePublished(cdm_mode) {
try {
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- return;
- }
var rows;
}
for (i = 0; i < rows.length; i++) {
- var row = document.getElementById("RROW-" + rows[i]);
- var mark_img = document.getElementById("FPPIC-" + rows[i]);
-
- if (row && mark_img) {
-
- if (mark_img.alt == "Publish") {
- mark_img.src = "images/pub_set.png";
- mark_img.alt = "Unpublish";
- mark_img.setAttribute('onclick',
- 'javascript:togglePub('+rows[i]+', false)');
-
- } else {
- mark_img.src = "images/pub_unset.png";
- mark_img.alt = "Publish";
- mark_img.setAttribute('onclick',
- 'javascript:togglePub('+rows[i]+', true)');
- }
- }
+ togglePub(rows[i], true, true);
}
if (rows.length > 0) {
query = query + "&afid=" + getActiveFeedId();
- if (tagsAreDisplayed()) {
+/* if (tagsAreDisplayed()) {
query = query + "&omode=tl";
} else {
query = query + "&omode=flc";
- }
+ } */
+
+ query = query + "&omode=lc";
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=all_counters_callback;
- xmlhttp_rpc.send(null);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ all_counters_callback2(transport);
+ } });
}
return sel_articles;
}
+function cdmGetVisibleArticles() {
+ var sel_articles = new Array();
+ var container = document.getElementById("headlinesInnerContainer");
+
+ for (i = 0; i < container.childNodes.length; i++) {
+ var child = container.childNodes[i];
+
+ if (child.id.match("RROW-")) {
+ var c_id = child.id.replace("RROW-", "");
+ sel_articles.push(c_id);
+ }
+ }
+
+ return sel_articles;
+}
+
+function cdmGetUnreadArticles() {
+ var sel_articles = new Array();
+ var container = document.getElementById("headlinesInnerContainer");
+
+ for (i = 0; i < container.childNodes.length; i++) {
+ var child = container.childNodes[i];
+
+ if (child.id.match("RROW-") && child.className.match("Unread")) {
+ var c_id = child.id.replace("RROW-", "");
+ sel_articles.push(c_id);
+ }
+ }
+
+ return sel_articles;
+}
+
+
// mode = all,none,unread
function cdmSelectArticles(mode) {
var container = document.getElementById("headlinesInnerContainer");
var fn = getFeedName(getActiveFeedId(), active_feed_is_cat);
- var str = "Mark all visible articles in " + fn + " as read?";
+ var str = __("Mark all visible articles in %s as read?");
+
+ str = str.replace("%s", fn);
if (getInitParam("confirm_feed_catchup") == 1 && !confirm(str)) {
return;
}
}
+function catchupSelection() {
+
+ try {
+
+ var rows;
+
+ if (document.getElementById("headlinesList")) {
+ rows = getSelectedTableRowIds("headlinesList", "RROW", "RCHK");
+ } else {
+ rows = cdmGetSelectedArticles();
+ }
+
+ if (rows.length == 0) {
+ alert(__("No articles are selected."));
+ return;
+ }
+
+
+ var fn = getFeedName(getActiveFeedId(), active_feed_is_cat);
+
+ var str = __("Mark %d selected articles in %s as read?");
+
+ str = str.replace("%d", rows.length);
+ str = str.replace("%s", fn);
+
+ if (getInitParam("confirm_feed_catchup") == 1 && !confirm(str)) {
+ return;
+ }
+
+ if (document.getElementById("headlinesList")) {
+ selectionToggleUnread(false, false, 'viewCurrentFeed()', true);
+ // selectTableRowsByIdPrefix('headlinesList', 'RROW-', 'RCHK-', false);
+ } else {
+ selectionToggleUnread(true, false, 'viewCurrentFeed()', true)
+ // cdmSelectArticles('none');
+ }
+
+ } catch (e) {
+ exception_error("catchupSelection", e);
+ }
+}
+
+
function labelFromSearch(search, search_mode, match_on, feed_id, is_cat) {
if (!xmlhttp_ready(xmlhttp_rpc)) {
printLockingError();
}
- var title = prompt("Please enter label title:", "");
+ var title = prompt(__("Please enter label title:"), "");
if (title) {
"&title=" + param_escape(title);
debug("LFS: " + query);
-
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=dlg_frefresh_callback;
- xmlhttp_rpc.send(null);
- }
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ dlg_frefresh_callback(transport);
+ } });
+ }
}
function editArticleTags(id, feed_id, cdm_enabled) {
}
-function tag_saved_callback() {
- if (xmlhttp_rpc.readyState == 4) {
- try {
- debug("in tag_saved_callback");
+function tag_saved_callback(transport) {
+ try {
+ debug("in tag_saved_callback");
- closeInfoBox();
- notify("");
+ closeInfoBox();
+ notify("");
- if (tagsAreDisplayed()) {
- _reload_feedlist_after_view = true;
- }
+ if (tagsAreDisplayed()) {
+ _reload_feedlist_after_view = true;
+ }
- if (!_tag_active_cdm) {
- if (active_post_id == _tag_active_post_id) {
- debug("reloading current article");
- view(_tag_active_post_id, _tag_active_feed_id);
- }
- } else {
- debug("reloading current feed");
- viewCurrentFeed();
+ if (!_tag_active_cdm) {
+ if (active_post_id == _tag_active_post_id) {
+ debug("reloading current article");
+ view(_tag_active_post_id, _tag_active_feed_id);
}
-
- } catch (e) {
- exception_error("catchup_callback", e);
+ } else {
+ debug("reloading current feed");
+ viewCurrentFeed();
}
+
+ } catch (e) {
+ exception_error("catchup_callback", e);
}
}
function editTagsSave() {
- if (!xmlhttp_ready(xmlhttp_rpc)) {
- printLockingError();
- }
-
notify_progress("Saving article tags...");
var form = document.forms["tag_edit_form"];
debug(query);
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=tag_saved_callback;
- xmlhttp_rpc.send(null);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ tag_saved_callback(transport);
+ } });
}
debug("cdmWatchdog, ids= " + ids.toString());
- if (ids.length > 0 && xmlhttp_ready(xmlhttp_rpc)) {
+ if (ids.length > 0) {
for (var i = 0; i < ids.length; i++) {
var e = document.getElementById("RROW-" + ids[i]);
var query = "backend.php?op=rpc&subop=catchupSelected&ids=" +
param_escape(ids.toString()) + "&cmode=0";
- xmlhttp_rpc.open("GET", query, true);
- xmlhttp_rpc.onreadystatechange=all_counters_callback;
- xmlhttp_rpc.send(null);
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ all_counters_callback2(transport);
+ } });
}
}
-function cache_inject(id, article) {
- if (!cache_check(id)) {
- debug("cache_article: miss: " + id);
+function cache_inject(id, article, param) {
+ if (!cache_check_param(id, param)) {
+ debug("cache_article: miss: " + id + " [p=" + param + "]");
var cache_obj = new Array();
cache_obj["id"] = id;
cache_obj["data"] = article;
+ cache_obj["param"] = param;
article_cache.push(cache_obj);
} else {
- debug("cache_article: hit: " + id);
+ debug("cache_article: hit: " + id + " [p=" + param + "]");
}
}
return false;
}
+function cache_find_param(id, param) {
+ for (var i = 0; i < article_cache.length; i++) {
+ if (article_cache[i]["id"] == id && article_cache[i]["param"] == param) {
+ return article_cache[i]["data"];
+ }
+ }
+ return false;
+}
+
function cache_check(id) {
for (var i = 0; i < article_cache.length; i++) {
if (article_cache[i]["id"] == id) {
return false;
}
+function cache_check_param(id, param) {
+ for (var i = 0; i < article_cache.length; i++) {
+
+// debug("cache_check_param " + article_cache[i]["id"] + ":" +
+// article_cache[i]["param"] + " vs " + id + ":" + param);
+
+ if (article_cache[i]["id"] == id && article_cache[i]["param"] == param) {
+ return true;
+ }
+ }
+ return false;
+}
+
function cache_expire() {
while (article_cache.length > 20) {
article_cache.shift();
var e = document.getElementById("headlinesInnerContainer");
- if (e.scrollTop + e.offsetHeight > e.scrollHeight - 300) {
- debug("more cowbell!");
+ // don't do infinite scrolling when Limit == All
- viewNextFeedPage();
+ var toolbar_form = document.forms["main_toolbar_form"];
+
+ var limit = toolbar_form.limit[toolbar_form.limit.selectedIndex];
+ if (limit.value != 0) {
+ if (e.scrollTop + e.offsetHeight > e.scrollHeight - 50) {
+ if (!_infscroll_disable) {
+ debug("more cowbell!");
+ viewNextFeedPage();
+ }
+ }
}
} catch (e) {
exception_error("headlines_scroll_handler", e);
}
}
+
+function catchupRelativeToArticle(below) {
+
+ try {
+
+ if (!xmlhttp_ready(xmlhttp_rpc)) {
+ printLockingError();
+ }
+
+ if (!getActiveArticleId()) {
+ alert(__("No article is selected."));
+ return;
+ }
+
+ var visible_ids;
+
+ if (document.getElementById("headlinesList")) {
+ visible_ids = getVisibleHeadlineIds();
+ } else {
+ visible_ids = cdmGetVisibleArticles();
+ }
+
+ var ids_to_mark = new Array();
+
+ if (!below) {
+ for (var i = 0; i < visible_ids.length; i++) {
+ if (visible_ids[i] != getActiveArticleId()) {
+ var e = document.getElementById("RROW-" + visible_ids[i]);
+
+ if (e && e.className.match("Unread")) {
+ ids_to_mark.push(visible_ids[i]);
+ }
+ } else {
+ break;
+ }
+ }
+ } else {
+ for (var i = visible_ids.length-1; i >= 0; i--) {
+ if (visible_ids[i] != getActiveArticleId()) {
+ var e = document.getElementById("RROW-" + visible_ids[i]);
+
+ if (e && e.className.match("Unread")) {
+ ids_to_mark.push(visible_ids[i]);
+ }
+ } else {
+ break;
+ }
+ }
+ }
+
+ 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);
+
+ if (confirm(msg)) {
+
+ for (var i = 0; i < ids_to_mark.length; i++) {
+ var e = document.getElementById("RROW-" + ids_to_mark[i]);
+ e.className = e.className.replace("Unread", "");
+ }
+
+ var query = "backend.php?op=rpc&subop=catchupSelected&ids=" +
+ param_escape(ids_to_mark.toString()) + "&cmode=0";
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ catchup_callback2(transport);
+ } });
+
+ }
+ }
+
+ } catch (e) {
+ exception_error("catchupRelativeToArticle", e);
+ }
+}
+
+function cdmExpandArticle(a_id) {
+ try {
+ var id = 'CICD-' + a_id;
+
+ Effect.Appear(id, {duration : 0.5,
+ beforeStart: function(effect) {
+ var h_id = 'CICH-' + a_id;
+ var h_elem = document.getElementById(h_id);
+ if (h_elem) { h_elem.style.display = "none"; }
+
+ toggleUnread(a_id, 0);
+ }});
+
+
+ } catch (e) {
+ exception_error("appearBlockElementF", e);
+ }
+
+}
+
+