From d4c925819b9d85a00520e413a90cfbcd61a1c667 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov <noreply@fakecake.org> Date: Sat, 13 Feb 2021 23:12:49 +0300 Subject: [PATCH] pref-feeds: load error button via xhr --- classes/pref/feeds.php | 21 +++++---------------- js/PrefFeedTree.js | 7 +++++++ themes/compact.css | 2 +- themes/compact_night.css | 2 +- themes/light.css | 2 +- themes/light/prefs.less | 2 +- themes/night.css | 2 +- themes/night_blue.css | 2 +- 8 files changed, 18 insertions(+), 22 deletions(-) diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index b9967e77f..72a8344ad 100755 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -1198,22 +1198,10 @@ class Pref_Feeds extends Handler_Protected { } private function index_feeds() { - $sth = $this->pdo->prepare("SELECT COUNT(id) AS num_errors - FROM ttrss_feeds WHERE last_error != '' AND owner_uid = ?"); - $sth->execute([$_SESSION['uid']]); - - if ($row = $sth->fetch()) { - $num_errors = $row["num_errors"]; - } else { - $num_errors = 0; - } - - if ($num_errors > 0) { - $error_button = "<button dojoType='dijit.form.Button' onclick='CommonDialogs.showFeedsWithErrors()' id='errorButton'>". - __("Feeds with errors")."</button>"; - } else { - $error_button = ""; - } + $error_button = "<button dojoType='dijit.form.Button' + id='pref_feeds_errors_btn' style='display : none' + onclick='CommonDialogs.showFeedsWithErrors()'>". + __("Feeds with errors")."</button>"; $inactive_button = "<button dojoType='dijit.form.Button' id='pref_feeds_inactive_btn' @@ -1311,6 +1299,7 @@ class Pref_Feeds extends Handler_Protected { </script> <script type="dojo/method" event="onLoad" args="item"> dijit.byId('feedTree').checkInactiveFeeds(); + dijit.byId('feedTree').checkErrorFeeds(); </script> </div> </div> diff --git a/js/PrefFeedTree.js b/js/PrefFeedTree.js index e17b8744d..e0a2dd932 100644 --- a/js/PrefFeedTree.js +++ b/js/PrefFeedTree.js @@ -209,6 +209,13 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dojo/_b return false; }, + checkErrorFeeds: function() { + xhrJson("backend.php", {op: "pref-feeds", method: "feedsWithErrors"}, (reply) => { + if (reply.length > 0) { + Element.show(dijit.byId("pref_feeds_errors_btn").domNode); + } + }); + }, checkInactiveFeeds: function() { xhrJson("backend.php", {op: "pref-feeds", method: "inactivefeeds"}, (reply) => { if (reply.length > 0) { diff --git a/themes/compact.css b/themes/compact.css index f923b2ee1..36c5aec9f 100644 --- a/themes/compact.css +++ b/themes/compact.css @@ -1456,7 +1456,7 @@ body.ttrss_prefs #feedsTab { body.ttrss_prefs .dijitDialog #pref-profiles-list .dijitInlineEditBoxDisplayMode { padding: 0px; } -body.ttrss_prefs #errorButton { +body.ttrss_prefs #pref_feeds_errors_btn { color: red; } body.ttrss_prefs .user-css-editor { diff --git a/themes/compact_night.css b/themes/compact_night.css index e512e8176..e39b7020a 100644 --- a/themes/compact_night.css +++ b/themes/compact_night.css @@ -1456,7 +1456,7 @@ body.ttrss_prefs #feedsTab { body.ttrss_prefs .dijitDialog #pref-profiles-list .dijitInlineEditBoxDisplayMode { padding: 0px; } -body.ttrss_prefs #errorButton { +body.ttrss_prefs #pref_feeds_errors_btn { color: red; } body.ttrss_prefs .user-css-editor { diff --git a/themes/light.css b/themes/light.css index a19467c41..b6c487b66 100644 --- a/themes/light.css +++ b/themes/light.css @@ -1456,7 +1456,7 @@ body.ttrss_prefs #feedsTab { body.ttrss_prefs .dijitDialog #pref-profiles-list .dijitInlineEditBoxDisplayMode { padding: 0px; } -body.ttrss_prefs #errorButton { +body.ttrss_prefs #pref_feeds_errors_btn { color: red; } body.ttrss_prefs .user-css-editor { diff --git a/themes/light/prefs.less b/themes/light/prefs.less index 0206916ae..ec3006ce5 100644 --- a/themes/light/prefs.less +++ b/themes/light/prefs.less @@ -65,7 +65,7 @@ body.ttrss_prefs { padding : 0px; } - #errorButton { + #pref_feeds_errors_btn { color : red; } diff --git a/themes/night.css b/themes/night.css index e2bd50142..5941fd8e1 100644 --- a/themes/night.css +++ b/themes/night.css @@ -1457,7 +1457,7 @@ body.ttrss_prefs #feedsTab { body.ttrss_prefs .dijitDialog #pref-profiles-list .dijitInlineEditBoxDisplayMode { padding: 0px; } -body.ttrss_prefs #errorButton { +body.ttrss_prefs #pref_feeds_errors_btn { color: red; } body.ttrss_prefs .user-css-editor { diff --git a/themes/night_blue.css b/themes/night_blue.css index 93027e8be..99bb191a2 100644 --- a/themes/night_blue.css +++ b/themes/night_blue.css @@ -1457,7 +1457,7 @@ body.ttrss_prefs #feedsTab { body.ttrss_prefs .dijitDialog #pref-profiles-list .dijitInlineEditBoxDisplayMode { padding: 0px; } -body.ttrss_prefs #errorButton { +body.ttrss_prefs #pref_feeds_errors_btn { color: red; } body.ttrss_prefs .user-css-editor { -- GitLab