Project

General

Profile

Actions

Defect #32125

closed

Issues autocomplete may not find issues with a subject longer than 60 characters

Added by Mizuki ISHIKAWA over 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Issues
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed
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.


Files

too-wide-dropdown@2x.png (18.2 KB) too-wide-dropdown@2x.png Go MAEDA, 2019-11-03 11:59
fix-32125.patch (1.72 KB) fix-32125.patch Mizuki ISHIKAWA, 2019-11-20 05:03
example-1.png (27.9 KB) example-1.png Mizuki ISHIKAWA, 2019-11-20 05:04
example-2.png (80.1 KB) example-2.png Mizuki ISHIKAWA, 2019-11-20 05:04
fix-32125-v2.patch (1.08 KB) fix-32125-v2.patch Go MAEDA, 2020-05-11 06:23

Related issues

Blocked by Redmine - Feature #31887: Update jQuery UI to 1.12.1ClosedGo MAEDA

Actions
Actions #1

Updated by Mizuki ISHIKAWA over 4 years 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
       }
     }

Actions #2

Updated by Go MAEDA over 4 years 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.

Actions #3

Updated by Go MAEDA over 4 years ago

  • Target version set to Candidate for next major release
Actions #4

Updated by Go MAEDA over 4 years 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.

Actions #5

Updated by Go MAEDA over 4 years ago

Go MAEDA wrote:

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

Screenshot of that.

Actions #6

Updated by Mizuki ISHIKAWA over 4 years ago

Go MAEDA wrote:

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).

I attached a patch that omits the subject line if the width exceeds 400px.

Actions #7

Updated by Go MAEDA almost 4 years ago

  • Target version changed from Candidate for next major release to 4.2.0

Setting the target version to 4.2.0.

Actions #8

Updated by Go MAEDA almost 4 years ago

I have updated the patch to cleanly applicable after r19769. And I slightly modified as follows:

  • Instead of removing truncate(60) from source:tags/4.1.1/app/controllers/auto_completes_controller.rb#L59, changed to truncate(255). Although the maximum length of a subject is limited to 255 by database schema, the change guarantees that the length of a subject in JSON data will never exceed 255.
  • Since it is ensured that the length of the Subject does not exceed 255, we can say that UI issues due to abnormally long subjects unlikely to occur. So, I simplify the change against CSS. I have removed white-space, text-overflow, and overflow properties from the previous patch.
Actions #9

Updated by Go MAEDA almost 4 years ago

  • Subject changed from Long subject issue may not autocomplete with #keyword to Issues autocomplete may not find issues with a subject longer than 60 characters
Actions #10

Updated by Go MAEDA almost 4 years ago

  • Status changed from New to Closed
  • Assignee set to Go MAEDA
  • Resolution set to Fixed

Committed the fix. Thank you.

Actions #11

Updated by Go MAEDA almost 4 years ago

Actions #12

Updated by Go MAEDA almost 4 years ago

  • Status changed from Closed to Reopened
  • Resolution deleted (Fixed)

Reverted r19773.

The revert was necessary to revert r19769 because r19773 depends on the commit.

Actions #13

Updated by Go MAEDA almost 4 years ago

  • Status changed from Reopened to Closed
  • Resolution set to Fixed

Go MAEDA wrote:

Reverted r19773.

The revert was necessary to revert r19769 because r19773 depends on the commit.

Committed the patch again.

Actions

Also available in: Atom PDF