Commit 4fd8a4fe9b23b57ac53835e47b7b5c538fd2d98d
1 parent
5182ce64
Exists in
master
and in
29 other branches
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
Showing
9 changed files
with
113 additions
and
15 deletions
Show diff stats
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/> | ... | ... |
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 | + | ... | ... |