Commit 18b6de1dcbf3dcef2770252ca80753be5f17de35

Authored by Rodrigo Souto
1 parent 1538eb76

remove-content-button: pass content explicitly as a parameter

app/helpers/application_helper.rb
@@ -1309,11 +1309,11 @@ module ApplicationHelper @@ -1309,11 +1309,11 @@ module ApplicationHelper
1309 !content.public? || content.folder? || (profile == user && user.communities.blank? && !environment.portal_enabled) 1309 !content.public? || content.folder? || (profile == user && user.communities.blank? && !environment.portal_enabled)
1310 end 1310 end
1311 1311
1312 - def remove_content_button(action) 1312 + def remove_content_button(action, content)
1313 method_name = "content_remove_#{action.to_s}" 1313 method_name = "content_remove_#{action.to_s}"
1314 - plugin_condition = @plugins.dispatch(method_name, @page).include?(true) 1314 + plugin_condition = @plugins.dispatch(method_name, content).include?(true)
1315 begin 1315 begin
1316 - core_condition = self.send(method_name, @page) 1316 + core_condition = self.send(method_name, content)
1317 rescue NoMethodError 1317 rescue NoMethodError
1318 core_condition = false 1318 core_condition = false
1319 end 1319 end
app/views/cms/view.html.erb
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <%= _('Content management') %> 2 <%= _('Content management') %>
3 </h1> 3 </h1>
4 4
5 -<% if !environment.enabled?('cant_change_homepage') && !remove_content_button(:home) %> 5 +<% if !environment.enabled?('cant_change_homepage') && !remove_content_button(:home, profile.home_page) %>
6 <div class="cms-homepage"> 6 <div class="cms-homepage">
7 <%= _('Profile homepage:') %> 7 <%= _('Profile homepage:') %>
8 <% if profile.home_page %> 8 <% if profile.home_page %>
@@ -66,17 +66,17 @@ @@ -66,17 +66,17 @@
66 <%= short_description %> 66 <%= short_description %>
67 </td> 67 </td>
68 <td class="article-controls"> 68 <td class="article-controls">
69 - <%= expirable_button article, :edit, _('Edit'), {:action => 'edit', :id => article.id} if !remove_content_button(:edit) %> 69 + <%= expirable_button article, :edit, _('Edit'), {:action => 'edit', :id => article.id} if !remove_content_button(:edit, article) %>
70 <%= button_without_text :eyes, _('Public view'), article.view_url %> 70 <%= button_without_text :eyes, _('Public view'), article.view_url %>
71 - <%= display_spread_button(article) unless article.folder? || remove_content_button(:spread)%>  
72 - <% if !environment.enabled?('cant_change_homepage') && !remove_content_button(:home) %> 71 + <%= display_spread_button(article) unless remove_content_button(:spread, article) %>
  72 + <% if !environment.enabled?('cant_change_homepage') && !remove_content_button(:home, article) %>
