Commit 81ca0e3a779187100adb58d6e96d5ee030707bee

Authored by Rodrigo Souto
2 parents 5a911ba4 278f8b85

Merge commit 'refs/merge-requests/264' of git://gitorious.org/noosfero/noosfero …

…into merge-requests/264

Conflicts:
	app/controllers/public/catalog_controller.rb
	app/views/catalog/index.rhtml
app/controllers/public/catalog_controller.rb
... ... @@ -5,15 +5,14 @@ class CatalogController < PublicController
5 5 before_filter :check_enterprise_and_environment
6 6  
7 7 def index
8   - @category = params[:level] ? ProductCategory.find(params[:level]) : nil
9   - @products = @profile.products.from_category(@category).paginate(:order => 'available desc, highlighted desc, name asc', :per_page => 9, :page => params[:page])
10   - @categories = ProductCategory.on_level(params[:level]).order(:name)
  8 + extend CatalogHelper
  9 + catalog_load_index
11 10 end
12 11  
13 12 protected
14 13  
15 14 def check_enterprise_and_environment
16   - unless @profile.kind_of?(Enterprise) && !@profile.environment.enabled?('disable_products_for_enterprises')
  15 + unless profile.kind_of?(Enterprise) && !profile.environment.enabled?('disable_products_for_enterprises')
17 16 redirect_to :controller => 'profile', :profile => profile.identifier, :action => 'index'
18 17 end
19 18 end
... ...
app/helpers/catalog_helper.rb
... ... @@ -3,9 +3,18 @@ module CatalogHelper
3 3 include DisplayHelper
4 4 include ManageProductsHelper
5 5  
  6 + def catalog_load_index options = {:page => params[:page], :show_categories => true}
  7 + if options[:show_categories]
  8 + @category = params[:level] ? ProductCategory.find(params[:level]) : nil
  9 + @categories = ProductCategory.on_level(params[:level]).order(:name)
  10 + end
  11 +
  12 + @products = profile.products.from_category(@category).paginate(:order => 'available desc, highlighted desc, name asc', :per_page => 9, :page => options[:page])
  13 + end
  14 +
6 15 def breadcrumb(category)
7   - start = link_to(_('Start'), {:action => 'index'})
8   - ancestors = category.ancestors.map { |c| link_to(c.name, {:action => 'index', :level => c.id}) }.reverse
  16 + start = link_to(_('Start'), {:controller => :catalog, :action => 'index'})
  17 + ancestors = category.ancestors.map { |c| link_to(c.name, {:controller => :catalog, :action => 'index', :level => c.id}) }.reverse
9 18 current_level = content_tag('strong', category.name)
10 19 all_items = [start] + ancestors + [current_level]
11 20 content_tag('div', all_items.join(' → '), :id => 'breadcrumb')
... ... @@ -15,7 +24,7 @@ module CatalogHelper
15 24 count = profile.products.from_category(category).count
16 25 name = truncate(category.name, :length => 22 - count.to_s.size)
17 26 link_name = sub ? name : content_tag('strong', name)
18   - link = link_to(link_name, {:action => 'index', :level => category.id}, :title => category.name)
  27 + link = link_to(link_name, {:controller => :catalog, :action => 'index', :level => category.id}, :title => category.name)
19 28 content_tag('li', "#{link} (#{count})") if count > 0
20 29 end
21 30  
... ...
app/models/enterprise_homepage.rb
... ... @@ -20,7 +20,8 @@ class EnterpriseHomepage < Article
20 20 enterprise_homepage = self
21 21 lambda do
22 22 extend EnterpriseHomepageHelper
23   - @products = profile.products.paginate(:order => 'id asc', :per_page => 9, :page => 1)
  23 + extend CatalogHelper
  24 + catalog_load_index :page => 1, :show_categories => false
24 25 render :partial => 'content_viewer/enterprise_homepage', :object => enterprise_homepage
25 26 end
26 27 end
... ...
app/views/catalog/index.rhtml
... ... @@ -3,26 +3,28 @@
3 3  
4 4 <h1><%= _('Products/Services') %></h1>
5 5  
6   -<%= breadcrumb(@category) if params[:level] %>
7   -
8   -<div class='l-sidebar-left-bar'>
9   - <ul>
10   - <%= content_tag('li', link_to(_('Homepage'), profile.url), :class => 'catalog-categories-link') %>
11   - <%= content_tag('li', link_to(_('Catalog start'), profile.catalog_url), :class => 'catalog-categories-link') %>
12   - <% if @categories.present? %>
13   - <% @categories.each do |category| %>
14   - <%= category_link(category) %>
15   - <%= category_sub_links(category) %>
  6 +<% if @categories %>
  7 + <%= breadcrumb(@category) if params[:level] %>
  8 +
  9 + <div class='l-sidebar-left-bar'>
  10 + <ul>
  11 + <%= content_tag('li', link_to(_('Homepage'), profile.url), :class => 'catalog-categories-link') %>
  12 + <%= content_tag('li', link_to(_('Catalog start'), profile.catalog_url), :class => 'catalog-categories-link') %>
  13 + <% if @categories.present? %>
  14 + <% @categories.each do |category| %>
  15 + <%= category_link(category) %>
  16 + <%= category_sub_links(category) %>
  17 + <% end %>
  18 + <% elsif @category.present? %>
  19 + <%= content_tag('li', _('There are no sub-categories for %s') % @category.name, :id => 'catalog-categories-notice') %>
  20 + <% else %>
  21 + <%= content_tag('li', _('There are no categories available.'), :id => 'catalog-categories-notice') %>
16 22 <% end %>
17   - <% elsif @category.present? %>
18   - <%= content_tag('li', _('There are no sub-categories for %s') % @category.name, :id => 'catalog-categories-notice') %>
19   - <% else %>
20   - <%= content_tag('li', _('There are no categories available.'), :id => 'catalog-categories-notice') %>
21   - <% end %>
22   - </ul>
23   -</div>
24   -
25   -<ul id="product-list" class="l-sidebar-left-content">
  23 + </ul>
  24 + </div>
  25 +<% end %>
  26 +
  27 +<ul id="product-list" class="<%="l-sidebar-left-content" if @categories %>">
26 28 <% @products.each do |product| %>
27 29 <% extra_content = @plugins.dispatch(:catalog_item_extras, product).collect { |content| instance_eval(&content) } %>
28 30 <% extra_content_list = @plugins.dispatch(:catalog_list_item_extras, product).collect { |content| instance_eval(&content) } %>
... ...