课程资源搜索功能,暂时屏蔽排序功能
This commit is contained in:
parent
f2da5704ef
commit
68505239f9
|
@ -353,7 +353,7 @@ class AttachmentsController < ApplicationController
|
|||
attach_copied_obj.container = c
|
||||
attach_copied_obj.created_on = Time.now
|
||||
attach_copied_obj.author_id = User.current.id
|
||||
attach_copied_obj.copy_from = file.copy_from.nil? ? file.id:file.copy_from
|
||||
attach_copied_obj.copy_from = file.copy_from.nil? ? file.id : file.copy_from
|
||||
if attach_copied_obj.attachtype == nil
|
||||
attach_copied_obj.attachtype = 4
|
||||
end
|
||||
|
|
|
@ -22,7 +22,7 @@ class FilesController < ApplicationController
|
|||
menu_item :files
|
||||
|
||||
before_filter :find_project_by_project_id#, :except => [:getattachtype]
|
||||
before_filter :authorize, :except => [:getattachtype,:quote_resource_show]
|
||||
before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search]
|
||||
|
||||
helper :sort
|
||||
include SortHelper
|
||||
|
@ -41,6 +41,38 @@ class FilesController < ApplicationController
|
|||
@curse_attachments = paginateHelper @all_attachments,10
|
||||
end
|
||||
|
||||
def search
|
||||
begin
|
||||
@is_remote = true
|
||||
q = "%#{params[:name].strip}%"
|
||||
#(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank?
|
||||
if params[:insite]
|
||||
@result = find_public_attache q
|
||||
@searched_attach = paginateHelper @result,10
|
||||
else
|
||||
@result = find_course_attache q,@course
|
||||
@searched_attach = paginateHelper @result,10
|
||||
end
|
||||
|
||||
rescue Exception => e
|
||||
#render 'stores'
|
||||
redirect_to stores_url
|
||||
end
|
||||
end
|
||||
|
||||
def find_course_attache keywords,course
|
||||
resultSet = Attachment.where("attachments.container_type = 'Course' And attachments.container_id = '#{course.id}' AND filename LIKE :like ", like: "%#{keywords}%").
|
||||
reorder("created_on DESC")
|
||||
end
|
||||
|
||||
def find_public_attache keywords
|
||||
# StoresController#search 将每条文件都查出来,再次进行判断过滤。---> resultSet.to_a.map
|
||||
# 此时内容不多速度还可,但文件增长,每条判断多则进行3-4次表连接。
|
||||
# 现在还木有思路 药丸
|
||||
resultSet = Attachment.where("attachments.container_type IS NOT NULL AND filename LIKE :like ", like: "%#{keywords}%").
|
||||
reorder("created_on DESC")
|
||||
end
|
||||
|
||||
def index
|
||||
#sort_init 'filename', 'asc'
|
||||
sort_init 'created_on', 'desc'
|
||||
|
@ -51,6 +83,7 @@ class FilesController < ApplicationController
|
|||
sort = ""
|
||||
@sort = ""
|
||||
@order = ""
|
||||
@is_remote = false
|
||||
if params[:project_id]
|
||||
@isproject = true
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<% attachmenttypes = @course.attachmenttypes %>
|
||||
<% sufixtypes = @course.contenttypes %>
|
||||
<% delete_allowed = User.current.allowed_to?(:manage_files, @course) %>
|
||||
|
||||
|
||||
<%= stylesheet_link_tag 'resource', :media => 'all' %>
|
||||
<script>
|
||||
|
@ -23,163 +23,22 @@
|
|||
<div class="container">
|
||||
<div class="resource"><!--资源库内容开始--->
|
||||
<div class="re_top">
|
||||
<form class="re_search f_l ">
|
||||
<input type="text" name="" class="re_schbox" style="padding: 0px" />
|
||||
<input type="submit" value="课内搜索" class="re_schbtn b_dblue" />
|
||||
<input type="submit" value="全站搜索" class="re_schbtn b_lblue" />
|
||||
</form>
|
||||
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search f_l",:remote=>true) do %>
|
||||
<%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%>
|
||||
<%= submit_tag "课内搜索", :class => "re_schbtn b_dblue",:name => "incourse"%>
|
||||
<%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite" %>
|
||||
<% end %>
|
||||
<% if is_course_teacher(User.current,@course) %>
|
||||
<a href="javascript:void(0)" class="re_fabu f_r b_lblue" onclick="show_upload()">上传资源</a>
|
||||
<% end %>
|
||||
</div><!---re_top end-->
|
||||
<div class="cl"></div>
|
||||
|
||||
<div class="re_con">
|
||||
<div class="re_con_top">
|
||||
<p class="f_l c_blue f_b f_14">共有 <%= User.current.member_of_course?(@course) ? @all_attachments.count : 0 %> 个资源</p>
|
||||
<p class="f_r">
|
||||
<% if @order == "asc" %>
|
||||
按 <%= link_to "时间",course_files_path(@course,:sort=>"created_on:desc"),:class => "f_b c_grey" %><%= render partial: 'arrow_show',locals: { sort: @sort,order:@order,current:"created_on"} %> /
|
||||
<%= link_to "下载次数",course_files_path(@course,:sort=>"downloads:desc"),:class => "f_b c_grey" %><%= render partial: 'arrow_show',locals: { sort: @sort,order:@order,current:"downloads"} %> /
|
||||
<a href="#" class="f_b c_grey">引用次数</a> 排序</p>
|
||||
<%else%>
|
||||
按 <%= link_to "时间",course_files_path(@course,:sort=>"created_on:asc"),:class => "f_b c_grey" %><%= render partial: 'arrow_show',locals: { sort: @sort,order:@order,current:"created_on"} %> /
|
||||
<%= link_to "下载次数",course_files_path(@course,:sort=>"downloads:asc"),:class => "f_b c_grey" %><%= render partial: 'arrow_show',locals: { sort: @sort,order:@order,current:"downloads"} %> /
|
||||
<a href="#" class="f_b c_grey">引用次数</a> 排序</p>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<% @curse_attachments.each do |file| %>
|
||||
<%if file.is_public == 0 && !User.current.member_of_course?(@course)%>
|
||||
<%next%>
|
||||
<%end%>
|
||||
<div class="re_con_box">
|
||||
<div class=" ">
|
||||
<%= link_to_attachment file, :download => true, :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %>
|
||||
<% if is_course_teacher(User.current,@course) %>
|
||||
<%= link_to "选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %>
|
||||
<span id="is_public_<%= file.id %>">
|
||||
<%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open",:method => :post %>
|
||||
</span>
|
||||
<% else %>
|
||||
<%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<div class="">
|
||||
<p class="f_l c_grey02">文件大小:<%= number_to_human_size(file.filesize) %></p>
|
||||
<%= link_to( l(:button_delete), attachment_path(file),
|
||||
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed %>
|
||||
<p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %> | 下载<%= file.downloads %> | 引用0 </p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<div class="tag_h">
|
||||
<%= render :partial => 'tags/tag_new', :locals => {:obj => file, :object_flag => "6"} %>
|
||||
<%= render :partial => 'tags/tag_add', :locals => {:obj => file, :object_flag => "6"} %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div><!---re_con_box end-->
|
||||
<% end %>
|
||||
<ul class="wlist"><%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%></ul>
|
||||
<div class="cl"></div>
|
||||
<div class="re_con" id="course_list">
|
||||
<%= render :partial => 'course_list',:locals => {course: @course,all_attachments: @all_attachments,sort:@sort,order:@order,curse_attachments:@curse_attachments} %>
|
||||
</div><!---re_con end-->
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- old code -->
|
||||
|
||||
<span class="borad-title"><%= t(:label_user_course) %>资源共享区</span>
|
||||
|
||||
<div class="content-title-top">
|
||||
|
||||
<%#= link_to(l(:label_attachment_new), 'javascript:void(0);', :onclick=>"$('#file_buttons').slideToggle();", :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @course) %>
|
||||
<div class="clearfix"></div>
|
||||
<div id="file_buttons" class="nhidden">
|
||||
|
||||
<%= link_to(l(:label_upload_files), 'javascript:void(0);', :class => 'icon m5p5 button_submit', :onclick => "$('#relation_file_div').slideUp();$('#upload_file_div').slideToggle('slow');") if User.current.allowed_to?(:manage_files, @course) %>
|
||||
<%= link_to(l(:label_relation_files), 'javascript:void(0);', :onclick => "$('#upload_file_div').slideUp();$('#relation_file_div').slideToggle();", :class => 'icon m5p5 button_submit') if User.current.allowed_to?(:manage_files, @course) %>
|
||||
<p></p>
|
||||
<div id="upload_file_div" class="relation_file_div hidden">
|
||||
<!-- <#%= render :partial => 'course_new', locals: {course: @course} %> -->
|
||||
</div>
|
||||
|
||||
<div id="relation_file_div" class="relation_file_div hidden">
|
||||
<fieldset>
|
||||
<legend>搜索</legend>
|
||||
<%= form_tag(
|
||||
attachments_autocomplete_path(:format => 'js'),
|
||||
:remote => true,
|
||||
:method => :post) do %>
|
||||
<%= label_tag(:attach_search, "按关键字搜索:") %>
|
||||
<%= text_field_tag(:attach_search) %>
|
||||
<%#= submit_tag("Search") %>
|
||||
<% end -%>
|
||||
<%= form_tag course_attach_relation_path(:format => 'js'),
|
||||
method: :post,
|
||||
remote: true,
|
||||
id: "relation_file_form",
|
||||
:class => 'hidden' do %>
|
||||
<%= hidden_field_tag(:class_name, 'course') %>
|
||||
<%= hidden_field_tag(:class_id, params[:course_id]) %>
|
||||
<div id="relation_file">
|
||||
</div>
|
||||
<div class="kclearfix" style='margin-top: 10px;'>
|
||||
<%= submit_tag(l(:button_add)) -%>
|
||||
</div>
|
||||
<% end -%>
|
||||
</fieldset>
|
||||
<div class="line_under" style="margin:20px 0px;"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="box" id="files-box">
|
||||
<label for="files-box" style="font-weight:bold;"> <%= l(:label_files_filter) %></label>
|
||||
<% if attachmenttypes.any? %>
|
||||
|
||||
<label for="attachment_browse_label"><%= l(:attachment_browse) %></label>
|
||||
<%= select_tag "attachment_browse", content_tag(:option, l(:attachment_all), :value => '0' ) +options_from_collection_for_select(attachmenttypes, "id", "typeName", params[:type]),
|
||||
|
||||
:onchange => "course_attachmenttypes_searchex(this.value)" %>
|
||||
<% end %>
|
||||
<% if sufixtypes.any? %>
|
||||
|
||||
<label for="attach_sufix_browse_label"><%= l(:attachment_sufix_browse) %></label>
|
||||
<%= select_tag "attach_sufix_browse", content_tag(:option, l(:attachment_all), :value => '0') +options_for_select(sufixtypes),
|
||||
:onchange => "course_attachment_contenttypes_searchex(this.value)" %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<%= javascript_tag "observeSearchfield('attach_search', null, '#{ escape_javascript attachments_autocomplete_path(:course_id => @course.id, :format => 'js') }')" %>
|
||||
|
||||
|
||||
<% delete_allowed = User.current.allowed_to?(:manage_files, @course) %>
|
||||
|
||||
<div id="all_browse_div" class="all_browse_div">
|
||||
<%#= render :partial => 'course_show_all_attachment' %>
|
||||
<% if (@attachtype==0 && @contenttype=='0') || (@attachtype.nil? && @contenttype.nil?) %>
|
||||
|
||||
<%= render partial: "course_show_all_attachment"%>
|
||||
|
||||
<%else%>
|
||||
|
||||
<%= render partial: "course_sort_by_attachtypel"%>
|
||||
|
||||
<%end%>
|
||||
</div>
|
||||
|
||||
<% html_title(l(:label_attachment_plural)) -%>
|
|
@ -0,0 +1,51 @@
|
|||
<% delete_allowed = User.current.allowed_to?(:manage_files, course) %>
|
||||
<div class="re_con_top">
|
||||
<p class="f_l c_blue f_b f_14">共有 <%= User.current.member_of_course?(course) ? all_attachments.count : 0 %> 个资源</p>
|
||||
<!-- <p class="f_r">
|
||||
<#% if @order == "asc" %>
|
||||
按 <#%= link_to "时间",course_files_path(course,:sort=>"created_on:desc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %> /
|
||||
<#%= link_to "下载次数",course_files_path(course,:sort=>"downloads:desc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %> /
|
||||
<a href="#" class="f_b c_grey">引用次数</a> 排序
|
||||
<#%else%>
|
||||
按 <#%= link_to "时间",course_files_path(course,:sort=>"created_on:asc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"created_on"} %> /
|
||||
<#%= link_to "下载次数",course_files_path(course,:sort=>"downloads:asc"),:class => "f_b c_grey" %><#%= render partial: 'arrow_show',locals: { sort: sort,order:order,current:"downloads"} %> /
|
||||
<a href="#" class="f_b c_grey">引用次数</a> 排序
|
||||
<#% end %>
|
||||
</p>-->
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<% curse_attachments.each do |file| %>
|
||||
<%if file.is_public == 0 && !User.current.member_of_course?(@course)%>
|
||||
<%next%>
|
||||
<%end%>
|
||||
<div class="re_con_box">
|
||||
<div class=" ">
|
||||
<%= link_to_attachment file, :download => true, :title => file.filename+"\n"+file.description.to_s, :style => "overflow: hidden; white-space: nowrap;text-overflow: ellipsis;",:class => "c_dblue f_14 f_b f_l" %>
|
||||
<% if is_course_teacher(User.current,@course) %>
|
||||
<%= link_to "选入我的课程",quote_resource_show_course_file_path(@course,file),:class => "f_l re_select",:remote => true %>
|
||||
<span id="is_public_<%= file.id %>">
|
||||
<%= link_to (file.is_public? ? "公开":"私有"), update_file_dense_attachments_path(:attachmentid=>file.id,:newtype=>(file.is_public? ? 0:1)),:remote=>true,:class=>"f_l re_open",:method => :post %>
|
||||
</span>
|
||||
<% else %>
|
||||
<%= link_to (file.is_public? ? "公开":"私有"),"javascript:void(0)",:class=>"f_l re_open" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<div class="">
|
||||
<p class="f_l c_grey02">文件大小:<%= number_to_human_size(file.filesize) %></p>
|
||||
<%= link_to( l(:button_delete), attachment_path(file),
|
||||
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,:class => "f_r re_de") if delete_allowed %>
|
||||
<p class="f_r c_grey02" ><%= time_tag(file.created_on).html_safe %><%= l(:label_bids_published_ago) %> | 下载<%= file.downloads %> | 引用0 </p>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
<div class="tag_h">
|
||||
<%= render :partial => 'tags/tag_new', :locals => {:obj => file, :object_flag => "6"} %>
|
||||
<%= render :partial => 'tags/tag_add', :locals => {:obj => file, :object_flag => "6"} %>
|
||||
</div>
|
||||
<div class="cl"></div>
|
||||
</div><!---re_con_box end-->
|
||||
<% end %>
|
||||
<ul class="wlist">
|
||||
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => @is_remote, :flag => true%>
|
||||
</ul>
|
||||
<div class="cl"></div>
|
|
@ -0,0 +1 @@
|
|||
$("#course_list").html("<%= escape_javascript(render :partial => 'course_list',:locals => {course: @course,all_attachments: @result,sort:"create_on",order:"",curse_attachments:@searched_attach})%>");
|
|
@ -654,6 +654,7 @@ RedmineApp::Application.routes.draw do
|
|||
resources :files, :only => [:index, :new, :create] do
|
||||
collection do
|
||||
match "getattachtype", :via => [:get, :post]
|
||||
match "search",:via => [:post,:get]
|
||||
end
|
||||
member do
|
||||
match "quote_resource_show", :via => [:get]
|
||||
|
|
Loading…
Reference in New Issue