73 <% if profile.home_page != article %> 73 <% if profile.home_page != article %>
74 <%= expirable_button article, :home, _('Use as homepage'), { :action => 'set_home_page', :id => article.id }, :method => :post %> 74 <%= expirable_button article, :home, _('Use as homepage'), { :action => 'set_home_page', :id => article.id }, :method => :post %>
75 <% else %> 75 <% else %>
76 <%= button_without_text(:'home-not', _('Reset homepage'), { :action => 'set_home_page', :id => nil }, :method => :post) %> 76 <%= button_without_text(:'home-not', _('Reset homepage'), { :action => 'set_home_page', :id => nil }, :method => :post) %>
77 <% end %> 77 <% end %>
78 <% end %> 78 <% end %>
79 - <%= display_delete_button(article) if !remove_content_button(:delete) %> 79 + <%= display_delete_button(article) if !remove_content_button(:delete, article) %>
80 </td> 80 </td>
81 </tr> 81 </tr>
82 <% end %> 82 <% end %>
app/views/content_viewer/_article_toolbar.html.erb
@@ -2,40 +2,40 @@ @@ -2,40 +2,40 @@
2 <div id="article-actions"> 2 <div id="article-actions">
3 3
4 4
5 - <% if @page.allow_edit?(user) && !remove_content_button(:edit) %> 5 + <% if @page.allow_edit?(user) && !remove_content_button(:edit, @page) %>
6 <% content = content_tag('span', label_for_edit_article(@page)) %> 6 <% content = content_tag('span', label_for_edit_article(@page)) %>
7 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'edit', :id => @page.id }) %> 7 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'edit', :id => @page.id }) %>
8 <%= expirable_button @page, :edit, content, url %> 8 <%= expirable_button @page, :edit, content, url %>
9 <% end %> 9 <% end %>
10 10
11 - <% if @page != profile.home_page && !@page.has_posts? && @page.allow_delete?(user) && !remove_content_button(:delete)%> 11 + <% if @page != profile.home_page && !@page.has_posts? && @page.allow_delete?(user) && !remove_content_button(:delete, @page)%>
12 <% content = content_tag( 'span', _('Delete') ) %> 12 <% content = content_tag( 'span', _('Delete') ) %>
13 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'destroy', :id => @page.id}) %> 13 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'destroy', :id => @page.id}) %>
14 <% options = {:method => :post, :confirm => delete_article_message(@page)} %> 14 <% options = {:method => :post, :confirm => delete_article_message(@page)} %>
15 <%= expirable_button @page, :delete, content, url, options %> 15 <%= expirable_button @page, :delete, content, url, options %>
16 <% end %> 16 <% end %>
17 17
18 - <% if @page.allow_spread?(user) && !remove_content_button(:spread) %> 18 + <% if @page.allow_spread?(user) && !remove_content_button(:spread, @page) %>
19 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'publish', :id => @page.id }) %> 19 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'publish', :id => @page.id }) %>
20 <%= expirable_button @page, :spread, content_tag( 'span', _('Spread this') ), url, {:class => 'colorbox'} if url %> 20 <%= expirable_button @page, :spread, content_tag( 'span', _('Spread this') ), url, {:class => 'colorbox'} if url %>
21 <% end %> 21 <% end %>
22 22
23 <% if !@page.gallery? && (@page.allow_create?(user) || (@page.parent && @page.parent.allow_create?(user))) %> 23 <% if !@page.gallery? && (@page.allow_create?(user) || (@page.parent && @page.parent.allow_create?(user))) %>
24 - <% if @page.translatable? && !@page.native_translation.language.blank? && !remove_content_button(:locale) %> 24 + <% if @page.translatable? && !@page.native_translation.language.blank? && !remove_content_button(:locale, @page) %>
25 <% content = _('Add translation') %> 25 <% content = _('Add translation') %>
26 <% parent_id = (@page.folder? ? @page : (@page.parent.nil? ? nil : @page.parent)) %> 26 <% parent_id = (@page.folder? ? @page : (@page.parent.nil? ? nil : @page.parent)) %>
27 <% url = profile.admin_url.merge(:controller => 'cms', :action => 'new', :parent_id => parent_id, :type => @page.type, :article => { :translation_of_id => @page.native_translation.id })%> 27 <% url = profile.admin_url.merge(:controller => 'cms', :action => 'new', :parent_id => parent_id, :type => @page.type, :article => { :translation_of_id => @page.native_translation.id })%>
28 <%= expirable_button @page, :locale, content, url %> 28 <%= expirable_button @page, :locale, content, url %>
29 <% end %> 29 <% end %>
30 30
31 - <%= colorbox_button(:new, label_for_new_article(@page), profile.admin_url.merge(:controller => 'cms', :action => 'new', :parent_id => (@page.folder? ? @page : (@page.parent.nil? ? nil : @page.parent)))) unless remove_content_button(:new) %> 31 + <%= colorbox_button(:new, label_for_new_article(@page), profile.admin_url.merge(:controller => 'cms', :action => 'new', :parent_id => (@page.folder? ? @page : (@page.parent.nil? ? nil : @page.parent)))) unless remove_content_button(:new, @page) %>
32 <% end %> 32 <% end %>
33 33
34 <% if @page.accept_uploads? && @page.allow_create?(user) %> 34 <% if @page.accept_uploads? && @page.allow_create?(user) %>
35 - <%= button('upload-file', _('Upload files'), profile.admin_url.merge(:controller => 'cms', :action => 'upload_files', :parent_id => (@page.folder? ? @page : @page.parent))) unless remove_content_button(:upload)%> 35 + <%= button('upload-file', _('Upload files'), profile.admin_url.merge(:controller => 'cms', :action => 'upload_files', :parent_id => (@page.folder? ? @page : @page.parent))) unless remove_content_button(:upload, @page)%>
36 <% end %> 36 <% end %>
37 37
38 - <% if !@page.allow_create?(user) && profile.community? && (@page.blog? || @page.parent && @page.parent.blog?) && !remove_content_button(:suggest) %> 38 + <% if !@page.allow_create?(user) && profile.community? && (@page.blog? || @page.parent && @page.parent.blog?) && !remove_content_button(:suggest, @page) %>
39 <% content = content_tag( 'span', _('Suggest an article') ) %> 39 <% content = content_tag( 'span', _('Suggest an article') ) %>
40 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'suggest_an_article'}) %> 40 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'suggest_an_article'}) %>
41 <% options = {:id => 'suggest-article-link'} %> 41 <% options = {:id => 'suggest-article-link'} %>
app/views/content_viewer/versioned_article.html.erb
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 <div id="article-actions"> 7 <div id="article-actions">
8 <%= button(:clock, _('All versions'), {:controller => 'content_viewer', :profile => profile.identifier, :action => 'article_versions'}, :id => 'article-versions-link') %> 8 <%= button(:clock, _('All versions'), {:controller => 'content_viewer', :profile => profile.identifier, :action => 'article_versions'}, :id => 'article-versions-link') %>
9 9
10 - <% if @page.allow_edit?(user) && !remove_content_button(:undo) %> 10 + <% if @page.allow_edit?(user) && !remove_content_button(:undo, @page) %>
11 <% content = content_tag('span', _('Revert to this version')) %> 11 <% content = content_tag('span', _('Revert to this version')) %>
12 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'edit', :id => @page.id, :version => @version }) %> 12 <% url = profile.admin_url.merge({ :controller => 'cms', :action => 'edit', :id => @page.id, :version => @version }) %>
13 <%= expirable_button @page, :undo, content, url, :id => 'article-revert-version-link' %> 13 <%= expirable_button @page, :undo, content, url, :id => 'article-revert-version-link' %>