From e17079dcef4be49082353d71d21918f1722ff039 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 17 Aug 2015 12:33:07 +0300 Subject: [PATCH] make disabled filter rules easier to discern show if filter set match_any_rule on the overview --- classes/pref/filters.php | 8 ++++++-- css/dijit.css | 5 +++-- js/PrefFilterTree.js | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/classes/pref/filters.php b/classes/pref/filters.php index efa82afc2..a371fcff4 100644 --- a/classes/pref/filters.php +++ b/classes/pref/filters.php @@ -1070,20 +1070,22 @@ class Pref_Filters extends Handler_Protected { private function getFilterName($id) { $result = $this->dbh->query( - "SELECT title,COUNT(DISTINCT r.id) AS num_rules,COUNT(DISTINCT a.id) AS num_actions + "SELECT title,match_any_rule,COUNT(DISTINCT r.id) AS num_rules,COUNT(DISTINCT a.id) AS num_actions FROM ttrss_filters2 AS f LEFT JOIN ttrss_filters2_rules AS r ON (r.filter_id = f.id) LEFT JOIN ttrss_filters2_actions AS a - ON (a.filter_id = f.id) WHERE f.id = '$id' GROUP BY f.title"); + ON (a.filter_id = f.id) WHERE f.id = '$id' GROUP BY f.title, f.match_any_rule"); $title = $this->dbh->fetch_result($result, 0, "title"); $num_rules = $this->dbh->fetch_result($result, 0, "num_rules"); $num_actions = $this->dbh->fetch_result($result, 0, "num_actions"); + $match_any_rule = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "match_any_rule")); if (!$title) $title = __("[No caption]"); $title = sprintf(_ngettext("%s (%d rule)", "%s (%d rules)", $num_rules), $title, $num_rules); + $result = $this->dbh->query( "SELECT * FROM ttrss_filters2_actions WHERE filter_id = '$id' ORDER BY id LIMIT 1"); @@ -1096,6 +1098,8 @@ class Pref_Filters extends Handler_Protected { $num_actions -= 1; } + if ($match_any_rule) $title .= " (" . __("matches any rule") . ")"; + if ($num_actions > 0) $actions = sprintf(_ngettext("%s (+%d action)", "%s (+%d actions)", $num_actions), $actions, $num_actions); diff --git a/css/dijit.css b/css/dijit.css index 06c2bffd2..d5dfb7489 100644 --- a/css/dijit.css +++ b/css/dijit.css @@ -42,9 +42,10 @@ margin-right : 1em; } -.claro .dijitTree .dijitTreeLabel.Disabled, -.claro .dijitTree .labelParam.Disabled { +.claro .dijitTree .dijitTreeLabel.filterDisabled, +.claro .dijitTree .labelParam.filterDisabled { color : #555; + text-decoration: line-through; } .claro .dijitTreeRow.Error { diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js index 7a561c55b..ba06bbef4 100644 --- a/js/PrefFilterTree.js +++ b/js/PrefFilterTree.js @@ -28,7 +28,7 @@ dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, { if (param) { param = dojo.doc.createElement('span'); - param.className = (enabled != false) ? 'labelParam' : 'labelParam Disabled'; + param.className = (enabled != false) ? 'labelParam' : 'labelParam filterDisabled'; param.innerHTML = args.item.param[0]; dojo.place(param, tnode.rowNode, 'first'); } @@ -74,7 +74,7 @@ dojo.declare("fox.PrefFilterTree", lib.CheckBoxTree, { }, getLabelClass: function (item, opened) { var enabled = this.model.store.getValue(item, 'enabled'); - return (enabled != false) ? "dijitTreeLabel labelFixedLength" : "dijitTreeLabel labelFixedLength Disabled"; + return (enabled != false) ? "dijitTreeLabel labelFixedLength" : "dijitTreeLabel labelFixedLength filterDisabled"; }, getRowClass: function (item, opened) { return (!item.error || item.error == '') ? "dijitTreeRow" :