プロジェクト

全般

プロフィール

Vote #80347

完了

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

Admin Redmine さんが約4年前に追加. 約4年前に更新.

ステータス:
Closed
優先度:
通常
担当者:
-
カテゴリ:
Issues_2
対象バージョン:
開始日:
2022/05/09
期日:
進捗率:

0%

予定工数:
category_id:
2
version_id:
152
issue_org_id:
32125
author_id:
259873
assigned_to_id:
332
comments:
13
status_id:
5
tracker_id:
1
plus1:
0
affected_version:
closed_on:
affected_version_id:
ステータス-->[Closed]

説明

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.


journals

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.
<pre><code class="diff">
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
}
}
</code></pre>
--------------------------------------------------------------------------------
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.
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
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.
--------------------------------------------------------------------------------
Go MAEDA wrote:
> After applying the patch, the autocomplete dropdown gets too wide when it includes long subjects.

Screenshot of that.

!{width: 1190px; border: 1px solid #ccc;}.too-wide-dropdown@2x.png!
--------------------------------------------------------------------------------
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.

!{width: 300px; border: 1px solid #ccc}example-1.png!

!{width: 300px; border: 1px solid #ccc}example-2.png!
--------------------------------------------------------------------------------
Setting the target version to 4.2.0.
--------------------------------------------------------------------------------
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.
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Committed the fix. Thank you.
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
Reverted r19773.

The revert was necessary to revert r19769 because r19773 depends on the commit.
--------------------------------------------------------------------------------
Go MAEDA wrote:
> Reverted r19773.
>
> The revert was necessary to revert r19769 because r19773 depends on the commit.

Committed the patch again.
--------------------------------------------------------------------------------


related_issues

blocks,Closed,31887,Update jQuery UI to 1.12.1

Admin Redmine さんが約4年前に更新

  • カテゴリIssues_2 にセット
  • 対象バージョン4.2.0_152 にセット

他の形式にエクスポート: Atom PDF

いいね!0
いいね!0