add search to archive
This commit is contained in:
parent
704db56925
commit
30824d1620
|
@ -1,9 +1,4 @@
|
|||
<% if @data.blank? and @search %>
|
||||
<%=render :partial => 'shared/search_not_found' %>
|
||||
<% elsif @search %>
|
||||
<%= t("search.result_get",:search_word => params[:search_query],:item_num=>@data.count) unless (@data.count == 30) %>
|
||||
<%= t("search.too_many",:search_word => params[:search_query],:exceed_num=>@data.count) if (@data.count ==30) %>
|
||||
<% end %>
|
||||
<%= render :partial => 'shared/search_header',:locals=>{:items=>@data} %>
|
||||
|
||||
<%= render @partial %>
|
||||
<% if @paginate and !@data.blank? %>
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<% if items.blank? and !params[:search_query].blank? %>
|
||||
<%=render :partial => 'shared/search_not_found' %>
|
||||
<% elsif !params[:search_query].blank? %>
|
||||
<%= t("search.result_get",:search_word => params[:search_query],:item_num=>items.count) unless (items.count == 30) %>
|
||||
<%= t("search.too_many",:search_word => params[:search_query],:exceed_num=>items.count) if (items.count ==30) %>
|
||||
<% end %>
|
|
@ -17,12 +17,7 @@
|
|||
<%= t("search.unit_get",:unit_name => params[:name],:item_num=>@bulletins.count) %>
|
||||
<% end %>
|
||||
|
||||
<% if @bulletins.blank? and !params[:search_query].blank? %>
|
||||
<%=render :partial => 'shared/search_not_found' %>
|
||||
<% elsif !params[:search_query].blank? %>
|
||||
<%= t("search.result_get",:search_word => params[:search_query],:item_num=>@bulletins.count) unless (@bulletins.count == 30) %>
|
||||
<%= t("search.too_many",:search_word => params[:search_query],:exceed_num=>@bulletins.count) if (@bulletins.count ==30) %>
|
||||
<% end %>
|
||||
<%= render :partial => 'shared/search_header',:locals=>{:items=>@bulletins} %>
|
||||
|
||||
<% @bulletins.each do |post| %>
|
||||
<tr>
|
||||
|
|
|
@ -17,12 +17,8 @@
|
|||
<%= t("search.unit_get",:unit_name => params[:name],:item_num=>@bulletins.count) %>
|
||||
<% end %>
|
||||
|
||||
<% if @bulletins.blank? and !params[:search_query].blank? %>
|
||||
<%=render :partial => 'shared/search_not_found' %>
|
||||
<% elsif !params[:search_query].blank? %>
|
||||
<%= t("search.result_get",:search_word => params[:search_query],:item_num=>@bulletins.count) unless (@bulletins.count == 30) %>
|
||||
<%= t("search.too_many",:search_word => params[:search_query],:exceed_num=>@bulletins.count) if (@bulletins.count ==30) %>
|
||||
<% end %>
|
||||
|
||||
<%= render :partial => 'shared/search_header',:locals=>{:items=>@bulletins} %>
|
||||
|
||||
<% @bulletins.each do |post| %>
|
||||
<tr>
|
||||
|
|
|
@ -5,6 +5,18 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
|
|||
@app_title = 'archive_files'
|
||||
end
|
||||
|
||||
def get_search_result
|
||||
@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}
|
||||
|
||||
@archive_file_categorys = ArchiveFileCategory.any_in(_id:search_result).page( params[:page_main]).per(@page_num)
|
||||
end
|
||||
|
||||
def index
|
||||
@item = Page.find(params[:page_id])
|
||||
@title = @item.title
|
||||
|
@ -16,23 +28,28 @@ class Panel::Archive::FrontEnd::ArchiveFilesController < OrbitWidgetController
|
|||
|
||||
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.can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
|
||||
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top, :created_at ).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.can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
if params[:search_query]
|
||||
get_search_result
|
||||
@archive_files = ArchiveFile.can_display.where(:archive_file_category_id.in => @archive_file_categorys.collect{|t| t.id}).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
else
|
||||
@archive_files = ArchiveFile.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
if !params[:category_id].blank? && !params[:tag_id].blank?
|
||||
@archive_files = @archive_files.can_display.where(:archive_file_category_id.in => params[:category_id], :tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
|
||||
@current_category = ArchiveFileCategory.from_id(params[:category_id]) rescue nil
|
||||
|
||||
elsif !params[:category_id].blank?
|
||||
@archive_files = ArchiveFile.can_display.where(:archive_file_category_id.in => params[:category_id]).desc( :is_top, :created_at ).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.can_display.where(:tagged_ids.in => params[:tag_id]).desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
else
|
||||
@archive_files = ArchiveFile.can_display.desc( :is_top, :created_at ).page( params[:page_main] ).per(@page_num)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
get_categorys
|
||||
end
|
||||
|
||||
|
|
|
@ -36,6 +36,16 @@ class ArchiveFile
|
|||
|
||||
after_save :save_archive_file_multiples
|
||||
|
||||
# searchable do
|
||||
# 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 )
|
||||
|
||||
if category_id.to_s.size > 0
|
||||
|
|
|
@ -5,6 +5,7 @@ class ArchiveFileCategory
|
|||
include Mongoid::Timestamps
|
||||
include OrbitCoreLib::ObjectAuthable
|
||||
include OrbitCoreLib::ObjectDisable
|
||||
include Sunspot::Mongo
|
||||
# include Mongoid::MultiParameterAttributes
|
||||
APP_NAME = 'Archive'
|
||||
ObjectAuthTitlesOptions = %W{submit_new fact_check}
|
||||
|
@ -19,6 +20,22 @@ class ArchiveFileCategory
|
|||
|
||||
validates :title, :at_least_one => true
|
||||
|
||||
searchable do
|
||||
text :titles do
|
||||
title_translations.to_a.collect{|t| t[1]}
|
||||
end
|
||||
|
||||
boolean :frontend_search do
|
||||
!disable
|
||||
end
|
||||
|
||||
text :files do
|
||||
archive_files.can_display.collect{|t| t.title_translations.to_a.collect{|t| t[1]}}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def pp_object
|
||||
title
|
||||
end
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<% # encoding: utf-8 %>
|
||||
|
||||
<%= render :partial => 'shared/search_header',:locals=>{:items=>@archive_files} %>
|
||||
|
||||
<div class="o-archives layout-table">
|
||||
|
||||
|
@ -14,7 +15,7 @@
|
|||
<tbody>
|
||||
|
||||
<% @archive_files.each_with_index do |post,i| %>
|
||||
<tr <% if ( (i + 1) % 2 ) == 0 %> class="even" <% end %>>
|
||||
<tr <% if i.even?%> class="even" <% end %>>
|
||||
<td><div class="o-archives-title"><%= post.title %></div></td>
|
||||
<td>
|
||||
<div class="o-archives-list-item">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<%= form_tag panel_announcement_front_end_bulletins_path, method: :get do %>
|
||||
<%= form_tag panel_archive_front_end_archive_files_path, method: :get do %>
|
||||
<%= hidden_field_tag :category_id, params[:category_id] %>
|
||||
<%= hidden_field_tag :tag_id, params[:tag_id] %>
|
||||
<p>
|
|
@ -16,6 +16,7 @@ Rails.application.routes.draw do
|
|||
end
|
||||
namespace :widget do
|
||||
match "index" => "archive_files#index"
|
||||
match "archive_search_block" => "archive_files#archive_search_block"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -34,6 +34,11 @@ module Archive
|
|||
widget_i18n "archive.widget.index"
|
||||
style ["1"]
|
||||
end
|
||||
|
||||
customize_widget "archive_search_block" do
|
||||
widget_i18n "announcement.widget.search"
|
||||
end
|
||||
|
||||
# item "index","announcement.widget.index",:default_template=>true,:fields=>["title","category","postdate"]
|
||||
# item "bulletins_and_web_links","announcement.widget.bulletins_and_web_links"
|
||||
end
|
||||
|
|
Reference in New Issue