add search to archive
This commit is contained in:
1 parent
704db56925
commit
30824d1620
11 files changed
+75
-32
No files matched your search
vendor/built_in_modules/announcement/app/views/panel/announcement/front_end/bulletins/index.html.erb
Vendored
+1
-6
@@ -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>
|
||||
|
||||
+2
-6
@@ -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>
|
||||
|
||||
Vendored
+29
-12
@@ -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,22 +28,27 @@ 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
|
||||
|
||||
Vendored
+2
-1
@@ -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
-1
@@ -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
|
||||
|
||||
+5
@@ -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
Block a user