From a7a8a504a7b06e27c56d6f7680395d3d571f7195 Mon Sep 17 00:00:00 2001 From: Bernie Chiu Date: Wed, 30 Oct 2013 16:44:55 +0800 Subject: [PATCH] Fix category search to archives frontend search --- .../front_end/archive_files_controller.rb | 31 +++++++++++++------ .../archive/app/models/archive_file.rb | 2 +- .../archive/app/models/archive_tag.rb | 3 +- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb b/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb index fbf2a2a51..410cefd78 100644 --- a/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb +++ b/vendor/built_in_modules/archive/app/controllers/panel/archive/front_end/archive_files_controller.rb @@ -7,15 +7,24 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController end def get_search_result - @search = ArchiveFileCategory.solr_search do - fulltext params[:search_query] - with(:frontend_search,true) - end + @search = ArchiveFileCategory.solr_search do + fulltext params[:search_query] + with(:frontend_search,true) + end - search_result = @search.results.collect{|result| result.id} - params[:category_id] = @search.results.collect{|result| result.id} + search_result = @search.results.collect{|result| result.id} + params[:category_id] = @search.results.collect{|result| result.id} - @archive_file_categorys = ArchiveFileCategory.any_in(_id:search_result).page( params[:page_main]).per(@page_num) + @archive_file_categorys = ArchiveFileCategory.any_in(_id:search_result).page( params[:page_main]).per(@page_num) + end + + def get_search_category(search_query) + search_category = ArchiveFileCategory.solr_search do + fulltext search_query + with(:frontend_search, true) + end + + params[:category_id] = search_category.results.collect { |result| result.id } end def index @@ -27,25 +36,27 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController @page_num = 10 end + get_search_category(params[:search_query]) + date_now = Time.now @archive_file_categorys = ArchiveFileCategory.all # @archive_files = ArchiveFile.where( :is_hidden => false ).desc(:is_top).page(params[:page]).per(@page_num) if !params[:category_id].blank? && !params[:tag_id].blank? @archive_files = @archive_files.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) - - @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil + @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil elsif !params[:category_id].blank? @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) @current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil + elsif !params[:tag_id].blank? @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top ).page( params[:page_main] ).per(@page_num) + else @archive_files = ArchiveFile.default_sort(params[:sort]).can_display.desc( :is_top ).page( params[:page_main] ).per(@page_num) end - get_categorys if params[:sort] diff --git a/vendor/built_in_modules/archive/app/models/archive_file.rb b/vendor/built_in_modules/archive/app/models/archive_file.rb index 43d3a4704..9f38287ed 100644 --- a/vendor/built_in_modules/archive/app/models/archive_file.rb +++ b/vendor/built_in_modules/archive/app/models/archive_file.rb @@ -42,10 +42,10 @@ class ArchiveFile # text :titles do # title_translations.to_a.collect{|t| t[1]} # end + # boolean :frontend_search do # !is_hidden # end - # end def self.search( category_id = nil ) diff --git a/vendor/built_in_modules/archive/app/models/archive_tag.rb b/vendor/built_in_modules/archive/app/models/archive_tag.rb index 48aedc30f..9e89babe4 100644 --- a/vendor/built_in_modules/archive/app/models/archive_tag.rb +++ b/vendor/built_in_modules/archive/app/models/archive_tag.rb @@ -1,8 +1,7 @@ class ArchiveTag < Tag has_and_belongs_to_many :archive_files - - + def get_visible_links(sort = :name) self.archive_files.where(:is_hidden => false).desc(:is_top, sort) end