Commit 4fd8a4fe9b23b57ac53835e47b7b5c538fd2d98d

Authored by AurelioAHeckert
1 parent 5182ce64

ActionItem404: a little better on the profile editor and a new helper to create …

…radio groups on labeled forms.

git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1835 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/helpers/application_helper.rb
@@ -209,6 +209,47 @@ module ApplicationHelper @@ -209,6 +209,47 @@ module ApplicationHelper
209 END_SRC 209 END_SRC
210 class_eval src, __FILE__, __LINE__ 210 class_eval src, __FILE__, __LINE__
211 end 211 end
  212 +
  213 + # Create a formatable radio collection
  214 + # Tha values parameter is a array of [value, label] arrays like this:
  215 + # [ ['en',_('English')], ['pt',_('Portuguese')], ['es',_('Spanish')] ]
  216 + # The option :size will set how many radios will be showed in each line
  217 + # Example: use :size => 3 as option if you want 3 radios by line
  218 + def radio_group( object_name, method, values, options = {} )
  219 + line_size = options[:size] || 0
  220 + line_item = 0
  221 + html = "\n"
  222 + values.each { |val, h_val|
  223 + id = object_name.to_s() +'_'+ method.to_s() +'_'+ val.to_s()
  224 + # Não está apresentando o sexo selecionado ao revisitar
  225 + # http://localhost:3000/myprofile/manuel/profile_editor/edit :-(
  226 + html += self.class.content_tag( 'span',
  227 + @template.radio_button( object_name, method, val,
  228 + :id => id, :object => @object ) +
  229 + self.class.content_tag( 'label', h_val, :for => id ),
  230 + :class => 'lineitem' + (line_item+=1).to_s() ) +"\n"
  231 + if line_item == line_size
  232 + line_item = 0
  233 + html += "<br />\n"
  234 + end
  235 + }
  236 + html += "<br />\n" if line_size == 0 || ( values.size % line_size ) > 0
  237 + column = object.class.columns_hash[method.to_s]
  238 + text =
  239 + ( column ?
  240 + column.human_name :
  241 + _(method.to_s.humanize)
  242 + )
  243 + label_html = self.class.content_tag 'label', text,
  244 + :class => 'formlabel'
  245 + control_html = self.class.content_tag 'div', html,
  246 + :class => 'formfield type-radio '+
  247 + 'fieldgroup linesize'+line_size.to_s()
  248 +
  249 + self.class.content_tag 'div', label_html + control_html,
  250 + :class => 'formfieldline'
  251 + end
  252 +
212 end 253 end
213 254
214 def category_color 255 def category_color
@@ -568,7 +609,10 @@ module ApplicationHelper @@ -568,7 +609,10 @@ module ApplicationHelper
568 # end 609 # end
569 610
570 def file_field_or_thumbnail(label, image, i) 611 def file_field_or_thumbnail(label, image, i)
571 - display_form_field( label, (render :partial => (image && image.valid? ? 'shared/show_thumbnail' : 'shared/change_image'), :locals => { :i => i, :image => image }) ) 612 + display_form_field label, (
  613 + render :partial => (image && image.valid? ? 'shared/show_thumbnail' : 'shared/change_image'),
  614 + :locals => { :i => i, :image => image }
  615 + )
572 end 616 end
573 617
574 end 618 end
app/views/profile_editor/_person.rhtml
1 <%= f.text_field(:name) %> 1 <%= f.text_field(:name) %>
2 <%= f.text_field(:contact_information) %> 2 <%= f.text_field(:contact_information) %>
3 <%= f.text_field(:contact_phone) %> 3 <%= f.text_field(:contact_phone) %>
4 - <%= _('Sex: ') %>  
5 - <%= display_form_field(_('Male'), radio_button(:profile, :sex, 'male')) %>  
6 - <%= display_form_field(_('Female'), radio_button(:profile, :sex, 'female')) %> 4 + <%# use :size => 3 if you want 3 radios by line %>
  5 + <%= f.radio_group :profile, :sex, [ ['male',_('Male')], ['female',_('Female')] ] %>
7 <%= f.text_field(:birth_date) %> 6 <%= f.text_field(:birth_date) %>
8 <%= f.text_field(:address) %> 7 <%= f.text_field(:address) %>
9 <%= f.text_field(:city) %> 8 <%= f.text_field(:city) %>
app/views/profile_editor/edit.rhtml
@@ -5,10 +5,12 @@ @@ -5,10 +5,12 @@
5 <% labelled_form_for :profile_data, @profile, :html => { :multipart => true } do |f| %> 5 <% labelled_form_for :profile_data, @profile, :html => { :multipart => true } do |f| %>
6 <%= render :partial => partial_for_class(@profile.class), :locals => { :f => f } %> 6 <%= render :partial => partial_for_class(@profile.class), :locals => { :f => f } %>
7 7
8 - <h1><%= _('Change picture') %></h1>  
9 - <% f.fields_for :image_builder, @profile.image do |i| %>  
10 - <%= file_field_or_thumbnail(_('Image:'), @profile.image, i) %>  
11 - <% end %> 8 + <div id="profile_change_picture">
  9 + <h1><%= _('Change picture') %></h1>
  10 + <% f.fields_for :image_builder, @profile.image do |i| %>
  11 + <%= file_field_or_thumbnail(_('Image:'), @profile.image, i) %>
  12 + <% end %>
  13 + </div>
