Commit 3c3a90d6e1c327bc8806ff5662f4b4f168285a5f

Authored by Weblate
2 parents 6630bb1a 68569335

Merge remote-tracking branch 'origin/master'

app/helpers/application_helper.rb
... ... @@ -592,7 +592,7 @@ module ApplicationHelper
592 592 extra_info = extra_info.nil? ? '' : content_tag( 'span', extra_info, :class => 'extra_info' )
593 593 links = links_for_balloon(profile)
594 594 content_tag('div', content_tag(tag,
595   - (environment.enabled?(:show_balloon_with_profile_links_when_clicked) ? link_to( content_tag( 'span', _('Profile links')), '#', :onclick => "toggleSubmenu(this, '#{profile.short_name}', #{CGI::escapeHTML(links.to_json)}); return false", :class => "menu-submenu-trigger #{trigger_class}", :url => url) : "") +
  595 + (environment.enabled?(:show_balloon_with_profile_links_when_clicked) ? popover_menu(_('Profile links'),profile.short_name,links,{:class => trigger_class, :url => url}) : "") +
596 596 link_to(
597 597 content_tag( 'span', profile_image( profile, size ), :class => 'profile-image' ) +
598 598 content_tag( 'span', h(name), :class => ( profile.class == Person ? 'fn' : 'org' ) ) +
... ... @@ -604,6 +604,14 @@ module ApplicationHelper
604 604 :class => 'vcard'), :class => 'common-profile-list-block')
605 605 end
606 606  
  607 + def popover_menu(title,menu_title,links,html_options={})
  608 + html_options[:class] = "" unless html_options[:class]
  609 + html_options[:class] << " menu-submenu-trigger"
  610 + html_options[:onclick] = "toggleSubmenu(this, '#{menu_title}', #{CGI::escapeHTML(links.to_json)}); return false"
  611 +
  612 + link_to(content_tag(:span, title), '#', html_options)
  613 + end
  614 +
607 615 def gravatar_default
608 616 (respond_to?(:theme_option) && theme_option.present? && theme_option['gravatar']) || NOOSFERO_CONF['gravatar'] || 'mm'
609 617 end
... ... @@ -718,7 +726,7 @@ module ApplicationHelper
718 726 class NoosferoFormBuilder < ActionView::Helpers::FormBuilder
719 727 extend ActionView::Helpers::TagHelper
720 728  
721   - def self.output_field(text, field_html, field_id = nil)
  729 + def self.output_field(text, field_html, field_id = nil, options = {})
722 730 # try to guess an id if none given
723 731 if field_id.nil?
724 732 field_html =~ /id=['"]([^'"]*)['"]/
... ... @@ -1050,7 +1058,7 @@ module ApplicationHelper
1050 1058 end
1051 1059  
1052 1060 link_to(content_tag(:span, _('Contents'), :class => 'icon-menu-articles'), {:controller => "search", :action => 'contents', :category_path => nil}, :id => 'submenu-contents') +
1053   - link_to(content_tag(:span, _('Contents menu')), '#', :onclick => "toggleSubmenu(this,'',#{CGI::escapeHTML(links.to_json)}); return false", :class => 'menu-submenu-trigger up', :id => 'submenu-contents-trigger')
  1061 + popover_menu(_('Contents menu'),'',links,:class => 'up', :id => 'submenu-contents-trigger')
1054 1062 end
1055 1063 alias :browse_contents_menu :search_contents_menu
1056 1064  
... ... @@ -1066,7 +1074,7 @@ module ApplicationHelper
1066 1074 end
1067 1075  
1068 1076 link_to(content_tag(:span, _('People'), :class => 'icon-menu-people'), {:controller => "search", :action => 'people', :category_path => ''}, :id => 'submenu-people') +
1069   - link_to(content_tag(:span, _('People menu')), '#', :onclick => "toggleSubmenu(this,'',#{CGI::escapeHTML(links.to_json)}); return false", :class => 'menu-submenu-trigger up', :id => 'submenu-people-trigger')
  1077 + popover_menu(_('People menu'),'',links,:class => 'up', :id => 'submenu-people-trigger')
1070 1078 end
1071 1079 alias :browse_people_menu :search_people_menu
1072 1080  
... ... @@ -1082,7 +1090,7 @@ module ApplicationHelper
1082 1090 end
1083 1091  
1084 1092 link_to(content_tag(:span, _('Communities'), :class => 'icon-menu-community'), {:controller => "search", :action => 'communities'}, :id => 'submenu-communities') +
1085   - link_to(content_tag(:span, _('Communities menu')), '#', :onclick => "toggleSubmenu(this,'',#{CGI::escapeHTML(links.to_json)}); return false", :class => 'menu-submenu-trigger up', :id => 'submenu-communities-trigger')
  1093 + popover_menu(_('Communities menu'),'',links,:class => 'up', :id => 'submenu-communities-trigger')
1086 1094 end
1087 1095 alias :browse_communities_menu :search_communities_menu
1088 1096  
... ...
app/helpers/block_helper.rb
... ... @@ -19,7 +19,7 @@ module BlockHelper
19 19 content_tag('span', _('Title')) +
20 20 text_field_tag('block[images][][title]', image[:title], :class => 'highlight-title', :size => 45)
21 21 }</label></td>
22   - <td>#{link_to '', '#', :class=>'button icon-button icon-delete delete-highlight', :confirm=>_('Are you sure you want to remove this highlight')}</td>
  22 + <td>#{button_without_text(:delete, _('Remove'), '#', class: 'delete-highlight', :confirm=>_('Are you sure you want to remove this highlight'))}</td>
