]> git.wh0rd.org - tt-rss.git/blobdiff - js/viewfeed.js
Merge pull request #134 from sunjayc99/master
[tt-rss.git] / js / viewfeed.js
index 76f9bbaeed74d2076c9759da8e544f1fbb721e34..db1a4bf94c982bba1c9eb1b8f2a93853876c6db3 100644 (file)
@@ -241,7 +241,7 @@ function render_article(article) {
        }
 }
 
-function showArticleInHeadlines(id) {
+function showArticleInHeadlines(id, noexpand) {
 
        try {
                selectArticles("none");
@@ -252,7 +252,8 @@ function showArticleInHeadlines(id) {
 
                var article_is_unread = crow.hasClassName("Unread");
 
-               crow.removeClassName("Unread");
+               if (!noexpand)
+                       crow.removeClassName("Unread");
                crow.addClassName("active");
 
                selectArticles('none');
@@ -268,7 +269,7 @@ function showArticleInHeadlines(id) {
 
                markHeadline(id);
 
-               if (article_is_unread)
+               if (article_is_unread && !noexpand)
                        _force_scheduled_update = true;
 
        } catch (e) {
@@ -336,7 +337,7 @@ function article_callback2(transport, id) {
        }
 }
 
-function view(id) {
+function view(id, activefeed, noexpand) {
        try {
                var oldrow = $("RROW-" + getActiveArticleId());
                if (oldrow) oldrow.removeClassName("active");
@@ -344,6 +345,11 @@ function view(id) {
                var crow = $("RROW-" + id);
 
                if (!crow) return;
+               if (noexpand) {
+                       setActiveArticleId(id);
+                       showArticleInHeadlines(id, noexpand);
+                       return;
+               }
 
                console.log("loading article: " + id);
 
@@ -499,7 +505,7 @@ function togglePub(id, client_only, no_effects, note) {
        }
 }
 
-function moveToPost(mode, noscroll) {
+function moveToPost(mode, noscroll, noexpand) {
 
        try {
 
@@ -546,13 +552,13 @@ function moveToPost(mode, noscroll) {
                                                scrollArticle(ctr.offsetHeight/4);
 
                                        } else if (next_id) {
-                                               cdmExpandArticle(next_id);
+                                               cdmExpandArticle(next_id, noexpand);
                                                cdmScrollToArticleId(next_id, true);
                                        }
 
                                } else if (next_id) {
                                        correctHeadlinesOffset(next_id);
-                                       view(next_id, getActiveFeedId());
+                                       view(next_id, getActiveFeedId(), noexpand);
                                }
                        }
                }
@@ -570,7 +576,7 @@ function moveToPost(mode, noscroll) {
                                                if (!noscroll && article.offsetTop < ctr.scrollTop) {
                                                        scrollArticle(-ctr.offsetHeight/4);
                                                } else {
-                                                       cdmExpandArticle(prev_id);
+                                                       cdmExpandArticle(prev_id, noexpand);
                                                        cdmScrollToArticleId(prev_id, true);
                                                }
                                        } else {
@@ -579,17 +585,17 @@ function moveToPost(mode, noscroll) {
                                                        scrollArticle(-ctr.offsetHeight/3);
                                                } else if (!noscroll && prev_article &&
                                                                prev_article.offsetTop < ctr.scrollTop) {
-                                                       cdmExpandArticle(prev_id);
+                                                       cdmExpandArticle(prev_id, noexpand);
                                                        scrollArticle(-ctr.offsetHeight/4);
                                                } else if (prev_id) {
-                                                       cdmExpandArticle(prev_id);
+                                                       cdmExpandArticle(prev_id, noexpand);
                                                        cdmScrollToArticleId(prev_id, noscroll);
                                                }
                                        }
 
                                } else if (prev_id) {
                                        correctHeadlinesOffset(prev_id);
-                                       view(prev_id, getActiveFeedId());
+                                       view(prev_id, getActiveFeedId(), noexpand);
                                }
                        }
                }
@@ -1375,7 +1381,28 @@ function cdmCollapseArticle(event, id) {
        }
 }
 
-function cdmExpandArticle(id) {
+function cdmUnexpandArticle(event, id) {
+       try {
+               var row = $("RROW-" + id);
+               var elem = $("CICD-" + id);
+
+               if (elem && row) {
+                       var collapse = $$("div#RROW-" + id +
+                               " span[class='collapseBtn']")[0];
+
+                       Element.hide(elem);
+                       Element.show("CEXC-" + id);
+                       Element.hide(collapse);
+
+                       if (event) Event.stop(event);
+               }
+
+       } catch (e) {
+               exception_error("cdmUnexpandArticle", e);
+       }
+}
+
+function cdmExpandArticle(id, noexpand) {
        try {
                console.log("cdmExpandArticle " + id);
 
@@ -1412,7 +1439,7 @@ function cdmExpandArticle(id) {
 
                var cencw = $("CENCW-" + id);
 
-               if (!Element.visible(elem)) {
+               if (!Element.visible(elem) && !noexpand) {
                        if (cencw) {
                                cencw.innerHTML = htmlspecialchars_decode(cencw.innerHTML);
                                cencw.setAttribute('id', '');
@@ -1429,7 +1456,8 @@ function cdmExpandArticle(id) {
                if (old_offset > new_offset)
                        $("headlines-frame").scrollTop -= (old_offset-new_offset);
 
-               toggleUnread(id, 0, true);
+               if (!noexpand)
+                       toggleUnread(id, 0, true);
                toggleSelected(id);
                $("RROW-" + id).addClassName("active");