From d407b5ab10956191c1329954b1a72630a4c42cb6 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Sun, 9 Oct 2016 10:35:43 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=B8=AD=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E8=AF=BE=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 15 ++++--- app/models/syllabus.rb | 28 +++++++++++++ app/views/layouts/_logined_header.html.erb | 2 +- .../welcome/_search_syllabus_results.html.erb | 11 +++++ app/views/welcome/search.html.erb | 42 +++++++++++-------- 5 files changed, 75 insertions(+), 23 deletions(-) create mode 100644 app/views/welcome/_search_syllabus_results.html.erb diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 1508fc871..1d8f95779 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -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:{}, diff --git a/app/models/syllabus.rb b/app/models/syllabus.rb index f72463503..2f69ce5c4 100644 --- a/app/models/syllabus.rb +++ b/app/models/syllabus.rb @@ -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: [''], + post_tags: [''], + fields: { + title: {}, + description: {} + } + } + } + ) + end end diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index cda8e8be5..5f350dd65 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -47,7 +47,7 @@ <% name = name%> <%= form_tag({controller: :welcome, action: :search },:class=>'navHomepageSearchBox', method: :get) do %> - " id="navHomepageSearchInput" class="navHomepageSearchInput" placeholder="请输入关键词搜索公开的班级、项目、用户、资源以及帖子"/> + " id="navHomepageSearchInput" class="navHomepageSearchInput" placeholder="请输入关键词搜索公开的课程、班级、项目、用户、资源以及帖子"/> diff --git a/app/views/welcome/_search_syllabus_results.html.erb b/app/views/welcome/_search_syllabus_results.html.erb new file mode 100644 index 000000000..6dd9b382a --- /dev/null +++ b/app/views/welcome/_search_syllabus_results.html.erb @@ -0,0 +1,11 @@ +<% unless syllabuses.nil? || syllabuses.empty?%> + <% syllabuses.each do |syllabus|%> + + <% end %> +
+ <%= paginate courses,:params => {:controller => 'welcome', :action => 'search',:search_type=>'course'}%> +
+<% end %> \ No newline at end of file diff --git a/app/views/welcome/search.html.erb b/app/views/welcome/search.html.erb index 15491c1c0..d167920e9 100644 --- a/app/views/welcome/search.html.erb +++ b/app/views/welcome/search.html.erb @@ -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})%>'); } }) //如果要做成点击后再转到请将
  • 中的onmouseover 改成 onclick; @@ -79,10 +84,11 @@ + <% when 'syllabus'%> + <% when 'course'%>
  • @@ -69,7 +73,8 @@
    <%= image_tag("search_icon_03.png", :width=>"8", :height=>"16" ,:class=>"fl") %>资源
    -
  • 发布者:<%= User.find(item.author_id).login%>(<%= User.find(item.author_id).realname%>) + <% user = User.find(item.author_id)%> +
  • 发布者:<%= user.login%>(<%= user.realname%>) 发布时间:<%= format_date(item.created_on)%> 下载次数:<%= item.downloads%>次 diff --git a/app/views/welcome/_search_attachment_results.html.erb b/app/views/welcome/_search_attachment_results.html.erb index e51706085..fa0468385 100644 --- a/app/views/welcome/_search_attachment_results.html.erb +++ b/app/views/welcome/_search_attachment_results.html.erb @@ -10,7 +10,8 @@
    <%= image_tag("search_icon_03.png", :width=>"8", :height=>"16" ,:class=>"fl") %>资源
  • -
  • 发布者:<%= User.find(attachment.author_id).login%>(<%= User.find(attachment.author_id).realname%>) + <% user = User.find(attachment.author_id)%> +
  • 发布者:<%= user.login%>(<%= user.realname%>) 发布时间:<%= format_date(attachment.created_on)%> 下载次数:<%= attachment.downloads%>次 diff --git a/app/views/welcome/_search_course_results.html.erb b/app/views/welcome/_search_course_results.html.erb index 322a47de5..dd4c9f405 100644 --- a/app/views/welcome/_search_course_results.html.erb +++ b/app/views/welcome/_search_course_results.html.erb @@ -13,10 +13,11 @@
  • <%= course.try(:highlight).try(:description) ? course.highlight.description[0].html_safe : (course.description.present? ? course.description : '暂时没有该班级描述') %>
  • - 教师:<%= User.find(course.tea_id).realname %> + <% user = User.find(course.tea_id)%> + 教师:<%= user.realname %> 授课时间:<%= course.time.to_s + course.term%> 更新时间:<%= format_date(course.updated_at)%> - <%= User.find(course.tea_id).user_extensions.occupation.present? ? '单位:'+User.find(course.tea_id).user_extensions.occupation : ''%>
  • + <%=user.show_occupation.nil? ? "": "单位:"+user.show_occupation %>
    diff --git a/app/views/welcome/_search_syllabus_results.html.erb b/app/views/welcome/_search_syllabus_results.html.erb index 779570a4e..163392341 100644 --- a/app/views/welcome/_search_syllabus_results.html.erb +++ b/app/views/welcome/_search_syllabus_results.html.erb @@ -1,16 +1,18 @@ <% unless syllabuses.nil? || syllabuses.empty?%> - <% syllabuses.each do |syllabus|%> + <% syllabuses.each do |item|%> <% end %> diff --git a/app/views/welcome/_search_user_results.html.erb b/app/views/welcome/_search_user_results.html.erb index 06a40d021..3b9e18fba 100644 --- a/app/views/welcome/_search_user_results.html.erb +++ b/app/views/welcome/_search_user_results.html.erb @@ -1,20 +1,21 @@ <% unless users.nil? || users.empty?%> -<% users.each do |user|%> +<% users.each do |item|%> <% end %>
    - {:controller => 'welcome', :action => 'search',:search_type=>'attachment'}%> + <%= paginate attachments,:params => {:controller => 'welcome', :action => 'search',:search_type=>'attachment'}%>
    <% end %> \ No newline at end of file From 0265b6bfb7696f3e58eec60d06d9bd43c5e3d4f1 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 13 Oct 2016 09:52:05 +0800 Subject: [PATCH 21/21] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 3ac7eaf45..4cee2a47c 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -190,7 +190,7 @@ class WelcomeController < ApplicationController case params[:search_type] when 'all' - if (page-1)*20 > @total_count + if (page-1)*20 >= @total_count page = 1 params[:page] = "1" end @@ -220,42 +220,42 @@ class WelcomeController < ApplicationController } },[User,Syllabus,Course,Attachment,Project,Memo] ).page(page).per(20).results when 'user' - if (page-1)*20 > @users_count + if (page-1)*20 >= @users_count page = 1 params[:page] = "1" end @users = User.search(@name).page(page).per(20) when 'syllabus' - if (page-1)*20 > @syllabus_count + if (page-1)*20 >= @syllabus_count page = 1 params[:page] = "1" end @syllabuses = Syllabus.search(@name).page(page).per(20).results when 'project' - if (page-1)*20 > @project_count + if (page-1)*20 >= @project_count page = 1 end @projects = Project.search(@name).page(page).per(20).results when 'course' - if (page-1)*20 > @course_count + if (page-1)*20 >= @course_count page = 1 params[:page] = "1" end @courses = Course.search(@name).page(page).per(20).results when 'attachment' - if (page-1)*20 > @attach_count + if (page-1)*20 >= @attach_count page = 1 params[:page] = "1" end @attachments = Attachment.search(@name).page(page).per(20).results when 'memo' - if (page-1)*20 > @memo_count + if (page-1)*20 >= @memo_count page = 1 params[:page] = "1" end @memos = Memo.search(@name).page(page).per(20).results else - if (page-1)*20 > @total_count + if (page-1)*20 >= @total_count page = 1 params[:page] = "1" end