diff options
Diffstat (limited to 'viewfeed.js')
-rw-r--r-- | viewfeed.js | 396 |
1 files changed, 172 insertions, 224 deletions
diff --git a/viewfeed.js b/viewfeed.js index 2cad5afb3..6e220bb4e 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -16,15 +16,12 @@ var cache_added = []; function headlines_callback2(transport, feed_cur_page) { try { - - if (!handle_rpc_reply(transport)) return; + handle_rpc_json(transport); loading_set_progress(25); console.log("headlines_callback2 [page=" + feed_cur_page + "]"); - if (!transport_error_check(transport)) return; - var is_cat = false; var feed_id = false; @@ -42,11 +39,11 @@ function headlines_callback2(transport, feed_cur_page) { update_btn.disabled = !(feed_id >= 0 && !is_cat); try { - if (feed_cur_page == 0) { - $("headlines-frame").scrollTop = 0; + if (feed_cur_page == 0) { + $("headlines-frame").scrollTop = 0; } } catch (e) { }; - + if (transport.responseXML) { var response = transport.responseXML; @@ -54,7 +51,7 @@ function headlines_callback2(transport, feed_cur_page) { var headlines_content = headlines.getElementsByTagName("content")[0]; var headlines_toolbar = headlines.getElementsByTagName("toolbar")[0]; - + var headlines_info = response.getElementsByTagName("headlines-info")[0]; if (headlines_info) @@ -67,7 +64,7 @@ function headlines_callback2(transport, feed_cur_page) { var headlines_count = headlines_info.count; var headlines_unread = headlines_info.unread; var disable_cache = headlines_info.disable_cache; - + vgroup_last_feed = headlines_info.vgroup_last_feed; if (parseInt(headlines_count) < getInitParam("default_article_limit")) { @@ -79,10 +76,10 @@ function headlines_callback2(transport, feed_cur_page) { var counters = response.getElementsByTagName("counters")[0]; var articles = response.getElementsByTagName("article"); var runtime_info = response.getElementsByTagName("runtime-info"); - + if (feed_cur_page == 0) { if (headlines) { - dijit.byId("headlines-frame").attr('content', + dijit.byId("headlines-frame").attr('content', headlines_content.firstChild.nodeValue); dijit.byId("headlines-toolbar").attr('content', @@ -107,20 +104,20 @@ function headlines_callback2(transport, feed_cur_page) { } else { console.warn("headlines_callback: returned no data"); - dijit.byId("headlines-frame").attr('content', - "<div class='whiteBox'>" + + dijit.byId("headlines-frame").attr('content', + "<div class='whiteBox'>" + __('Could not update headlines (missing XML data)') + "</div>"); - + } } else { if (headlines) { if (headlines_count > 0) { console.log("adding some more headlines..."); - var c = dijit.byId("headlines-frame"); + var c = dijit.byId("headlines-frame"); var ids = getSelectedArticleIds2(); - - //c.attr('content', c.attr('content') + + + //c.attr('content', c.attr('content') + // headlines_content.firstChild.nodeValue); $("headlines-tmp").innerHTML = headlines_content.firstChild.nodeValue; @@ -142,11 +139,11 @@ function headlines_callback2(transport, feed_cur_page) { } } else { console.warn("headlines_callback: returned no data"); - notify_error("Error while trying to load more headlines"); + 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"); @@ -164,10 +161,10 @@ function headlines_callback2(transport, feed_cur_page) { } else { console.warn("headlines_callback: returned no XML object"); - dijit.byId("headlines-frame").attr('content', "<div class='whiteBox'>" + + dijit.byId("headlines-frame").attr('content', "<div class='whiteBox'>" + __('Could not update headlines (missing XML object)') + "</div>"); } - + _feed_cur_page = feed_cur_page; @@ -190,7 +187,7 @@ function render_article(article) { try { c.domNode.scrollTop = 0; } catch (e) { }; - + c.attr('content', article); correctHeadlinesOffset(getActiveArticleId()); @@ -215,7 +212,7 @@ function showArticleInHeadlines(id) { if (!crow) return; var article_is_unread = crow.hasClassName("Unread"); - + crow.removeClassName("Unread"); selectArticles('none'); @@ -223,7 +220,7 @@ function showArticleInHeadlines(id) { var upd_img_pic = $("FUPDPIC-" + id); var cache_prefix = ""; - + if (activeFeedIsCat()) { cache_prefix = "C:"; } else { @@ -233,13 +230,13 @@ function showArticleInHeadlines(id) { var view_mode = false; try { - view_mode = document.forms['main_toolbar_form'].view_mode; + view_mode = document.forms['main_toolbar_form'].view_mode; view_mode = view_mode[view_mode.selectedIndex].value; } catch (e) { // } - if (upd_img_pic && (upd_img_pic.src.match("updated.png") || + 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"; @@ -276,51 +273,32 @@ function article_callback2(transport, id) { try { console.log("article_callback2 " + id); - if (!handle_rpc_reply(transport)) return; - - if (transport.responseXML) { + handle_rpc_json(transport); - if (!transport_error_check(transport)) return; + var reply = JSON.parse(transport.responseText); + if (reply) { var upic = $('FUPDPIC-' + id); - if (upic) { - upic.src = 'images/blank_icon.gif'; - } + if (upic) upic.src = 'images/blank_icon.gif'; if (id != last_requested_article) { console.log("requested article id is out of sequence, aborting"); return; } -// active_post_id = id; - - //console.log("looking for articles to cache..."); - - var articles = transport.responseXML.getElementsByTagName("article"); - - for (var i = 0; i < articles.length; i++) { - var a_id = articles[i].getAttribute("id"); - - //console.log("found id: " + a_id); - - if (a_id == active_post_id) { - //console.log("active article, rendering..."); - render_article(articles[i].firstChild.nodeValue); + reply.each(function(article) { + if (active_post_id == article['id']) { + render_article(article['content']); } + cache_inject(article['id'], article['content']); + }); - cache_inject(a_id, articles[i].firstChild.nodeValue); - } - - -// showArticleInHeadlines(id); - - var reply = transport.responseXML.firstChild.firstChild; - } else { - console.warn("article_callback: returned no XML object"); - //var f = $("content-frame"); - //f.innerHTML = "<div class='whiteBox'>" + __('Could not display article (missing XML object)') + "</div>"; + console.warn("article_callback: returned invalid data"); + + render_article("<div class='whiteBox'>" + + __('Could not display article (invalid data received)') + "</div>"); } var date = new Date(); @@ -341,7 +319,7 @@ function view(id) { var cached_article = cache_find(id); console.log("cache check result: " + (cached_article != false)); - + hideAuxDlg(); var query = "?op=view&id=" + param_escape(id); @@ -358,8 +336,8 @@ function view(id) { } } - console.log("additional ids: " + cids_to_request.toString()); - + console.log("additional ids: " + cids_to_request.toString()); + query = query + "&cids=" + cids_to_request.toString(); var crow = $("RROW-" + id); @@ -372,7 +350,7 @@ function view(id) { var upic = $('FUPDPIC-' + id); - if (upic) { + if (upic) { upic.src = getInitParam("sign_progress"); } @@ -395,8 +373,8 @@ function view(id) { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - article_callback2(transport, id); + onComplete: function(transport) { + article_callback2(transport, id); } }); return false; @@ -417,11 +395,11 @@ function tPub(id) { function toggleMark(id, client_only) { try { var query = "?op=rpc&id=" + id + "&subop=mark"; - + var img = $("FMPIC-" + id); if (!img) return; - + if (img.src.match("mark_unset")) { img.src = img.src.replace("mark_unset", "mark_set"); img.alt = __("Unstar article"); @@ -436,8 +414,8 @@ function toggleMark(id, client_only) { if (!client_only) { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); } @@ -449,7 +427,7 @@ function toggleMark(id, client_only) { function togglePub(id, client_only, no_effects, note) { try { var query = "?op=rpc&id=" + id + "&subop=publ"; - + if (note != undefined) { query = query + "¬e=" + param_escape(note); } else { @@ -459,7 +437,7 @@ function togglePub(id, client_only, no_effects, note) { var img = $("FPPIC-" + id); if (!img) return; - + if (img.src.match("pub_unset") || note != undefined) { img.src = img.src.replace("pub_unset", "pub_set"); img.alt = __("Unpublish article"); @@ -475,41 +453,11 @@ function togglePub(id, client_only, no_effects, note) { if (!client_only) { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); } -/* if (!client_only) { - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - handle_rpc_reply(transport); - - var note = transport.responseXML.getElementsByTagName("note")[0]; - - if (note) { - var note_id = note.getAttribute("id"); - var note_size = note.getAttribute("size"); - var note_content = note.firstChild.nodeValue; - - var container = $('POSTNOTE-' + note_id); - - cache_invalidate(note_id); - - if (container) { - if (note_size == "0") { - Element.hide(container); - } else { - container.innerHTML = note_content; - Element.show(container); - } - } - } - - } }); - } */ - } catch (e) { exception_error("togglePub", e); } @@ -523,27 +471,27 @@ function moveToPost(mode) { var prev_id = false; var next_id = false; - + if (!$('RROW-' + active_post_id)) { active_post_id = false; } - + if (active_post_id == false) { next_id = getFirstVisibleHeadlineId(); prev_id = getLastVisibleHeadlineId(); - } else { + } else { for (var i = 0; i < rows.length; i++) { if (rows[i] == active_post_id) { prev_id = rows[i-1]; - next_id = rows[i+1]; + next_id = rows[i+1]; } } } - + if (mode == "next") { if (next_id) { if (isCdmMode()) { - + cdmExpandArticle(next_id); cdmScrollToArticleId(next_id); @@ -553,7 +501,7 @@ function moveToPost(mode) { } } } - + if (mode == "prev") { if (prev_id) { if (isCdmMode()) { @@ -564,7 +512,7 @@ function moveToPost(mode) { view(prev_id, getActiveFeedId()); } } - } + } } catch (e) { exception_error("moveToPost", e); @@ -573,7 +521,7 @@ function moveToPost(mode) { function toggleSelected(id, force_on) { try { - + var cb = $("RCHK-" + id); var row = $("RROW-" + id); @@ -600,11 +548,11 @@ function toggleUnread_afh(effect) { } catch (e) { exception_error("toggleUnread_afh", e); } -} +} function toggleUnread(id, cmode, effect) { try { - + var row = $("RROW-" + id); if (row) { if (cmode == undefined || cmode == 2) { @@ -615,7 +563,7 @@ function toggleUnread(id, cmode, effect) { new Effect.Highlight(row, {duration: 1, startcolor: "#fff7d5", afterFinish: toggleUnread_afh, queue: { position:'end', scope: 'TMRQ-' + id, limit: 1 } } ); - } + } } else { row.addClassName("Unread"); @@ -629,7 +577,7 @@ function toggleUnread(id, cmode, effect) { new Effect.Highlight(row, {duration: 1, startcolor: "#fff7d5", afterFinish: toggleUnread_afh, queue: { position:'end', scope: 'TMRQ-' + id, limit: 1 } } ); - } + } } else if (cmode == 1) { row.addClassName("Unread"); @@ -644,8 +592,8 @@ function toggleUnread(id, cmode, effect) { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); } @@ -680,7 +628,7 @@ function selectionRemoveLabel(id, ids) { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { handle_rpc_json(transport); show_labels_in_headlines(transport); } }); @@ -718,7 +666,7 @@ function selectionAssignLabel(id, ids) { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { handle_rpc_json(transport); show_labels_in_headlines(transport); } }); @@ -774,13 +722,13 @@ function selectionToggleUnread(set_state, callback, no_error) { } var query = "?op=rpc&subop=catchupSelected" + - "&cmode=" + cmode + "&ids=" + param_escape(rows.toString()); + "&cmode=" + cmode + "&ids=" + param_escape(rows.toString()); notify_progress("Loading, please wait..."); new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { handle_rpc_json(transport); if (callback) callback(transport); } }); @@ -794,9 +742,9 @@ function selectionToggleUnread(set_state, callback, no_error) { function selectionToggleMarked() { try { - + var rows = getSelectedArticleIds2(); - + if (rows.length == 0) { alert(__("No articles are selected.")); return; @@ -813,8 +761,8 @@ function selectionToggleMarked() { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); } @@ -826,7 +774,7 @@ function selectionToggleMarked() { function selectionTogglePublished() { try { - + var rows = getSelectedArticleIds2(); if (rows.length == 0) { @@ -845,8 +793,8 @@ function selectionTogglePublished() { new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); } @@ -925,7 +873,7 @@ function selectArticles(mode) { function catchupPage() { var fn = getFeedName(getActiveFeedId(), activeFeedIsCat()); - + var str = __("Mark all visible articles in %s as read?"); str = str.replace("%s", fn); @@ -942,27 +890,27 @@ function catchupPage() { function deleteSelection() { try { - + var rows = getSelectedArticleIds2(); if (rows.length == 0) { alert(__("No articles are selected.")); return; } - + var fn = getFeedName(getActiveFeedId(), activeFeedIsCat()); var str; var op; - + if (getActiveFeedId() != 0) { str = __("Delete %d selected articles in %s?"); } else { str = __("Delete %d selected articles?"); } - + str = str.replace("%d", rows.length); str = str.replace("%s", fn); - + if (getInitParam("confirm_feed_catchup") == 1 && !confirm(str)) { return; } @@ -993,11 +941,11 @@ function archiveSelection() { alert(__("No articles are selected.")); return; } - + var fn = getFeedName(getActiveFeedId(), activeFeedIsCat()); var str; var op; - + if (getActiveFeedId() != 0) { str = __("Archive %d selected articles in %s?"); op = "archive"; @@ -1005,10 +953,10 @@ function archiveSelection() { str = __("Move %d archived articles back?"); op = "unarchive"; } - + str = str.replace("%d", rows.length); str = str.replace("%s", fn); - + if (getInitParam("confirm_feed_catchup") == 1 && !confirm(str)) { return; } @@ -1043,18 +991,18 @@ function catchupSelection() { alert(__("No articles are selected.")); return; } - + var fn = getFeedName(getActiveFeedId(), activeFeedIsCat()); - + 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; } - + selectionToggleUnread(false, 'viewCurrentFeed()', true) } catch (e) { @@ -1083,7 +1031,7 @@ function editArticleTags(id) { onComplete: function(transport) { notify(''); dialog.hide(); - + var data = JSON.parse(transport.responseText); if (data) { @@ -1098,7 +1046,7 @@ function editArticleTags(id) { cache_invalidate(id); } - + }}); } }, @@ -1141,7 +1089,7 @@ function cache_inject(id, article, param) { var ts = Math.round(date.getTime() / 1000); var cache_obj = {}; - + cache_obj["id"] = id; cache_obj["data"] = article; cache_obj["param"] = param; @@ -1150,7 +1098,7 @@ function cache_inject(id, article, param) { cache_added["TS:" + id] = ts; - if (has_local_storage()) + if (has_local_storage()) sessionStorage.setItem(id, JSON.stringify(cache_obj)); else article_cache.push(cache_obj); @@ -1158,7 +1106,7 @@ function cache_inject(id, article, param) { } else { //console.log("cache_article: hit: " + id + " [p=" + param + "]"); } - } catch (e) { + } catch (e) { exception_error("cache_inject", e); } } @@ -1274,7 +1222,7 @@ function cache_flush() { } function cache_invalidate(id) { - try { + try { if (has_local_storage()) { var found = false; @@ -1320,25 +1268,25 @@ function getActiveArticleId() { function preloadBatchedArticles() { try { - var query = "?op=rpc&subop=getArticles&ids=" + + var query = "?op=rpc&subop=getArticles&ids=" + preload_id_batch.toString(); new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { preload_id_batch = []; - var articles = transport.responseXML.getElementsByTagName("article"); + var articles = JSON.parse(transport.responseText); for (var i = 0; i < articles.length; i++) { - var id = articles[i].getAttribute("id"); + var id = articles[i]['id']; if (!cache_check(id)) { - cache_inject(id, articles[i].firstChild.nodeValue); + cache_inject(id, articles[i]['content']); console.log("preloaded article: " + id); } } - } }); + } }); } catch (e) { exception_error("preloadBatchedArticles", e); @@ -1417,7 +1365,7 @@ function headlines_scroll_handler(e) { $$("#headlines-frame > div[id*=RROW][class*=Unread]").each( function(child) { - if ($("headlines-frame").scrollTop > + if ($("headlines-frame").scrollTop > (child.offsetTop + child.offsetHeight)) { ids.push(child.id.replace("RROW-", "")); @@ -1428,12 +1376,12 @@ function headlines_scroll_handler(e) { var query = "?op=rpc&subop=catchupSelected" + "&cmode=0&ids=" + param_escape(ids.toString()); - + new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { handle_rpc_json(transport); - + ids.each(function(id) { var elem = $("RROW-" + id); if (elem) elem.removeClassName("Unread"); @@ -1499,12 +1447,12 @@ function catchupRelativeToArticle(below) { } var query = "?op=rpc&subop=catchupSelected" + - "&cmode=0" + "&ids=" + param_escape(ids_to_mark.toString()); + "&cmode=0" + "&ids=" + param_escape(ids_to_mark.toString()); new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); } @@ -1524,7 +1472,7 @@ function cdmExpandArticle(id) { var upd_img_pic = $("FUPDPIC-" + id); - if (upd_img_pic && (upd_img_pic.src.match("updated.png") || + 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"; @@ -1554,18 +1502,18 @@ function cdmExpandArticle(id) { $("FUPDPIC-" + id).src = "images/indicator_tiny.gif"; - $("CWRAP-" + id).innerHTML = "<div class=\"insensitive\">" + + $("CWRAP-" + id).innerHTML = "<div class=\"insensitive\">" + __("Loading, please wait...") + "</div>"; - + var query = "?op=rpc&subop=cdmGetArticle&id=" + param_escape(id); - + //console.log(query); - + new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { $("FUPDPIC-" + id).src = 'images/blank_icon.gif'; - + handle_rpc_json(transport); var reply = JSON.parse(transport.responseText); @@ -1573,16 +1521,16 @@ function cdmExpandArticle(id) { if (reply) { var article = reply['article']['content']; var recv_id = reply['article']['id']; - + if (recv_id == id) $("CWRAP-" + id).innerHTML = article; - + } else { $("CWRAP-" + id).innerHTML = __("Unable to load article."); - + } }}); - + } } @@ -1590,7 +1538,7 @@ function cdmExpandArticle(id) { $("headlines-frame").scrollTop += (new_offset-old_offset); - if ($("RROW-" + id).offsetTop != old_offset) + if ($("RROW-" + id).offsetTop != old_offset) $("headlines-frame").scrollTop = new_offset; toggleUnread(id, 0, true); @@ -1637,13 +1585,13 @@ function zoomToArticle(event, id) { if (cached_article) { //closeArticlePanel(); - - var article_pane = new dijit.layout.ContentPane({ - title: __("Loading...") , content: cached_article, + + 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) @@ -1655,26 +1603,26 @@ function zoomToArticle(event, id) { } else { var query = "?op=rpc&subop=getArticles&ids=" + param_escape(id); - + notify_progress("Loading, please wait...", true); - + new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { + onComplete: function(transport) { notify(''); - + if (transport.responseXML) { //closeArticlePanel(); - + var article = transport.responseXML.getElementsByTagName("article")[0]; var content = article.firstChild.nodeValue; - - var article_pane = new dijit.layout.ContentPane({ - title: "article-" + id , content: 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) @@ -1683,7 +1631,7 @@ function zoomToArticle(event, id) { if ($("PTITLE-" + id)) article_pane.attr('title', $("PTITLE-" + id).innerHTML); } - + } }); } @@ -1789,19 +1737,19 @@ function emailArticle(id) { new Ajax.Request("backend.php", { parameters: dojo.objectToQuery(this.attr('value')), - onComplete: function(transport) { + onComplete: function(transport) { var reply = JSON.parse(transport.responseText); - + var error = reply['error']; - + if (error) { alert(__('Error sending email:') + ' ' + error); } else { notify_info('Your message has been sent.'); dialog.hide(); } - + } }); } }, @@ -1817,8 +1765,8 @@ function emailArticle(id) { dialog.show(); - /* displayDlg('emailArticle', id, - function () { + /* displayDlg('emailArticle', id, + function () { document.forms['article_email_form'].destination.focus(); new Ajax.Autocompleter('destination', 'destination_choices', @@ -1857,7 +1805,7 @@ function dismissSelectedArticles() { for (var i = 0; i < ids.length; i++) { var elem = $("RROW-" + ids[i]); - if (elem.className && elem.hasClassName("Selected") && + if (elem.className && elem.hasClassName("Selected") && ids[i] != active_post_id) { new Effect.Fade(elem, {duration : 0.5}); sel.push(ids[i]); @@ -1885,9 +1833,9 @@ function dismissReadArticles() { for (var i = 0; i < ids.length; i++) { var elem = $("RROW-" + ids[i]); - if (elem.className && !elem.hasClassName("Unread") && + if (elem.className && !elem.hasClassName("Unread") && !elem.hasClassName("Selected")) { - + new Effect.Fade(elem, {duration : 0.5}); } else { tmp.push(ids[i]); @@ -1905,7 +1853,7 @@ function getVisibleArticleIds() { var ids = []; try { - + getLoadedArticleIds().each(function(id) { var elem = $("RROW-" + id); if (elem && Element.visible(elem)) @@ -1933,29 +1881,29 @@ function cdmClicked(event, id) { selectArticles("none"); toggleSelected(id); - + var elem = $("RROW-" + id); - + if (elem) elem.removeClassName("Unread"); - + var upd_img_pic = $("FUPDPIC-" + id); - - if (upd_img_pic && (upd_img_pic.src.match("updated.png") || + + 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; - + var query = "?op=rpc&subop=catchupSelected" + "&cmode=0&ids=" + param_escape(id); - + new Ajax.Request("backend.php", { parameters: query, - onComplete: function(transport) { - handle_rpc_json(transport); + onComplete: function(transport) { + handle_rpc_json(transport); } }); return true; @@ -2021,7 +1969,7 @@ function hlClicked(event, id) { function getFirstVisibleHeadlineId() { var rows = getVisibleArticleIds(); return rows[0]; - + } function getLastVisibleHeadlineId() { @@ -2058,9 +2006,9 @@ function getRelativePostIds(id, limit) { try { if (!limit) limit = 3; - + var ids = getVisibleArticleIds(); - + for (var i = 0; i < ids.length; i++) { if (ids[i] == id) { for (var k = 1; k <= limit; k++) { @@ -2079,17 +2027,17 @@ function getRelativePostIds(id, limit) { } function correctHeadlinesOffset(id) { - + try { var container = $("headlines-frame"); var row = $("RROW-" + id); - + var viewport = container.offsetHeight; - + var rel_offset_top = row.offsetTop - container.scrollTop; var rel_offset_bottom = row.offsetTop + row.offsetHeight - container.scrollTop; - + //console.log("Rtop: " + rel_offset_top + " Rbtm: " + rel_offset_bottom); //console.log("Vport: " + viewport); @@ -2100,8 +2048,8 @@ function correctHeadlinesOffset(id) { /* doesn't properly work with Opera in some cases because Opera fucks up element scrolling */ - container.scrollTop = row.offsetTop + row.offsetHeight - viewport; - } + container.scrollTop = row.offsetTop + row.offsetHeight - viewport; + } } catch (e) { exception_error("correctHeadlinesOffset", e); @@ -2209,7 +2157,7 @@ function initHeadlinesMenu() { label: name, labelId: bare_id, onClick: function(event) { - selectionAssignLabel(this.labelId, + selectionAssignLabel(this.labelId, [this.getParent().ownerMenu.callerRowId]); }})); @@ -2217,7 +2165,7 @@ function initHeadlinesMenu() { label: name, labelId: bare_id, onClick: function(event) { - selectionRemoveLabel(this.labelId, + selectionRemoveLabel(this.labelId, [this.getParent().ownerMenu.callerRowId]); }})); @@ -2255,14 +2203,14 @@ function tweetArticle(id) { "status=0,toolbar=0,location=0,width=500,height=400,scrollbars=1,menubar=0"); new Ajax.Request("backend.php", { - parameters: query, + parameters: query, onComplete: function(transport) { var ti = JSON.parse(transport.responseText); var share_url = "http://twitter.com/share?_=" + ts + - "&text=" + param_escape(ti.title) + + "&text=" + param_escape(ti.title) + "&url=" + param_escape(ti.link); - + w.location.href = share_url; } }); @@ -2296,7 +2244,7 @@ function editArticleNote(id) { onComplete: function(transport) { notify(''); dialog.hide(); - + var reply = JSON.parse(transport.responseText); cache_invalidate(id); |