summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-12-01 01:03:01 +0300
committerAndrew Dolgov <[email protected]>2018-12-01 01:03:01 +0300
commit5aa9c604943cbb93f4d401914dafeedfddb0007e (patch)
treeb3daedc6303f1cf6b9f6eeb20a03ba00dc0f2665 /js
parent1702ecf7ea7f80fd7295c01cab3502c47cb72b45 (diff)
bring back (debloated) version of unexpanded combined mode
Diffstat (limited to 'js')
-rw-r--r--js/tt-rss.js20
-rwxr-xr-xjs/viewfeed.js37
2 files changed, 49 insertions, 8 deletions
diff --git a/js/tt-rss.js b/js/tt-rss.js
index fca9dac19..e29580c8a 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -335,7 +335,11 @@ function init_hotkey_actions() {
scrollArticle(-40);
};
hotkey_actions["close_article"] = function() {
- closeArticlePanel();
+ if (isCdmMode()) {
+ cdmCollapseActive();
+ } else {
+ closeArticlePanel();
+ }
};
hotkey_actions["email_article"] = function() {
if (typeof emailArticle != "undefined") {
@@ -501,6 +505,20 @@ function init_hotkey_actions() {
viewCurrentFeed();
})
};
+ hotkey_actions["toggle_cdm_expanded"] = function() {
+ notify_progress("Loading, please wait...");
+
+ const value = getInitParam("cdm_expanded") ? "false" : "true";
+ const query = "?op=rpc&method=setpref&key=CDM_EXPANDED&value=" + value;
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ setInitParam("cdm_expanded", !getInitParam("cdm_expanded"));
+ viewCurrentFeed();
+ } });
+ };
+
}
function init_second_stage() {
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 347c38938..075b14169 100755
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -535,8 +535,8 @@ function moveToPost(mode, noscroll, noexpand) {
scrollArticle(ctr.offsetHeight/4);
} else if (next_id) {
- cdmScrollToArticleId(next_id, true);
setActiveArticleId(next_id);
+ cdmScrollToArticleId(next_id, true);
}
} else if (next_id) {
@@ -560,8 +560,8 @@ function moveToPost(mode, noscroll, noexpand) {
prev_article.offsetTop < ctr.scrollTop) {
scrollArticle(-ctr.offsetHeight/4);
} else if (prev_id) {
- cdmScrollToArticleId(prev_id, noscroll);
setActiveArticleId(prev_id);
+ cdmScrollToArticleId(prev_id, noscroll);
}
} else if (prev_id) {
@@ -1162,8 +1162,8 @@ function unpackVisibleHeadlines() {
PluginHost.run(PluginHost.HOOK_ARTICLE_RENDERED_CDM, row);
// i wonder if this is a good idea?
- if (!getActiveArticleId() && !row.hasClassName("Unread"))
- setActiveArticleId(row.getAttribute("data-article-id"));
+ //if (!getActiveArticleId() && !row.hasClassName("Unread"))
+ // setActiveArticleId(row.getAttribute("data-article-id"));
} else {
break;
@@ -1184,7 +1184,7 @@ function headlines_scroll_handler(e) {
unpackVisibleHeadlines();
// set topmost child in the buffer as active
- if (isCdmMode() && getInitParam("cdm_auto_catchup") == 1) {
+ if (isCdmMode() && getInitParam("cdm_expanded") && getInitParam("cdm_auto_catchup") == 1) {
const rows = $$("#headlines-frame > div[id*=RROW]");
@@ -1400,12 +1400,16 @@ function show_labels_in_headlines(transport) {
}
function cdmClicked(event, id, in_body) {
- if (event.ctrlKey && !in_body || !in_body) {
+
+ if (!in_body && (event.ctrlKey || id == getActiveArticleId() || getInitParam("cdm_expanded"))) {
openArticleInNewWindow(id);
}
setActiveArticleId(id);
+ if (!getInitParam("cdm_expanded"))
+ cdmScrollToArticleId(id);
+
//var shift_key = event.shiftKey;
/* if (!event.ctrlKey && !event.metaKey) {
@@ -1563,6 +1567,25 @@ function headlineActionsChange(elem) {
elem.attr('value', 'false');
}
+function cdmCollapseActive(event) {
+ const row = $("RROW-" + getActiveArticleId());
+
+ if (row) {
+ row.removeClassName("active");
+ const cb = dijit.getEnclosingWidget(row.select(".rchk")[0]);
+
+ if (cb && !row.hasClassName("Selected"))
+ cb.attr("checked", false);
+
+ setActiveArticleId(0);
+
+ if (event)
+ event.stopPropagation();
+
+ return false;
+ }
+}
+
function closeArticlePanel() {
if (dijit.byId("content-insert"))
dijit.byId("headlines-wrap-inner").removeChild(
@@ -1880,7 +1903,7 @@ function scrollToRowId(id) {
}
function updateFloatingTitle(unread_only) {
- if (!isCdmMode()) return;
+ if (!isCdmMode() || !getInitParam("cdm_expanded")) return;
const hf = $("headlines-frame");
const elems = $$("#headlines-frame > div[id*=RROW]");