]> source.dussan.org Git - redmine.git/commitdiff
Show a custom field description as a placeholder (#14275).
authorGo MAEDA <maeda@farend.jp>
Thu, 17 Mar 2022 11:52:12 +0000 (11:52 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 17 Mar 2022 11:52:12 +0000 (11:52 +0000)
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
public/stylesheets/application.css
test/helpers/custom_fields_helper_test.rb

index 0ff648d9dde478415ccfec64ca7b9d10e485d42e..fb341d9ec33b7d46581168d464045cfca67cb2c4 100644 (file)
@@ -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
 
index f837a710e2ecb5981bb6f6a15f921f96e3556f35..827017c9a671df24a9f54b271f4477d4b9833b00 100644 (file)
@@ -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;}
index 7c560e87e5f2ced3bcd01de1bb5d372fa6c7b67a..0c5ad066654f4db59a761051065b15c57cb8a0c2 100644 (file)
@@ -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