summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwn_ <invalid@email.com>2025-01-06 16:04:27 +0000
committerwn_ <invalid@email.com>2025-01-06 16:04:27 +0000
commit5a93056c1c0e15eb3fcd8a222cb265cc363fb3a9 (patch)
tree1c99774820b5a61ee63e937081b9b280a988cde0
parente546e739146dbeabd2d35dba5dbe2cb50e2f5f76 (diff)
Fix setting a custom title when cloning a single filter.
-rw-r--r--classes/Pref_Filters.php3
-rw-r--r--js/PrefFilterTree.js6
2 files changed, 5 insertions, 4 deletions
diff --git a/classes/Pref_Filters.php b/classes/Pref_Filters.php
index 665693d81..28de1ab82 100644
--- a/classes/Pref_Filters.php
+++ b/classes/Pref_Filters.php
@@ -655,6 +655,7 @@ class Pref_Filters extends Handler_Protected {
function clone(): void {
/** @var array<int, int> */
$src_filter_ids = array_map('intval', array_filter(explode(',', clean($_REQUEST['ids'] ?? ''))));
+ $new_filter_title = count($src_filter_ids) === 1 ? clean($_REQUEST['new_filter_title'] ?? null) : null;
$src_filters = ORM::for_table('ttrss_filters2')
->where('owner_uid', $_SESSION['uid'])
@@ -665,7 +666,7 @@ class Pref_Filters extends Handler_Protected {
// see checkbox_to_sql_bool() for 0+1 justification
$this->add([
'src_filter_id' => $src_filter->id,
- 'title' => sprintf(__('Clone of %s'), $src_filter->title),
+ 'title' => $new_filter_title ?? sprintf(__('Clone of %s'), $src_filter->title),
'enabled' => 0,
'match_any_rule' => $src_filter->match_any_rule ? 1 : 0,
'inverse' => $src_filter->inverse ? 1 : 0,
diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js
index 288826202..e63dd5797 100644
--- a/js/PrefFilterTree.js
+++ b/js/PrefFilterTree.js
@@ -176,11 +176,11 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio
if (sel_rows.length === 1) {
const selected_filter = this.model.getCheckedItems()[0];
- const new_title = prompt(__("Name for new filter:"),
+ const new_filter_title = prompt(__("Name for new filter:"),
__("Clone of %s").replace("%s", this.model.store.getValue(selected_filter, "bare_name")));
- if (new_title) {
- query.new_title = new_title;
+ if (new_filter_title) {
+ query.new_filter_title = new_filter_title;
proceed = true;
}
} else if (sel_rows.length > 1) {