搜索中加入课程
This commit is contained in:
parent
0d968a0025
commit
d407b5ab10
|
@ -161,7 +161,7 @@ class WelcomeController < ApplicationController
|
|||
query: @name,
|
||||
type:"most_fields",
|
||||
operator: "or",
|
||||
fields: ['login', 'firstname','lastname','name','description^0.5','filename','subject','content^0.5']
|
||||
fields: ['login', 'firstname','lastname','title','name','description^0.5','filename','subject','content^0.5']
|
||||
}
|
||||
},
|
||||
highlight: {
|
||||
|
@ -171,6 +171,7 @@ class WelcomeController < ApplicationController
|
|||
login: {},
|
||||
firstname: {},
|
||||
lastname: {},
|
||||
title:{},
|
||||
name:{},
|
||||
description:{},
|
||||
filename:{},
|
||||
|
@ -181,6 +182,8 @@ class WelcomeController < ApplicationController
|
|||
},[User,Course,Attachment,Project,Memo] ).page(params[:page] || 1).per(20).results
|
||||
when 'user'
|
||||
@users = User.search(@name).page(params[:page] || 1).per(20)
|
||||
when 'syllabus'
|
||||
@syllabuses = Syllabus.search(@name).page(params[:page] || 1).per(20)
|
||||
when 'project'
|
||||
@projects = Project.search(@name).page(params[:page] || 1).per(20).results
|
||||
when 'course'
|
||||
|
@ -196,7 +199,7 @@ class WelcomeController < ApplicationController
|
|||
query: @name,
|
||||
type:"most_fields",
|
||||
operator: "or",
|
||||
fields: ['login', 'firstname','lastname','name','description^0.5','filename','subject','content^0.5']
|
||||
fields: ['login', 'firstname','lastname','title','name','description^0.5','filename','subject','content^0.5']
|
||||
}
|
||||
},
|
||||
highlight: {
|
||||
|
@ -206,6 +209,7 @@ class WelcomeController < ApplicationController
|
|||
login: {},
|
||||
firstname: {},
|
||||
lastname: {},
|
||||
title:{},
|
||||
name:{},
|
||||
description:{},
|
||||
filename:{},
|
||||
|
@ -213,12 +217,12 @@ class WelcomeController < ApplicationController
|
|||
content:{}
|
||||
}
|
||||
}
|
||||
},[User,Course,Attachment,Project,Memo] ).page(params[:page] || 1).per(20).results
|
||||
},[User,Syllabus,Course,Attachment,Project,Memo] ).page(params[:page] || 1).per(20).results
|
||||
|
||||
end
|
||||
|
||||
@users_count = User.search(@name).results.total
|
||||
|
||||
@syllabus_count = Syllabus.search(@name).results.total
|
||||
@course_count = Course.search(@name).results.total
|
||||
@attach_count = Attachment.search(@name).results.total
|
||||
@project_count = Project.search(@name).results.total
|
||||
|
@ -229,7 +233,7 @@ class WelcomeController < ApplicationController
|
|||
query: @name,
|
||||
type:"most_fields",
|
||||
operator: "or",
|
||||
fields: ['login', 'firstname','lastname','name','description^0.5','filename','subject','content^0.5']
|
||||
fields: ['login', 'firstname','lastname','title','name','description^0.5','filename','subject','content^0.5']
|
||||
}
|
||||
},
|
||||
highlight: {
|
||||
|
@ -239,6 +243,7 @@ class WelcomeController < ApplicationController
|
|||
login: {},
|
||||
firstname: {},
|
||||
lastname: {},
|
||||
title:{},
|
||||
name:{},
|
||||
description:{},
|
||||
filename:{},
|
||||
|
|
|
@ -57,4 +57,32 @@ class Syllabus < ActiveRecord::Base
|
|||
jfm.save
|
||||
jfm
|
||||
end
|
||||
|
||||
def self.search(query)
|
||||
__elasticsearch__.search(
|
||||
{
|
||||
query: {
|
||||
multi_match: {
|
||||
query: query,
|
||||
type:"most_fields",
|
||||
operator: "or",
|
||||
fields: ['title', 'description^0.5']
|
||||
}
|
||||
},
|
||||
sort: {
|
||||
_score:{order: "desc" },
|
||||
updated_at:{order:"desc"}
|
||||
|
||||
},
|
||||
highlight: {
|
||||
pre_tags: ['<span class="c_red">'],
|
||||
post_tags: ['</span>'],
|
||||
fields: {
|
||||
title: {},
|
||||
description: {}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
<% name = name%>
|
||||
|
||||
<%= form_tag({controller: :welcome, action: :search },:class=>'navHomepageSearchBox', method: :get) do %>
|
||||
<input type="text" name="q" value="<%= name.nil? ? "" : name%>" id="navHomepageSearchInput" class="navHomepageSearchInput" placeholder="请输入关键词搜索公开的班级、项目、用户、资源以及帖子"/>
|
||||
<input type="text" name="q" value="<%= name.nil? ? "" : name%>" id="navHomepageSearchInput" class="navHomepageSearchInput" placeholder="请输入关键词搜索公开的课程、班级、项目、用户、资源以及帖子"/>
|
||||
<input type="hidden" name="search_type" id="type" value="all"/>
|
||||
<input type="text" style="display: none;"/>
|
||||
<a href="javascript:void(0);" class="homepageSearchIcon" onclick="search_in_header($(this));"></a>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<% unless syllabuses.nil? || syllabuses.empty?%>
|
||||
<% syllabuses.each do |syllabus|%>
|
||||
<ul class="searchContent w968">
|
||||
<li class="f16 mb5 fontGrey3"><a href="javascript:void(0);" class="fontGrey3 fl"><span class="c_red"><%= syllabus.title %></span>课程</a><div class="mt5 fl"><img src="images/search_icon_03.png" width="8" height="16" class="fl" /><span class="searchTag">课程</span></div><div class="cl"></div></li>
|
||||
<li class="f12 fontGrey2"><span class="mr30">创建者:<%=syllabus.user.login+"("+syllabus.user.show_name+")"%></span><span class="mr30">教师团队:<%=syllabus.syllabus_member.count%></span><span class="mr30">班级:<%=syllabus.courses.count%></span><span class="mr30">更新时间:<%=format(syllabus.updated_at)%></span><span class="mr30">单位:<%=syllabus.user.user_extensions.occupation.present? ? syllabus.user.user_extensions.occupation:'' %></span></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
<div class="pageRoll">
|
||||
<%= paginate courses,:params => {:controller => 'welcome', :action => 'search',:search_type=>'course'}%>
|
||||
</div>
|
||||
<% end %>
|
|
@ -3,7 +3,7 @@
|
|||
function g(o){return document.getElementById(o);}
|
||||
function HoverLi(n){
|
||||
//如果有N个标签,就将i<=N;
|
||||
for(var i=1;i<=6;i++){
|
||||
for(var i=1;i<=7;i++){
|
||||
g('searchBaner_'+i).className='searchBannerNormal';
|
||||
g('searchContent_'+i).className='undis';g('searchNum_'+i).className="numRed";
|
||||
g('searchType_'+i).className="fontGrey2 f14";
|
||||
|
@ -23,12 +23,14 @@
|
|||
//$("#searchContent_2").html('<%#= escape_javascript(render :partial => 'search_user_results',:locals => {:users=>@users})%>');
|
||||
search('user')
|
||||
}else if(n == 3){
|
||||
search('course')
|
||||
search('syllabus')
|
||||
}else if(n == 4){
|
||||
search('attachment')
|
||||
search('course')
|
||||
}else if(n == 5){
|
||||
search('project')
|
||||
search('attachment')
|
||||
}else if(n == 6){
|
||||
search('project')
|
||||
}else if(n == 7){
|
||||
search('memo')
|
||||
}
|
||||
}
|
||||
|
@ -49,19 +51,22 @@
|
|||
}else if('<%= @search_type%>' == 'user'){
|
||||
HoverLi(2)
|
||||
$("#searchContent_2").html('<%= escape_javascript(render :partial => 'search_user_results',:locals => {:users=>@users})%>');
|
||||
}else if('<%= @search_type%>' == 'course'){
|
||||
}else if('<%= @search_type%>' == 'syllabus'){
|
||||
HoverLi(3)
|
||||
$("#searchContent_3").html('<%= escape_javascript(render :partial => 'search_course_results',:locals => {:courses=>@courses})%>');
|
||||
}else if('<%= @search_type%>' == 'attachment'){
|
||||
$("#searchContent_3").html('<%= escape_javascript(render :partial => 'search_syllabus_results',:locals => {:syllabuses=>@syllabuses})%>');
|
||||
}else if('<%= @search_type%>' == 'course'){
|
||||
HoverLi(4)
|
||||
$("#searchContent_4").html('<%= escape_javascript(render :partial => 'search_attachment_results',:locals => {:attachments=>@attachments})%>');
|
||||
}else if('<%= @search_type%>' == 'project'){
|
||||
$("#searchContent_4").html('<%= escape_javascript(render :partial => 'search_course_results',:locals => {:courses=>@courses})%>');
|
||||
}else if('<%= @search_type%>' == 'attachment'){
|
||||
HoverLi(5)
|
||||
$("#searchContent_5").html('<%= escape_javascript(render :partial => 'search_project_results',:locals => {:projects=>@projects})%>');
|
||||
$("#searchContent_5").html('<%= escape_javascript(render :partial => 'search_attachment_results',:locals => {:attachments=>@attachments})%>');
|
||||
}else if('<%= @search_type%>' == 'project'){
|
||||
HoverLi(6)
|
||||
$("#searchContent_6").html('<%= escape_javascript(render :partial => 'search_project_results',:locals => {:projects=>@projects})%>');
|
||||
}else if('<%= @search_type%>' == 'memo')
|
||||
{
|
||||
HoverLi(6)
|
||||
$("#searchContent_6").html('<%= escape_javascript(render :partial => 'search_memo_results',:locals => {:memos=>@memos})%>');
|
||||
HoverLi(7)
|
||||
$("#searchContent_7").html('<%= escape_javascript(render :partial => 'search_memo_results',:locals => {:memos=>@memos})%>');
|
||||
}
|
||||
})
|
||||
//如果要做成点击后再转到请将<li>中的onmouseover 改成 onclick;
|
||||
|
@ -79,10 +84,11 @@
|
|||
<ul id="searchBanner">
|
||||
<li id="searchBaner_1" class="searchBannerActive" onclick="HoverLi(1);on_click_search(1);"><a href="javascript:void(0);" id="searchType_1" class="fontGrey3 f14">全部<span style="font-weight:normal;"><font id="searchNum_1" class="c_red">(<%= @total_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_2" onclick="HoverLi(2);on_click_search(2);"><a href="javascript:void(0);" id="searchType_2" class="fontGrey2 f14">用户<span class="numRed" style="font-weight:normal;"><font id="searchNum_2" class="numRed">(<%= @users_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_3" onclick="HoverLi(3);on_click_search(3);"><a href="javascript:void(0);" id="searchType_3" class="fontGrey2 f14">班级<span style="font-weight:normal;"><font id="searchNum_3" class="numRed">(<%=@course_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_4" onclick="HoverLi(4);on_click_search(4);"><a href="javascript:void(0);" id="searchType_4" class="fontGrey2 f14">资源<span class="numRed" style="font-weight:normal;"><font id="searchNum_4" class="numRed">(<%= @attach_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_5" onclick="HoverLi(5);on_click_search(5);"><a href="javascript:void(0);" id="searchType_5" class="fontGrey2 f14">项目<span class="numRed" style="font-weight:normal;"><font id="searchNum_5" class="numRed">(<%= @project_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_6" onclick="HoverLi(6);on_click_search(6);"><a href="javascript:void(0);" id="searchType_6" class="fontGrey2 f14">帖子<span class="numRed" style="font-weight:normal;"><font id="searchNum_6" class="numRed">(<%= @memo_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_3" onclick="HoverLi(3);on_click_search(3);"><a href="javascript:void(0);" id="searchType_3" class="fontGrey2 f14">课程<span style="font-weight:normal;"><font id="searchNum_3" class="numRed">(<%=@syllabus_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_4" onclick="HoverLi(4);on_click_search(4);"><a href="javascript:void(0);" id="searchType_4" class="fontGrey2 f14">班级<span style="font-weight:normal;"><font id="searchNum_4" class="numRed">(<%=@course_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_5" onclick="HoverLi(5);on_click_search(5);"><a href="javascript:void(0);" id="searchType_5" class="fontGrey2 f14">资源<span class="numRed" style="font-weight:normal;"><font id="searchNum_4" class="numRed">(<%= @attach_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_6" onclick="HoverLi(6);on_click_search(6);"><a href="javascript:void(0);" id="searchType_6" class="fontGrey2 f14">项目<span class="numRed" style="font-weight:normal;"><font id="searchNum_5" class="numRed">(<%= @project_count%>)</font></span></a></li>
|
||||
<li id="searchBaner_7" onclick="HoverLi(7);on_click_search(7);"><a href="javascript:void(0);" id="searchType_7" class="fontGrey2 f14">帖子<span class="numRed" style="font-weight:normal;"><font id="searchNum_6" class="numRed">(<%= @memo_count%>)</font></span></a></li>
|
||||
<div class="cl"></div>
|
||||
</ul>
|
||||
<ul id="searchTips" style="display:none;">
|
||||
|
@ -97,13 +103,15 @@
|
|||
<div id="searchContent_3" class="undis">
|
||||
</div>
|
||||
<div id="searchContent_4" class="undis">
|
||||
|
||||
</div>
|
||||
<div id="searchContent_5" class="undis">
|
||||
|
||||
</div>
|
||||
<div id="searchContent_6" class="undis">
|
||||
|
||||
</div>
|
||||
<div id="searchContent_7" class="undis">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue