summaryrefslogtreecommitdiff
path: root/viewfeed.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-09 20:57:23 +0300
committerAndrew Dolgov <[email protected]>2010-11-09 20:57:23 +0300
commitdad14b513d3e9bab376d3691043c49a99d6db0a4 (patch)
treeee3d5d2cb44a041af05ea378763d2c3788a37ef5 /viewfeed.js
parent24e2bb3a9254f8f4f3ea72ec27a189dbca5f891d (diff)
refactor combined mode, code cleanup
Diffstat (limited to 'viewfeed.js')
-rw-r--r--viewfeed.js90
1 files changed, 49 insertions, 41 deletions
diff --git a/viewfeed.js b/viewfeed.js
index 1a40c9649..d12e95380 100644
--- a/viewfeed.js
+++ b/viewfeed.js
@@ -765,12 +765,8 @@ function moveToPost(mode) {
if (next_id) {
if (isCdmMode()) {
- if (!cdmArticleIsActuallyVisible(next_id)) {
- cdmScrollToArticleId(next_id);
- }
- cdmSelectArticles("none");
- toggleUnread(next_id, 0, true);
- toggleSelected(next_id);
+ cdmExpandArticle(next_id);
+ cdmScrollToArticleId(next_id);
} else {
correctHeadlinesOffset(next_id);
@@ -782,10 +778,8 @@ function moveToPost(mode) {
if (mode == "prev") {
if (prev_id) {
if (isCdmMode()) {
+ cdmExpandArticle(prev_id);
cdmScrollToArticleId(prev_id);
- cdmSelectArticles("none");
- toggleUnread(prev_id, 0, true);
- toggleSelected(prev_id);
} else {
correctHeadlinesOffset(prev_id);
view(prev_id, getActiveFeedId());
@@ -1886,24 +1880,6 @@ function getActiveArticleId() {
return active_post_id;
}
-function cdmClicked(id) {
- try {
- var elem = $("RROW-" + id);
-
- if (elem) {
- var id = elem.id.replace("RROW-", "");
- active_post_id = id;
-
-// cdmSelectArticles("none");
- toggleUnread(id, 0, true);
-// toggleSelected(id);
-
- }
- } catch (e) {
- exception_error("cdmClicked", e);
- }
-}
-
function preloadArticleUnderPointer(id) {
try {
if (getInitParam("bw_limit") == "1") return;
@@ -1978,8 +1954,8 @@ function headlines_scroll_handler() {
var toolbar_form = document.forms["main_toolbar_form"];
- console.log((e.scrollTop + e.offsetHeight) + " vs " + e.scrollHeight + " dis? " +
- _infscroll_disable);
+// console.log((e.scrollTop + e.offsetHeight) + " vs " + e.scrollHeight + " dis? " +
+// _infscroll_disable);
if (e.scrollTop + e.offsetHeight > e.scrollHeight - 100) {
if (!_infscroll_disable) {
@@ -2068,28 +2044,47 @@ function catchupRelativeToArticle(below) {
}
}
-function cdmExpandArticle(a_id) {
+function cdmExpandArticle(id) {
try {
- var id = 'CICD-' + a_id;
- try {
- Element.hide("CEXC-" + a_id);
- } catch (e) { }
+ var elem = $("CICD-" + active_post_id);
- Effect.Appear(id, {duration : 0.5,
- beforeStart: function(effect) {
- var h_id = 'CICH-' + a_id;
- var h_elem = $(h_id);
- if (h_elem) { h_elem.style.display = "none"; }
+ if (id == active_post_id && Element.visible(elem))
+ return true;
+
+ cdmSelectArticles("none");
+
+ var old_offset = $("RROW-" + id).offsetTop;
+
+ if (active_post_id && elem) {
+ Element.hide(elem);
+ Element.show("CEXC-" + active_post_id);
+ }
- toggleUnread(a_id, 0);
- }});
+ active_post_id = id;
+ elem = $("CICD-" + id);
+
+ if (!Element.visible(elem)) {
+ Element.show(elem);
+ Element.hide("CEXC-" + id);
+ }
+
+ var new_offset = $("RROW-" + id).offsetTop;
+
+ $("headlinesInnerContainer").scrollTop += (new_offset-old_offset);
+
+ if ($("RROW-" + id).offsetTop != old_offset)
+ $("headlinesInnerContainer").scrollTop = new_offset;
+
+ toggleUnread(id, 0, true);
+ toggleSelected(id);
} catch (e) {
exception_error("cdmExpandArticle", e);
}
+ return false;
}
function fixHeadlinesOrder(ids) {
@@ -2358,3 +2353,16 @@ function emailArticleDo() {
exception_error("emailArticleDo", e);
}
}
+
+function cdmDismissArticle(id) {
+ try {
+ var elem = $("RROW-" + id);
+
+ toggleUnread(id, 0, true);
+
+ new Effect.Fade(elem, {duration : 0.5});
+
+ } catch (e) {
+ exception_error("cdmDismissArticle", e);
+ }
+}