Commit 81ca0e3a779187100adb58d6e96d5ee030707bee
Exists in
master
and in
29 other branches
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
Showing
4 changed files
with
38 additions
and
27 deletions
Show diff stats
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) } %> | ... | ... |