From 2d041f7d28ce555bffaf1b99eea5d0199e8a3c29 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 30 Mar 2025 20:41:50 +0300 Subject: use server-side localized formatting for matching rule to display as a tooltip (for now) --- classes/Pref_Filters.php | 20 ++++++++++---------- js/CommonFilters.js | 5 +---- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/classes/Pref_Filters.php b/classes/Pref_Filters.php index d5844b902..a6063d898 100644 --- a/classes/Pref_Filters.php +++ b/classes/Pref_Filters.php @@ -95,7 +95,6 @@ class Pref_Filters extends Handler_Protected { if (is_array($rule)) { $rule['type'] = $filter_types[$rule['filter_type']]; - unset($rule['filter_type']); array_push($filter['rules'], $rule); $scope_inner_qparts = []; @@ -185,10 +184,7 @@ class Pref_Filters extends Handler_Protected { $matches[] = $rule_regexp_match; - $rules[] = [ - 'reg_exp' => $rule['reg_exp'], - 'type' => $rule['type'] - ]; + $rules[] = self::_get_rule_name($rule, ''); if (in_array($rule['type'], ['content', 'both'])) { // also stripping [\r\n\t] to match what's done for content in RSSUtils#get_article_filters() @@ -452,7 +448,7 @@ class Pref_Filters extends Handler_Protected { /** * @param array|null $rule */ - private function _get_rule_name(?array $rule = null): string { + private function _get_rule_name(?array $rule = null, string $format = 'html'): string { if (!$rule) $rule = json_decode(clean($_REQUEST["rule"]), true); $feeds = $rule["feed_id"]; @@ -487,10 +483,14 @@ class Pref_Filters extends Handler_Protected { $inverse = isset($rule["inverse"]) ? "inverse" : ""; - return "" . - T_sprintf("%s on %s in %s %s", htmlspecialchars($rule["reg_exp"]), - "$filter_type", "$feed", isset($rule["inverse"]) ? __("(inverse)") : "") . ""; - } + if ($format === 'html') + return "" . + T_sprintf("%s on %s in %s %s", htmlspecialchars($rule["reg_exp"]), + "$filter_type", "$feed", isset($rule["inverse"]) ? __("(inverse)") : "") . ""; + else + return T_sprintf("%s on %s in %s %s", $rule["reg_exp"], + $filter_type, $feed, isset($rule["inverse"]) ? __("(inverse)") : ""); + } function printRuleName(): void { print $this->_get_rule_name(json_decode(clean($_REQUEST["rule"]), true)); diff --git a/js/CommonFilters.js b/js/CommonFilters.js index ce871a2af..9c0fc5cce 100644 --- a/js/CommonFilters.js +++ b/js/CommonFilters.js @@ -19,9 +19,6 @@ const Filters = { ACTION_REMOVE_TAG: 10, PARAM_ACTIONS: [4, 6, 7, 9, 10], filter_info: {}, - formatMatchedRules: function(rules) { - return rules.map((r) => r.reg_exp + ' (' + r.type + ')').join('\n'); - }, test: function() { const test_dialog = new fox.SingleUseDialog({ title: "Test Filter", @@ -46,7 +43,7 @@ const Filters = { .replace("%f", test_dialog.results) .replace("%d", offset); - results_list.innerHTML += result.items.reduce((current, item) => current + `
  • ${item.title} + results_list.innerHTML += result.items.reduce((current, item) => current + `
  • ${item.title}${item.feed_title}, ${item.date}
    ${item.content_preview}
  • `, ''); -- cgit v1.2.3-54-g00ecf