From 8529e39e6da800f2f075d04362eb49a32bc83e64 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Thu, 17 Mar 2022 11:52:12 +0000 Subject: [PATCH] Show a custom field description as a placeholder (#14275). Patch by Go MAEDA. git-svn-id: http://svn.redmine.org/redmine/trunk@21460 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/helpers/custom_fields_helper.rb | 3 +++ public/stylesheets/application.css | 4 ++++ test/helpers/custom_fields_helper_test.rb | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/app/helpers/custom_fields_helper.rb b/app/helpers/custom_fields_helper.rb index 0ff648d9d..fb341d9ec 100644 --- a/app/helpers/custom_fields_helper.rb +++ b/app/helpers/custom_fields_helper.rb @@ -81,6 +81,8 @@ module CustomFieldsHelper def custom_field_tag(prefix, custom_value) cf = custom_value.custom_field css = cf.css_classes + placeholder = cf.description + placeholder&.tr!("\n", ' ') if cf.field_format != 'text' data = nil if cf.full_text_formatting? css += ' wiki-edit' @@ -94,6 +96,7 @@ module CustomFieldsHelper custom_field_tag_name(prefix, cf), custom_value, :class => css, + :placeholder => placeholder, :data => data) end diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index f837a710e..827017c9a 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -514,6 +514,10 @@ textarea:focus, textarea:active { outline: none; } +input:placeholder-shown { + text-overflow: ellipsis; +} + select[multiple=multiple] {background: #fff; padding-right: initial; height: auto;} fieldset {border: 1px solid #e4e4e4; margin:0; min-width: inherit;} legend {color: #333;} diff --git a/test/helpers/custom_fields_helper_test.rb b/test/helpers/custom_fields_helper_test.rb index 7c560e87e..0c5ad0666 100644 --- a/test/helpers/custom_fields_helper_test.rb +++ b/test/helpers/custom_fields_helper_test.rb @@ -96,6 +96,13 @@ class CustomFieldsHelperTest < Redmine::HelperTest assert_select_in custom_field_tag('object', value), "textarea.text_cf.wiki-edit.cf_#{field.id}" end + def test_custom_field_tag_class_should_contain_placeholder + field = IssueCustomField.create!(:name => 'Text', :field_format => 'string', :description => "Foo\nBar\nBaz") + value = CustomValue.new(:value => 'bar', :custom_field => field) + + assert_select_in custom_field_tag('object', value), "input.string_cf.cf_#{field.id}[placeholder=?]", 'Foo Bar Baz' + end + def test_select_type_radio_buttons result = select_type_radio_buttons('UserCustomField') assert_select_in result, 'input[type="radio"]', :count => 10 -- 2.39.5