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 209 END_SRC
210 210 class_eval src, __FILE__, __LINE__
211 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 253 end
213 254  
214 255 def category_color
... ... @@ -568,7 +609,10 @@ module ApplicationHelper
568 609 # end
569 610  
570 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 616 end
573 617  
574 618 end
... ...
app/views/profile_editor/_person.rhtml
1 1 <%= f.text_field(:name) %>
2 2 <%= f.text_field(:contact_information) %>
3 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 6 <%= f.text_field(:birth_date) %>
8 7 <%= f.text_field(:address) %>
9 8 <%= f.text_field(:city) %>
... ...
app/views/profile_editor/edit.rhtml
... ... @@ -5,10 +5,12 @@
5 5 <% labelled_form_for :profile_data, @profile, :html => { :multipart => true } do |f| %>
6 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 15 <h1><%= _('Privacy options') %></h1>
14 16 <p>
... ...
app/views/shared/_change_image.rhtml
1 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 3 page['change-image-link'].show
7 4 page['change-image'].replace_html ''
8 5 end %>
... ...
app/views/shared/_show_thumbnail.rhtml
... ... @@ -2,10 +2,10 @@
2 2  
3 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 6 page['change-image'].replace_html :partial => 'shared/change_image', :locals => { :i => i, :image => image }
7 7 page['change-image-link'].hide
8 8 page['cancel-change-image-link'].show
9 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 2 .icon-home { background-image: url(gnome-home.png) }
3 3 .icon-new { background-image: url(gtk-new.png) }
4 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 6 .icon-cms { background-image: url(abiword_48.png) }
7 7 .icon-save { background-image: url(save-HC.gif) }
8 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 @@
  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 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 +
... ...