diff options
| -rw-r--r-- | classes/Pref_Filters.php | 3 | ||||
| -rw-r--r-- | js/PrefFilterTree.js | 6 |
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) { |