mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-15 14:35:58 +00:00
CDM mode: add article selection, rework moveToPost()
This commit is contained in:
18
functions.js
18
functions.js
@@ -274,13 +274,23 @@ function getVisibleHeadlineIds() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getFirstVisibleHeadlineId() {
|
function getFirstVisibleHeadlineId() {
|
||||||
var rows = getVisibleHeadlineIds();
|
if (isCdmMode()) {
|
||||||
return rows[0];
|
var rows = cdmGetVisibleArticles();
|
||||||
|
return rows[0];
|
||||||
|
} else {
|
||||||
|
var rows = getVisibleHeadlineIds();
|
||||||
|
return rows[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getLastVisibleHeadlineId() {
|
function getLastVisibleHeadlineId() {
|
||||||
var rows = getVisibleHeadlineIds();
|
if (isCdmMode()) {
|
||||||
return rows[rows.length-1];
|
var rows = cdmGetVisibleArticles();
|
||||||
|
return rows[rows.length-1];
|
||||||
|
} else {
|
||||||
|
var rows = getVisibleHeadlineIds();
|
||||||
|
return rows[rows.length-1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function markHeadline(id) {
|
function markHeadline(id) {
|
||||||
|
|||||||
@@ -5016,6 +5016,7 @@
|
|||||||
|
|
||||||
print "<div class=\"cdmArticle$add_class\"
|
print "<div class=\"cdmArticle$add_class\"
|
||||||
id=\"RROW-$id\" onmouseover='cdmMouseIn(this)'
|
id=\"RROW-$id\" onmouseover='cdmMouseIn(this)'
|
||||||
|
onclick='cdmClicked(this)'
|
||||||
onmouseout='cdmMouseOut(this)'>";
|
onmouseout='cdmMouseOut(this)'>";
|
||||||
|
|
||||||
print "<div class=\"cdmHeader\">";
|
print "<div class=\"cdmHeader\">";
|
||||||
|
|||||||
115
viewfeed.js
115
viewfeed.js
@@ -675,45 +675,68 @@ function moveToPost(mode) {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// check for combined mode
|
var rows;
|
||||||
if (document.getElementById("headlinesList")) {
|
|
||||||
|
if (isCdmMode()) {
|
||||||
var rows = getVisibleHeadlineIds();
|
rows = cdmGetVisibleArticles();
|
||||||
|
} else {
|
||||||
|
rows = getVisibleHeadlineIds();
|
||||||
|
}
|
||||||
|
|
||||||
var prev_id = false;
|
var prev_id = false;
|
||||||
var next_id = false;
|
var next_id = false;
|
||||||
|
|
||||||
if (!document.getElementById('RROW-' + active_post_id)) {
|
if (!document.getElementById('RROW-' + active_post_id)) {
|
||||||
active_post_id = false;
|
active_post_id = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (active_post_id == false) {
|
if (active_post_id == false) {
|
||||||
next_id = getFirstVisibleHeadlineId();
|
next_id = getFirstVisibleHeadlineId();
|
||||||
prev_id = getLastVisibleHeadlineId();
|
prev_id = getLastVisibleHeadlineId();
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < rows.length; i++) {
|
for (var i = 0; i < rows.length; i++) {
|
||||||
if (rows[i] == active_post_id) {
|
if (rows[i] == active_post_id) {
|
||||||
prev_id = rows[i-1];
|
prev_id = rows[i-1];
|
||||||
next_id = rows[i+1];
|
next_id = rows[i+1];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mode == "next") {
|
if (mode == "next") {
|
||||||
if (next_id) {
|
if (next_id) {
|
||||||
|
if (isCdmMode()) {
|
||||||
|
|
||||||
|
if (!cdmArticleIsActuallyVisible(next_id)) {
|
||||||
|
cdmScrollToArticleId(next_id);
|
||||||
|
}
|
||||||
|
cdmSelectArticles("none");
|
||||||
|
toggleUnread(next_id, 0, true);
|
||||||
|
toggleSelected(next_id);
|
||||||
|
|
||||||
|
} else {
|
||||||
correctHeadlinesOffset(next_id);
|
correctHeadlinesOffset(next_id);
|
||||||
view(next_id, getActiveFeedId());
|
view(next_id, getActiveFeedId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mode == "prev") {
|
if (mode == "prev") {
|
||||||
if (prev_id) {
|
if (prev_id) {
|
||||||
|
if (isCdmMode()) {
|
||||||
|
cdmScrollToArticleId(prev_id);
|
||||||
|
cdmSelectArticles("none");
|
||||||
|
toggleUnread(prev_id, 0, true);
|
||||||
|
toggleSelected(prev_id);
|
||||||
|
} else {
|
||||||
correctHeadlinesOffset(prev_id);
|
correctHeadlinesOffset(prev_id);
|
||||||
view(prev_id, getActiveFeedId());
|
view(prev_id, getActiveFeedId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
var rows = cdmGetUnreadArticles();
|
|
||||||
|
|
||||||
|
/* } else {
|
||||||
|
var rows = cdmGetVisibleArticles();
|
||||||
|
|
||||||
if (mode == "next") {
|
if (mode == "next") {
|
||||||
|
|
||||||
@@ -726,7 +749,9 @@ function moveToPost(mode) {
|
|||||||
cdmScrollToArticleId(rows[i]);
|
cdmScrollToArticleId(rows[i]);
|
||||||
}
|
}
|
||||||
//setTimeout("toggleUnread(" + rows[i] + ", undefined, true)", 500);
|
//setTimeout("toggleUnread(" + rows[i] + ", undefined, true)", 500);
|
||||||
|
cdmSelectArticles("none");
|
||||||
toggleUnread(rows[i], undefined, true);
|
toggleUnread(rows[i], undefined, true);
|
||||||
|
toggleSelected(rows[i]);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -743,15 +768,17 @@ function moveToPost(mode) {
|
|||||||
|
|
||||||
cdmScrollToArticleId(rows[i]);
|
cdmScrollToArticleId(rows[i]);
|
||||||
//setTimeout("toggleUnread(" + rows[i] + ", undefined, true)", 500);
|
//setTimeout("toggleUnread(" + rows[i] + ", undefined, true)", 500);
|
||||||
|
cdmSelectArticles("none");
|
||||||
toggleUnread(rows[i], undefined, true);
|
toggleUnread(rows[i], undefined, true);
|
||||||
|
cdmSelectArticleById(rows[i]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} */
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exception_error(e, "moveToPost");
|
exception_error(e, "moveToPost");
|
||||||
@@ -761,14 +788,26 @@ function moveToPost(mode) {
|
|||||||
function toggleSelected(id) {
|
function toggleSelected(id) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
var cb = document.getElementById("RCHK-" + id);
|
||||||
|
|
||||||
var row = document.getElementById("RROW-" + id);
|
var row = document.getElementById("RROW-" + id);
|
||||||
if (row) {
|
if (row) {
|
||||||
var nc = row.className;
|
var nc = row.className;
|
||||||
|
|
||||||
if (!nc.match("Selected")) {
|
if (!nc.match("Selected")) {
|
||||||
nc = nc + "Selected";
|
nc = nc + "Selected";
|
||||||
|
if (cb) {
|
||||||
|
cb.checked = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// In CDM basically last selected article == active article
|
||||||
|
if (isCdmMode()) active_post_id = id;
|
||||||
} else {
|
} else {
|
||||||
nc = nc.replace("Selected", "");
|
nc = nc.replace("Selected", "");
|
||||||
|
if (cb) {
|
||||||
|
cb.checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
row.className = nc;
|
row.className = nc;
|
||||||
@@ -1542,20 +1581,34 @@ function getActiveArticleId() {
|
|||||||
return active_post_id;
|
return active_post_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
function cdmMouseIn(elem) {
|
function cdmClicked(elem) {
|
||||||
try {
|
try {
|
||||||
|
if (elem.id && elem.id.match("RROW-")) {
|
||||||
|
var id = elem.id.replace("RROW-", "");
|
||||||
|
active_post_id = id;
|
||||||
|
|
||||||
|
cdmSelectArticles("none");
|
||||||
|
toggleSelected(id);
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
exception_error("cdmMouseIn", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cdmMouseIn(elem) {
|
||||||
|
/* try {
|
||||||
if (elem.id && elem.id.match("RROW-")) {
|
if (elem.id && elem.id.match("RROW-")) {
|
||||||
var id = elem.id.replace("RROW-", "");
|
var id = elem.id.replace("RROW-", "");
|
||||||
active_post_id = id;
|
active_post_id = id;
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exception_error("cdmMouseIn", e);
|
exception_error("cdmMouseIn", e);
|
||||||
}
|
} */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function cdmMouseOut(elem) {
|
function cdmMouseOut(elem) {
|
||||||
active_post_id = false;
|
//active_post_id = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function headlines_scroll_handler() {
|
function headlines_scroll_handler() {
|
||||||
|
|||||||
Reference in New Issue
Block a user