Go MAEDA wrote:
I think it would be even useful if it is possible to filter issues by attachment file description.
+1
Added "File description" to the Issues Filters.
I have attached a patch.
diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb
index 5ff0e5530..92da7ec2f 100644
--- a/app/models/issue_query.rb
+++ b/app/models/issue_query.rb
@@ -201,6 +201,10 @@ class IssueQuery < Query
"attachment",
:type => :text, :name => l(:label_attachment)
)
+ add_available_filter(
+ "attachment_description",
+ :type => :text, :name => l(:label_attachment_description)
+ )
if User.current.logged?
add_available_filter(
"watcher_id",
@@ -588,6 +592,23 @@ class IssueQuery < Query
end
end
+ def sql_for_attachment_description_field(field, operator, value)
+ cond_description = "a.description IS NOT NULL AND a.description <> ''"
+ c =
+ case operator
+ when '*', '!*'
+ (operator == '*' ? cond_description : "NOT (#{cond_description})")
+ when '~', '!~'
+ (operator == '~' ? '' : "#{cond_description} AND ") +
+ sql_contains('a.description', value.first, :match => (operator == '~'))
+ when '^', '$'
+ sql_contains('a.description', value.first, (operator == '^' ? :starts_with : :ends_with) => true)
+ else
+ '1=0'
+ end
+ "EXISTS (SELECT 1 FROM #{Attachment.table_name} a WHERE a.container_type = 'Issue' AND a.container_id = #{Issue.table_name}.id AND #{c})"
+ end
+
def sql_for_parent_id_field(field, operator, value)
case operator
when "="
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 9d779a2fe..cf91a0447 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -698,6 +698,7 @@ en:
label_attachment_delete: Delete file
label_attachment_plural: Files
label_file_added: File added
+ label_attachment_description: File description
label_report: Report
label_report_plural: Reports
label_news: News