23 23 </tr>
24 24 "
25 25 end
... ...
app/helpers/categories_helper.rb
... ... @@ -25,10 +25,13 @@ module CategoriesHelper
25 25 )
26 26 end
27 27  
28   - def update_categories_link(body, category_id=nil, html_options={})
  28 + #TODO: remove this function and, in views, use existing basic buttons
  29 + def update_categories_link(type, body, category_id=nil, html_options={})
  30 + html_class = 'select-subcategory-link'
  31 + html_class = " icon-#{type} btn btn-primary btn-xs" if type.present?
29 32 link_to body,
30 33 { :action => "update_categories", :category_id => category_id, :id => @object },
31   - {:id => category_id ? "select-category-#{category_id}-link" : nil, :remote => true, :class => 'select-subcategory-link'}.merge(html_options)
  34 + {:id => category_id ? "select-category-#{category_id}-link" : nil, :remote => true, :class => html_class}.merge(html_options)
32 35 end
33 36  
34 37 end
... ...
app/helpers/language_helper.rb
1 1 module LanguageHelper
2 2 def language
3   - locale
  3 + locale.to_s
4 4 end
5 5  
6 6 def tinymce_language
... ... @@ -20,7 +20,7 @@ module LanguageHelper
20 20 separator = options[:separator] || ' &mdash; '
21 21  
22 22 if options[:element] == 'dropdown'
23   - select_tag('lang',
  23 + select_tag('lang',
24 24 options_for_select(locales.map{|code,name| [name, code]}, current),
25 25 :onchange => "document.location.href= #{url_for(params.merge(:lang => 'LANGUAGE'))}.replace(/LANGUAGE/, this.value) ;",
26 26 :help => _('The language you choose here is the language used for options, buttons, etc. It does not affect the language of the content created by other users.')
... ...
app/helpers/layout_helper.rb
... ... @@ -31,12 +31,12 @@ module LayoutHelper
31 31 plugins_javascripts = @plugins.map { |plugin| [plugin.js_files].flatten.map { |js| plugin.class.public_path(js) } }.flatten
32 32  
33 33 output = ''
34   - output += render :file => 'layouts/_javascript'
35   - output += javascript_tag 'render_all_jquery_ui_widgets()'
  34 + output += render 'layouts/javascript'
36 35 unless plugins_javascripts.empty?
37 36 output += javascript_include_tag plugins_javascripts, :cache => "cache/plugins-#{Digest::MD5.hexdigest plugins_javascripts.to_s}"
38 37 end
39 38 output += theme_javascript_ng.to_s
  39 + output += javascript_tag 'render_all_jquery_ui_widgets()'
40 40  
41 41 output
42 42 end
... ... @@ -85,6 +85,7 @@ module LayoutHelper
85 85 end
86 86 end
87 87  
  88 +
88 89 def icon_theme_stylesheet_path
89 90 icon_themes = []
90 91 theme_icon_themes = theme_option(:icon_theme) || []
... ...
app/views/account/login.html.erb
... ... @@ -7,7 +7,7 @@
7 7  
8 8 <%= @message %>
9 9  
10   -<%= labelled_form_for :user, :url => login_url do |f| %>
  10 +<%= labelled_form_for :user, :url => login_url, :horizontal => true do |f| %>
11 11  
12 12 <%= f.text_field :login, :id => 'main_user_login', :onchange => 'this.value = convToValidLogin( this.value )', :value => params[:userlogin] %>
13 13  
... ...
app/views/account/login_block.html.erb
... ... @@ -20,9 +20,7 @@
20 20 <% button_bar do %>
21 21 <%= submit_button( 'login', _('Log in') )%>
22 22 <% unless @plugins.dispatch(:allow_user_registration).include?(false) %>
23   - <%= link_to content_tag( 'span', _('New user') ),
24   - { :controller => 'account', :action => 'signup' },
25   - :class => 'button with-text icon-add' %>
  23 + <%= button(:add, _('New user'), { :controller => 'account', :action => 'signup' }) %>
26 24 <% end %>
27 25 <% end %>
28 26  
... ...
app/views/blocks/login_block.html.erb
... ... @@ -6,7 +6,7 @@
6 6 <li><%= link_to _('Homepage'), user.public_profile_url %></li>
7 7 </ul>
8 8 <div class="user-actions">
9   - <%= link_to content_tag('span', _('Logout')), { :controller => 'account', :action => 'logout' }, :class => 'button with-text icon-menu-logout' %>
  9 + <%= button(:'menu-logout', _('Logout'), :controller => 'account', :action => 'logout') %>
10 10 </div>
11 11 </div>
12 12 <% else %>
... ...
app/views/blocks/profile_info_actions/_community.html.erb
... ... @@ -5,11 +5,11 @@
5 5 <% if logged_in? %>
6 6 <% if profile.enable_contact? %>
7 7 <li>
8   - <%= link_to content_tag('span', _('Send an e-mail')),
9   - { :profile => profile.identifier,
10   - :controller => 'contact',
11   - :action => 'new' },
12   - {:class => 'button with-text icon-menu-mail', :title => _('Send an e-mail to the administrators')} %>
  8 + <%= button(:'menu-mail', _('Send an e-mail'),
  9 + { :profile => profile.identifier,
  10 + :controller => 'contact',
  11 + :action => 'new' },
  12 + { :title => _('Send an e-mail to the administrators')}) %>
13 13 </li>
14 14 <% end %>
15 15  
... ...
app/views/blocks/profile_info_actions/_enterprise.html.erb
1 1 <ul>
2 2 <%if logged_in? %>
3 3 <%if !user.favorite_enterprises.include?(profile) %>
4   - <li><%= link_to content_tag('span', _('Add as favorite')), { :profile => user.identifier, :controller => 'favorite_enterprises', :action => 'add', :id => profile.id }, :class => 'button with-text icon-add', :title => _('Add enterprise as favorite') %></li>
  4 + <li><%= button(:add, _('Add as favorite'), { :profile => user.identifier, :controller => 'favorite_enterprises', :action => 'add', :id => profile.id }, :title => _('Add enterprise as favorite')) %></li>
5 5 <% end %>
6 6 <% end %>
7 7 <% if profile.enable_contact? %>
8   - <li> <%= link_to content_tag('span', _('Send an e-mail')), {:profile => profile.identifier, :controller => 'contact', :action => 'new'}, {:id => 'enterprise-contact-button', :class => 'button with-text icon-menu-mail'} %> </li>
  8 + <li><%= button(:'menu-mail', _('Send an e-mail'), {:profile => profile.identifier, :controller => 'contact', :action => 'new'}, {:id => 'enterprise-contact-button'} ) %></li>
9 9 <% end %>
10 10  
11 11 <li><%= report_abuse(profile, :button) %></li>
... ...
app/views/blocks/profile_info_actions/_join_leave_community.html.erb
... ... @@ -22,8 +22,6 @@
22 22 <% end %>
23 23 <% end %>
24 24 <% else %>
25   - <%= link_to content_tag('span', _('Join')), profile.join_not_logged_url,
26   - :class => 'button with-text icon-add',
27   - :title => _('Join this community') %>
  25 + <%= button(:add, _('Join'), profile.join_not_logged_url, :title => _('Join this community')) %>
28 26 <% end %>
29 27 </div>
... ...
app/views/blocks/profile_info_actions/_person.html.erb
... ... @@ -8,7 +8,7 @@
8 8 <% end %>
9 9  
10 10 <% if user.is_a_friend?(profile) && profile.enable_contact? %>
11   - <li> <%= link_to content_tag('span', _('Send an e-mail')), {:profile => profile.identifier, :controller => 'contact', :action => 'new'}, :class => 'button with-text icon-menu-mail' %> </li>
  11 + <li><%= button(:back, _('Send an e-mail'), {:profile => profile.identifier, :controller => 'contact', :action => 'new'}) %></li>
12 12 <% end %>
13 13  
14 14 <li><%= report_abuse(profile, :button) %></li>
... ...
app/views/box_organizer/_highlights_block.html.erb
... ... @@ -15,7 +15,7 @@
15 15 </tbody>
16 16 </table>
17 17  
18   -<%= link_to(_('New highlight'), '#', :class => 'button icon-add with-text new-highlight-button')%>
  18 +<%= button(:add, _('New highlight'), '#', class: 'new-highlight-button') %>
19 19  
20 20 <%= labelled_form_field _('Image transition:'), select('block', 'interval', [[_('No automatic transition'), 0]] + [1, 2, 3, 4, 5, 10, 20, 30, 60].map {|item| [n_('Every 1 second', 'Every %d seconds', item) % item, item]}) %>
21 21  
... ...
app/views/comment/_comment_actions.html.erb
... ... @@ -2,7 +2,7 @@
2 2 <% if !links_submenu.empty? %>
3 3 <div class="comment-actions">
4 4 <li class="vcard">
5   - <%= link_to(content_tag(:span, _('Contents menu')), '#', :onclick => "toggleSubmenu(this,'',#{CGI::escapeHTML(links_submenu.to_json)}); return false", :class => 'menu-submenu-trigger comment-trigger', :url => url) %>
  5 + <%= popover_menu(_('Contents menu'),'',links_submenu,:class => 'comment-trigger', :url => url) %>
6 6 </li>
7 7 </div>
8 8 <% end %>
... ...
app/views/favorite_enterprises/index.html.erb
... ... @@ -9,10 +9,7 @@
9 9 enterprise.identifier, :class => 'profile-link' %>
10 10 <%# profile_image_link enterprise, :portrait, 'div' %>
11 11 <div class="controll">
12   - <%= link_to content_tag('span',_('remove')),
13   - { :action => 'remove', :id => enterprise.id },
14   - :class => 'button icon-delete',
15   - :title => _('remove') %>
  12 + <%= button(:delete, _('remove'), { :action => 'remove', :id => enterprise.id },:title => _('remove')) %>
16 13 </div><!-- end class="controll" -->
17 14 </li>
18 15 <% end %>
... ...
app/views/search/_sellers_form.html.erb
... ... @@ -18,7 +18,7 @@
18 18 </div>
19 19  
20 20 <div class="button-bar">
21   - <%= submit_tag _('Search'), :class => 'button with-text icon-search' %>
  21 + <%= submit_button :search, _('Search') %>
22 22 </div>
23 23  
24 24 <% end %>
... ...
app/views/shared/_change_image.html.erb
1 1 <%= i.file_field( :uploaded_data, { :onchange => 'updateImg(this.value)' } ) %>
2   - <%= link_to_function(_('Cancel'), "jQuery('#change-image-link').show(); jQuery('#change-image').html('')", :id => 'cancel-change-image-link', :class => 'button icon-cancel with-text', :style => 'display: none') %>
  2 + <%= button_to_function(:cancel,_('Cancel'),"jQuery('#change-image-link').show(); jQuery('#change-image').html('')", :id => 'cancel-change-image-link', :style => 'display: none')%>
... ...
app/views/shared/_select_categories.html.erb
... ... @@ -4,12 +4,12 @@
4 4 <%= hidden_field_tag "#{object_name}[#{object_name}_category_id]", @current_category.id unless multiple %>
5 5 <%= hidden_field_tag "#{object_name}[category_ids][]", @current_category.id if multiple %>
6 6  
7   - <%= update_categories_link("", nil, :id => "cancel-category-button", :class => "button icon-back") %>
  7 + <%= update_categories_link(:back, "", nil, :id => "cancel-category-button") %>
8 8 <%
9 9 categories = [@current_category]
10 10 categories.push(@current_category) while @current_category = @current_category.parent
11 11 %>
12   - <%= categories.compact.reverse.map{|i| update_categories_link(i.name, i.id)}.join %>
  12 + <%= categories.compact.reverse.map{|i| update_categories_link(nil,i.name, i.id)}.join %>
13 13  
14 14 <script>
15 15 function add_category() {
... ...
app/views/shared/_select_subcategories.html.erb
... ... @@ -3,6 +3,6 @@
3 3 <div class="category-helper-label"><%= _('Click to select a category') %></div>
4 4  
5 5 <% categories.select{|i| @object.accept_category?(i)}.each do |category| %>
6   - <%= update_categories_link(category.name, category.id) %>
  6 + <%= update_categories_link(nil,category.name, category.id) %>
7 7 <% end %>
8 8 <% end %>
... ...
app/views/shared/_show_thumbnail.html.erb
... ... @@ -2,7 +2,7 @@
2 2  
3 3 <br/>
4 4  
5   - <%= link_to_function(_('Change image'), 'display_change_image()', :id => 'change-image-link', :class => 'button icon-photos with-text') %>
  5 + <%= button_to_function(:photos, _('Change image'), 'display_change_image()', :id => 'change-image-link' ) %>
6 6  
7 7 <script>
8 8 function display_change_image() {
... ...
app/views/tasks/index.html.erb
... ... @@ -23,7 +23,7 @@
23 23  
24 24 <% if @tasks.empty? %>
25 25 <p>
26   - <%= labelled_select(_('Filter')+': ', :filter_type, :first, :last, @filter, type_collection, :onchange => 'document.location.href = "?filter_type="+this.value')%>
  26 + <%= labelled_select(_('Filter')+': ', :filter_type, :first, :last, @filter, type_collection, :onchange => "document.location.href = '?filter_type='+this.value")%>
27 27 </p>
28 28 <em><%= _('No pending tasks for %s') % profile.name %></em>
29 29 <% else %>
... ...
test/test_helper.rb
... ... @@ -140,9 +140,18 @@ class ActiveSupport::TestCase
140 140 end
141 141  
142 142 # For models that render views (blocks, articles, ...)
143   - def render(*args)
144   - view_paths = @explicit_view_paths || ActionController::Base.view_paths
145   - ActionView::Base.new(view_paths, {}).render(*args)
  143 + def self.action_view
  144 + @action_view ||= begin
  145 + view_paths = ActionController::Base.view_paths
  146 + action_view = ActionView::Base.new view_paths, {}
  147 + # for using Noosfero helpers inside render calls
  148 + action_view.extend ApplicationHelper
  149 + action_view
  150 + end
  151 + end
  152 +
  153 + def render *args
  154 + self.class.action_view.render(*args)
146 155 end
147 156  
148 157 private
... ...