diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index b9967e77fd7a5b6740544d73f954c9c2a3ba92db..72a8344ad51d8b7c63b2874a3c162ca450a7b781 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 e17b8744d964fea8e07acd5f77f1dd4b252ce2f3..e0a2dd9329900aa40c548a60e161079fe0870f8a 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 f923b2ee1478a9910e48ab55de2f46f6310f268c..36c5aec9ff3c3519b89090c3fcb61ef2b3ea9a10 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 e512e8176d0a23e019f3fd0f6da86c0588fb4cc0..e39b7020ac1cdae8c9cd40899d759514082bbe0f 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 a19467c418f3230739172bc799b29e0e12cf09f9..b6c487b66563d4bc05d772ec39fff4860e818244 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 0206916aee9695425de40735b4805c488177589b..ec3006ce56e6c82109f3c4344eea1fd1146ea9a3 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 e2bd50142c7ce8e3aae89c9b9bf4c823853f3e33..5941fd8e16fbc08a23aec9c07785d67508b2a389 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 93027e8be4a245f581aa3208f2eec545e617da76..99bb191a214c31ed35ecb8786c0ca8f2a5e8e2f0 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 {