Commit f38a825d6e9abe5aa5a6e603cb76318975ec3f7a
Committed by
Daniela Feitosa
1 parent
eb7e3c1f
Exists in
master
and in
28 other branches
Show title in select options
(ActionItem1656)
Showing
5 changed files
with
31 additions
and
3 deletions
Show diff stats
app/helpers/forms_helper.rb
@@ -111,6 +111,18 @@ module FormsHelper | @@ -111,6 +111,18 @@ module FormsHelper | ||
111 | )) | 111 | )) |
112 | end | 112 | end |
113 | 113 | ||
114 | + def options_for_select_with_title(container, selected = nil) | ||
115 | + container = container.to_a if Hash === container | ||
116 | + | ||
117 | + options_for_select = container.inject([]) do |options, element| | ||
118 | + text, value = option_text_and_value(element) | ||
119 | + selected_attribute = ' selected="selected"' if option_value_selected?(value, selected) | ||
120 | + options << %(<option title="#{html_escape(text.to_s)}" value="#{html_escape(value.to_s)}"#{selected_attribute}>#{html_escape(text.to_s)}</option>) | ||
121 | + end | ||
122 | + | ||
123 | + options_for_select.join("\n") | ||
124 | + end | ||
125 | + | ||
114 | protected | 126 | protected |
115 | def self.next_id_number | 127 | def self.next_id_number |
116 | if defined? @@id_num | 128 | if defined? @@id_num |
app/views/box_organizer/_article_block.rhtml
1 | - | 1 | +<div class='article-block-edition'> |
2 | <% if @block.box.owner.kind_of?(Environment) and @block.box.owner.portal_community.nil? %> | 2 | <% if @block.box.owner.kind_of?(Environment) and @block.box.owner.portal_community.nil? %> |
3 | <p id='no_portal_community'> | 3 | <p id='no_portal_community'> |
4 | <%= _("You don't have an community defined as the portal community. Define it before use this block properly.") %> | 4 | <%= _("You don't have an community defined as the portal community. Define it before use this block properly.") %> |
5 | </p> | 5 | </p> |
6 | <% else %> | 6 | <% else %> |
7 | <% articles = @block.available_articles.select {|article| !article.folder? } %> | 7 | <% articles = @block.available_articles.select {|article| !article.folder? } %> |
8 | - <%= select('block', 'article_id', articles.map {|item| [ item.path, item.id]}) %> | 8 | + <%= select_tag('block[article_id]', options_for_select_with_title(articles.map {|item| [item.path, item.id]})) %> |
9 | <% end %> | 9 | <% end %> |
10 | +</div> |
public/stylesheets/application.css
@@ -3944,6 +3944,15 @@ h1#agenda-title { | @@ -3944,6 +3944,15 @@ h1#agenda-title { | ||
3944 | margin: 5px 0px 5px 160px; | 3944 | margin: 5px 0px 5px 160px; |
3945 | } | 3945 | } |
3946 | 3946 | ||
3947 | +.controller-profile_design .article-block-edition select, | ||
3948 | +.controller-profile_design .article-block-edition option { | ||
3949 | + width: 300px; | ||
3950 | +} | ||
3951 | + | ||
3952 | +.controller-profile_design .article-block-edition option { | ||
3953 | + overflow-x: hidden; | ||
3954 | +} | ||
3955 | + | ||
3947 | /* ==> public/stylesheets/controller_profile_editor.css <== */ | 3956 | /* ==> public/stylesheets/controller_profile_editor.css <== */ |
3948 | 3957 | ||
3949 | .controller-profile_editor .categorie_box .button { | 3958 | .controller-profile_editor .categorie_box .button { |
test/functional/environment_design_controller_test.rb
@@ -70,7 +70,7 @@ class EnvironmentDesignControllerTest < Test::Unit::TestCase | @@ -70,7 +70,7 @@ class EnvironmentDesignControllerTest < Test::Unit::TestCase | ||
70 | article.expects(:path).returns('some_path') | 70 | article.expects(:path).returns('some_path') |
71 | article.expects(:id).returns(1) | 71 | article.expects(:id).returns(1) |
72 | get :edit, :id => l.id | 72 | get :edit, :id => l.id |
73 | - assert_tag :tag => 'select', :attributes => { :id => 'block_article_id' } | 73 | + assert_tag :tag => 'select', :attributes => { :id => 'block[article_id]' } |
74 | end | 74 | end |
75 | 75 | ||
76 | should 'be able to edit ArticleBlock without portal community' do | 76 | should 'be able to edit ArticleBlock without portal community' do |
test/unit/forms_helper_test.rb
@@ -4,6 +4,7 @@ class FormsHelperTest < Test::Unit::TestCase | @@ -4,6 +4,7 @@ class FormsHelperTest < Test::Unit::TestCase | ||
4 | 4 | ||
5 | include FormsHelper | 5 | include FormsHelper |
6 | include ActionView::Helpers::TagHelper | 6 | include ActionView::Helpers::TagHelper |
7 | + include ActionView::Helpers::FormOptionsHelper | ||
7 | 8 | ||
8 | should 'wrapper required fields in <span class=required-field>' do | 9 | should 'wrapper required fields in <span class=required-field>' do |
9 | content = required('<input type=text name=test>') | 10 | content = required('<input type=text name=test>') |
@@ -20,6 +21,11 @@ class FormsHelperTest < Test::Unit::TestCase | @@ -20,6 +21,11 @@ class FormsHelperTest < Test::Unit::TestCase | ||
20 | assert_tag_in_string content, :tag => 'label', :content => 'highlighted', :attributes => {:class => 'pseudoformlabel'} | 21 | assert_tag_in_string content, :tag => 'label', :content => 'highlighted', :attributes => {:class => 'pseudoformlabel'} |
21 | end | 22 | end |
22 | 23 | ||
24 | + should 'show title for option in select' do | ||
25 | + content = options_for_select_with_title({'option_value' => 'option_title'}) | ||
26 | + assert_tag_in_string content, :tag => 'option', :attributes => {:title => 'option_value'} | ||
27 | + end | ||
28 | + | ||
23 | protected | 29 | protected |
24 | 30 | ||
25 | def _(text) | 31 | def _(text) |