From 4e74da590ee935c2187dd02f6c2b312680065f13 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 28 Feb 2020 08:03:25 +0300 Subject: [PATCH] af_readability: allow get full text button to work as a toggle; in cdm, scroll to article after embedding --- include/functions.php | 4 ++-- js/tt-rss.js | 2 +- plugins/af_readability/init.js | 22 +++++++++++++++++++--- plugins/af_readability/init.php | 2 +- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/include/functions.php b/include/functions.php index 5405dac6e..3e37d1d28 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1053,7 +1053,7 @@ "close_article" => __("Close/collapse article"), "toggle_expand" => __("Toggle article expansion (combined mode)"), "toggle_widescreen" => __("Toggle widescreen mode"), - "embed_full_text" => __("Get full article text via Readability")), + "toggle_full_text" => __("Toggle full article text via Readability")), __("Article selection") => array( "select_all" => __("Select all articles"), "select_unread" => __("Select unread"), @@ -1124,7 +1124,7 @@ "N" => "article_scroll_down", "P" => "article_scroll_up", "a W" => "toggle_widescreen", - "a e" => "embed_full_text", + "a e" => "toggle_full_text", "e" => "email_article", "a q" => "close_article", "a a" => "select_all", diff --git a/js/tt-rss.js b/js/tt-rss.js index 73790e295..d45dd5748 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -476,7 +476,7 @@ require(["dojo/_base/kernel", this.hotkey_actions["collapse_sidebar"] = function () { Feeds.toggle(); }; - this.hotkey_actions["embed_full_text"] = function () { + this.hotkey_actions["toggle_full_text"] = function () { if (typeof Plugins.Af_Readability != "undefined") { if (Article.getActive()) Plugins.Af_Readability.embed(Article.getActive()); diff --git a/plugins/af_readability/init.js b/plugins/af_readability/init.js index fd603cbf1..644dff9fe 100644 --- a/plugins/af_readability/init.js +++ b/plugins/af_readability/init.js @@ -1,16 +1,32 @@ Plugins.Af_Readability = { + orig_attr_name: 'data-readability-orig-content', + self: this, embed: function(id) { + const content = $$(App.isCombinedMode() ? ".cdm[data-article-id=" + id + "] .content-inner" : + ".post[data-article-id=" + id + "] .content")[0]; + + if (content.hasAttribute(self.orig_attr_name)) { + content.innerHTML = content.getAttribute(self.orig_attr_name); + content.removeAttribute(self.orig_attr_name); + + if (App.isCombinedMode()) Article.cdmScrollToId(id); + + return; + } + Notify.progress("Loading, please wait..."); xhrJson("backend.php",{ op: "pluginhandler", plugin: "af_readability", method: "embed", param: id }, (reply) => { - const content = $$(App.isCombinedMode() ? ".cdm[data-article-id=" + id + "] .content-inner" : - ".post[data-article-id=" + id + "] .content")[0]; if (content && reply.content) { + content.setAttribute(self.orig_attr_name, content.innerHTML); content.innerHTML = reply.content; Notify.close(); + + if (App.isCombinedMode()) Article.cdmScrollToId(id); + } else { - Notify.error("Unable to fetch content for this article"); + Notify.error("Unable to fetch full text for this article"); } }); } diff --git a/plugins/af_readability/init.php b/plugins/af_readability/init.php index ef7809d3f..9c62a4772 100755 --- a/plugins/af_readability/init.php +++ b/plugins/af_readability/init.php @@ -53,7 +53,7 @@ class Af_Readability extends Plugin { function hook_article_button($line) { return "description"; + style='cursor : pointer' title='".__('Toggle full article text')."'>description"; } function hook_prefs_tab($args) {