diff --git a/app/controllers/public/search_controller.rb b/app/controllers/public/search_controller.rb index abd216b..12b818b 100644 --- a/app/controllers/public/search_controller.rb +++ b/app/controllers/public/search_controller.rb @@ -144,7 +144,7 @@ class SearchController < PublicController def load_query @asset = (params[:asset] || params[:action]).to_sym @order ||= [@asset] - params[:display] ||= 'list' + params[:display] ||= 'items' @searches ||= {} @query = params[:query] || '' diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index db14797..4eba679 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -265,9 +265,9 @@ module ApplicationHelper VIEW_EXTENSIONS = %w[.rhtml .html.erb] - def partial_for_class_in_view_path(klass, view_path, suffix = nil) + def partial_for_class_in_view_path(klass, view_path, prefix = nil, suffix = nil) return nil if klass.nil? - name = [klass.name.underscore, suffix].compact.map(&:to_s).join('_') + name = [prefix, klass.name.underscore, suffix].compact.map(&:to_s).join('_') search_name = String.new(name) if search_name.include?("/") @@ -282,14 +282,14 @@ module ApplicationHelper return name if File.exists?(File.join(path)) end - partial_for_class_in_view_path(klass.superclass, view_path, suffix) + partial_for_class_in_view_path(klass.superclass, view_path, prefix, suffix) end - def partial_for_class(klass, suffix=nil) + def partial_for_class(klass, prefix=nil, suffix=nil) raise ArgumentError, 'No partial for object. Is there a partial for any class in the inheritance hierarchy?' if klass.nil? name = klass.name.underscore @controller.view_paths.each do |view_path| - partial = partial_for_class_in_view_path(klass, view_path, suffix) + partial = partial_for_class_in_view_path(klass, view_path, prefix, suffix) return partial if partial end diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb index 27e1d30..69aee8c 100644 --- a/app/helpers/search_helper.rb +++ b/app/helpers/search_helper.rb @@ -42,12 +42,21 @@ module SearchHelper :align => 'center', :class => 'search-category-context') if category end - def map_capable?(asset) + def display_map?(asset) + [:enterprises, :products].include?(asset) + end + + def display_items?(asset) + puts "\n\n" + asset.inspect + "\n\n" + ![:products, :events].include?(asset) + end + + def display_full?(asset) [:enterprises, :products].include?(asset) end def display_results(asset = nil) - if map_capable?(asset) and map_search? + if display_map?(asset) and map_search? partial = 'google_maps' klass = 'map' else @@ -71,15 +80,13 @@ module SearchHelper end end - def display_filter(asset, display, float = 'right') - if map_capable?(asset) - list_link = display == 'list' ? _('List') : link_to(_('List'), params.merge(:display => 'list')) - map_link = display == 'map' ? _('Map') : link_to(_('Map'), params.merge(:display => 'map')) + def display_selector(asset, display, float = 'right') + if [display_map?(asset), display_items?(asset), display_full?(asset)].select {|option| option}.count > 1 + items_link = display_items?(asset) ? (display == 'items' ? _('Items') : link_to(_('Items'), params.merge(:display => 'items'))) : nil + map_link = display_map?(asset) ? (display == 'map' ? _('Map') : link_to(_('Map'), params.merge(:display => 'map'))) : nil + full_link = display_full?(asset) ? (display == 'full' ? _('Full') : link_to(_('Full'), params.merge(:display => 'full'))) : nil content_tag('div', - content_tag('strong', _('Display')) + ': ' + - list_link + - ' | ' + - map_link, + content_tag('strong', _('Display')) + ': ' + [items_link, map_link, full_link].compact.join(' | '), :id => 'search-display-filter', :style => "float: #{float}" ) diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index c22ec27..469a2d0 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -183,4 +183,8 @@ class Enterprise < Organization Scrap.find_by_sql("SELECT id, updated_at, 'Scrap' AS klass FROM scraps WHERE scraps.receiver_id = #{self.id} AND scraps.scrap_id IS NULL UNION SELECT id, updated_at, 'ActionTracker::Record' AS klass FROM action_tracker WHERE action_tracker.target_id = #{self.id} UNION SELECT action_tracker.id, action_tracker.updated_at, 'ActionTracker::Record' AS klass FROM action_tracker INNER JOIN articles ON action_tracker.target_id = articles.id WHERE articles.profile_id = #{self.id} AND action_tracker.target_type = 'Article' ORDER BY action_tracker.updated_at DESC") end + def more_recent_label + '' + end + end diff --git a/app/views/search/_profile.rhtml b/app/views/search/_profile.rhtml index 6717f40..c363f94 100644 --- a/app/views/search/_profile.rhtml +++ b/app/views/search/_profile.rhtml @@ -5,7 +5,8 @@ <% else %>