From d2f3467bb6c0c42ef0e0d20ac975988efacb22e2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 25 Mar 2013 16:08:20 +0400 Subject: add a simple appearing preview for unexpanded cdm and normal mode --- js/viewfeed.js | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'js/viewfeed.js') diff --git a/js/viewfeed.js b/js/viewfeed.js index a5d0947bd..0e2e9e3fa 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -13,6 +13,8 @@ var catchup_timeout_id = false; var cids_requested = []; var loaded_article_ids = []; +var _post_preview_timeout = false; + var has_storage = 'sessionStorage' in window && window['sessionStorage'] !== null; function headlines_callback2(transport, offset, background, infscroll_req) { @@ -1166,12 +1168,54 @@ function getActiveArticleId() { return _active_article_id; } -function postMouseIn(id) { +function postMouseIn(e, id) { post_under_pointer = id; + + if (_post_preview_timeout) window.clearTimeout(_post_preview_timeout); + + if (!getInitParam("cdm_expanded")) { + _post_preview_timeout = window.setTimeout(function() { + displaySmallArticlePreview(e, id); + }, 1000); + } +} + +function displaySmallArticlePreview(e, id) { + try { + var query = "?op=rpc&method=cdmarticlepreview&id=" + id; + + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + cexc = $("CEXC-" + id); + preview = $("small_article_preview"); + row = $("RROW-" + id); + + if (id != getActiveArticleId() && (!isCdmMode() || (cexc && Element.visible(cexc))) && row && preview) { + preview.innerHTML = transport.responseText; + new Effect.Appear(preview, {duration:0.2}); + + preview.setStyle({ + left: (e.clientX + 20) + 'px', + top: (Element.cumulativeOffset(row)[1] + row.offsetHeight + 10) + 'px' }); + + } + + } }); + + + } catch (e) { + exception_error("displaySmallArticlePreview", e); + } } function postMouseOut(id) { post_under_pointer = false; + + if (_post_preview_timeout) window.clearTimeout(_post_preview_timeout); + + if (Element.visible("small_article_preview")) + Element.hide("small_article_preview"); } function unpackVisibleHeadlines() { -- cgit v1.2.3