Defect #32125

Long subject issue may not autocomplete with #keyword

Added by Mizuki ISHIKAWA about 1 month ago. Updated 16 days ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Issues
Target version:Candidate for next major release
Resolution: Affected version:

Description

Reproduction procedure:
  • Create a issue with subject "-------------------The quick brown fox jumps over the lazy dog."(Subject longer than 60 characters)
  • Check if the created issue is complete (In the textarea of other issues).
    • Write "#brown" => autocompleted
    • Write "#dog" => not autocompleted

"https://----------/issues/auto_complete?q=dog" will return the result as shown below.

[{"id":1,"label":"Bug #1: -------------------The quick brown fox jumps over the laz...","value":1}]

Although the created issue is returned, the label is omitted on the way and the character string such as dog is not included.
(http://www.redmine.org/projects/redmine/repository/entry/trunk/app/controllers/auto_completes_controller.rb#L58)

I think that tribute.js has removed it from the candidate because the search keyword is not included in label.

too-wide-dropdown@2x.png (18.2 KB) Go MAEDA, 2019-11-03 11:59

History

#1 Updated by Mizuki ISHIKAWA about 1 month ago

Do I need to return a subject that is shortened to 60 characters?
If not, you can fix the problem by making the changes below.

diff --git a/app/controllers/auto_completes_controller.rb b/app/controllers/auto_completes_controller.rb
index 336885349..bbe5b13ed 100644
--- a/app/controllers/auto_completes_controller.rb
+++ b/app/controllers/auto_completes_controller.rb
@@ -55,7 +55,7 @@ class AutoCompletesController < ApplicationController
   def format_issues_json(issues)
     issues.map {|issue| {
       'id' => issue.id,
-      'label' => "#{issue.tracker} ##{issue.id}: #{issue.subject.to_s.truncate(60)}",
+      'label' => "#{issue.tracker} ##{issue.id}: #{issue.subject}",
       'value' => issue.id
       }
     }

#2 Updated by Go MAEDA about 1 month ago

I don't think the truncation is necessary. Even if the truncation is necessary, 60 characters long is too short. It can be raised to 255, the maximum length of string in ActiveRecord.

#3 Updated by Go MAEDA about 1 month ago

  • Target version set to Candidate for next major release

#4 Updated by Go MAEDA 16 days ago

After applying the patch, the autocomplete dropdown gets too wide when it includes long subjects. I think we should somehow limit the width of the dropdown when removing truncate(60).

truncate(60) was added in r10068, when Prototype and script.aculo.us were replaced with JQuery. Maybe the replacement caused the issue I described above and truncate(60) was added as a workaround for that.

#5 Updated by Go MAEDA 16 days ago

Go MAEDA wrote:

After applying the patch, the autocomplete dropdown gets too wide when it includes long subjects.

Screenshot of that.

Also available in: Atom PDF