use server-side localized formatting for matching rule to display as a tooltip (for now)
This commit is contained in:
@@ -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<string, mixed>|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 "<span class='filterRule $inverse'>" .
|
||||
T_sprintf("%s on %s in %s %s", htmlspecialchars($rule["reg_exp"]),
|
||||
"<span class='field'>$filter_type</span>", "<span class='feed'>$feed</span>", isset($rule["inverse"]) ? __("(inverse)") : "") . "</span>";
|
||||
}
|
||||
if ($format === 'html')
|
||||
return "<span class='filterRule $inverse'>" .
|
||||
T_sprintf("%s on %s in %s %s", htmlspecialchars($rule["reg_exp"]),
|
||||
"<span class='field'>$filter_type</span>", "<span class='feed'>$feed</span>", isset($rule["inverse"]) ? __("(inverse)") : "") . "</span>";
|
||||
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));
|
||||
|
||||
@@ -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 + `<li title="${App.escapeHtml(dialog.formatMatchedRules(item.rules))}"><span class='title'>${item.title}</span>
|
||||
results_list.innerHTML += result.items.reduce((current, item) => current + `<li title="${App.escapeHtml(item.rules.join('\n'))}"><span class='title'>${item.title}</span>
|
||||
— <span class='feed'>${item.feed_title}</span>, <span class='date'>${item.date}</span>
|
||||
<div class='preview text-muted'>${item.content_preview}</div></li>`, '');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user