mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-15 21:55:56 +00:00
Added functionality for navigation without opening articles and toggling expansion of headlines
This commit is contained in:
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user