12 14
13 <h1><%= _('Privacy options') %></h1> 15 <h1><%= _('Privacy options') %></h1>
14 <p> 16 <p>
app/views/shared/_change_image.rhtml
1 <%= i.file_field( :uploaded_data, { :onchange => 'updateImg(this.value)' } ) %> 1 <%= i.file_field( :uploaded_data, { :onchange => 'updateImg(this.value)' } ) %>
2 -  
3 - <br/>  
4 -  
5 - <%= link_to_function(_('Cancel'), nil, :id => 'cancel-change-image-link', :style => 'display: none') do |page| 2 + <%= link_to_function(_('Cancel'), nil, :id => 'cancel-change-image-link', :class => 'button icon-cancel with-text', :style => 'display: none') do |page|
6 page['change-image-link'].show 3 page['change-image-link'].show
7 page['change-image'].replace_html '' 4 page['change-image'].replace_html ''
8 end %> 5 end %>
app/views/shared/_show_thumbnail.rhtml
@@ -2,10 +2,10 @@ @@ -2,10 +2,10 @@
2 2
3 <br/> 3 <br/>
4 4
5 - <%= link_to_function(_('Change image'), nil, :id => 'change-image-link') do |page| 5 + <%= link_to_function(_('Change image'), nil, :id => 'change-image-link', :class => 'button icon-open with-text') do |page|
6 page['change-image'].replace_html :partial => 'shared/change_image', :locals => { :i => i, :image => image } 6 page['change-image'].replace_html :partial => 'shared/change_image', :locals => { :i => i, :image => image }
7 page['change-image-link'].hide 7 page['change-image-link'].hide
8 page['cancel-change-image-link'].show 8 page['cancel-change-image-link'].show
9 end %> 9 end %>
10 10
11 - <div id='change-image'> </div> 11 + <div id='change-image'> </div> <br/>
public/designs/icons/default/folder-open.gif 0 → 100644

245 Bytes

public/designs/icons/default/style.css
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 .icon-home { background-image: url(gnome-home.png) } 2 .icon-home { background-image: url(gnome-home.png) }
3 .icon-new { background-image: url(gtk-new.png) } 3 .icon-new { background-image: url(gtk-new.png) }
4 .icon-close { background-image: url(cancel-HC.gif) } 4 .icon-close { background-image: url(cancel-HC.gif) }
5 -.icon-open { background-image: url(gtk-open.png) } 5 +.icon-open { background-image: url(folder-open.gif) }
6 .icon-cms { background-image: url(abiword_48.png) } 6 .icon-cms { background-image: url(abiword_48.png) }
7 .icon-save { background-image: url(save-HC.gif) } 7 .icon-save { background-image: url(save-HC.gif) }
8 .icon-up { background-image: url(go-up-HC.gif) } 8 .icon-up { background-image: url(go-up-HC.gif) }
public/designs/themes/zen3/stylesheets/controller_profile_editor.css 0 → 100644
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +
  2 +.categorie_box {
  3 + -moz-border-radius: 4px;
  4 + border: 1px solid #F57900;
  5 + margin-bottom: 2px;
  6 + padding: 2px 0px;
  7 +}
  8 +
  9 +#content .categorie_box h5 {
  10 + margin: 0px;
  11 + padding: 0px;
  12 + line-height: 22px;
  13 +}
  14 +
  15 +#content ul.categories {
  16 + padding: 5px 4px 3px 4px;
  17 +}
  18 +
  19 +ul.categories li {
  20 + -moz-border-radius: 9px;
  21 + border-bottom: 1px solid #FFF;
  22 +}
  23 +
  24 +ul.categories li.cat_checked {
  25 + background: #F57900;
  26 + border-bottom: 1px solid #CE5C00;
  27 +}
  28 +
public/stylesheets/forms.css
@@ -43,3 +43,31 @@ @@ -43,3 +43,31 @@
43 text-align: center; 43 text-align: center;
44 } 44 }
45 45
  46 +.fieldgroup span {
  47 + display: block;
  48 + float: left;
  49 +}
  50 +.fieldgroup br {
  51 + clear: left;
  52 +}
  53 +
  54 +.linesize0 span { padding-right: 15px }
  55 +.linesize1 span { width: 99% }
  56 +.linesize2 span { width: 49% }
  57 +.linesize3 span { width: 33% }
  58 +
  59 +.type-img input {
  60 + float: left;
  61 + margin-right: 10px;
  62 +}
  63 +.type-img br {
  64 + clear: left;
  65 +}
  66 +
  67 +#profile_change_picture label {
  68 + display: none;
  69 +}
  70 +#profile_change_picture img {
  71 + margin-left: 10px;
  72 +}
  73 +