课程资源搜索功能,暂时屏蔽排序功能
This commit is contained in:
parent
f2da5704ef
commit
68505239f9
|
@ -353,7 +353,7 @@ class AttachmentsController < ApplicationController
|
||||||
attach_copied_obj.container = c
|
attach_copied_obj.container = c
|
||||||
attach_copied_obj.created_on = Time.now
|
attach_copied_obj.created_on = Time.now
|
||||||
attach_copied_obj.author_id = User.current.id
|
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
|
if attach_copied_obj.attachtype == nil
|
||||||
attach_copied_obj.attachtype = 4
|
attach_copied_obj.attachtype = 4
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,7 +22,7 @@ class FilesController < ApplicationController
|
||||||
menu_item :files
|
menu_item :files
|
||||||
|
|
||||||
before_filter :find_project_by_project_id#, :except => [:getattachtype]
|
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
|
helper :sort
|
||||||
include SortHelper
|
include SortHelper
|
||||||
|
@ -41,6 +41,38 @@ class FilesController < ApplicationController
|
||||||
@curse_attachments = paginateHelper @all_attachments,10
|
@curse_attachments = paginateHelper @all_attachments,10
|
||||||
end
|
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
|
def index
|
||||||
#sort_init 'filename', 'asc'
|
#sort_init 'filename', 'asc'
|
||||||
sort_init 'created_on', 'desc'
|
sort_init 'created_on', 'desc'
|
||||||
|
@ -51,6 +83,7 @@ class FilesController < ApplicationController
|
||||||
sort = ""
|
sort = ""
|
||||||
@sort = ""
|
@sort = ""
|
||||||
@order = ""
|
@order = ""
|
||||||
|
@is_remote = false
|
||||||
if params[:project_id]
|
if params[:project_id]
|
||||||
@isproject = true
|
@isproject = true
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<% attachmenttypes = @course.attachmenttypes %>
|
<% attachmenttypes = @course.attachmenttypes %>
|
||||||
<% sufixtypes = @course.contenttypes %>
|
<% sufixtypes = @course.contenttypes %>
|
||||||
<% delete_allowed = User.current.allowed_to?(:manage_files, @course) %>
|
|
||||||
|
|
||||||
<%= stylesheet_link_tag 'resource', :media => 'all' %>
|
<%= stylesheet_link_tag 'resource', :media => 'all' %>
|
||||||
<script>
|
<script>
|
||||||
|
@ -23,163 +23,22 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="resource"><!--资源库内容开始--->
|
<div class="resource"><!--资源库内容开始--->
|
||||||
<div class="re_top">
|
<div class="re_top">
|
||||||
<form class="re_search f_l ">
|
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search f_l",:remote=>true) do %>
|
||||||
<input type="text" name="" class="re_schbox" style="padding: 0px" />
|
<%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%>
|
||||||
<input type="submit" value="课内搜索" class="re_schbtn b_dblue" />
|
<%= submit_tag "课内搜索", :class => "re_schbtn b_dblue",:name => "incourse"%>
|
||||||
<input type="submit" value="全站搜索" class="re_schbtn b_lblue" />
|
<%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite" %>
|
||||||
</form>
|
<% end %>
|
||||||
<% if is_course_teacher(User.current,@course) %>
|
<% if is_course_teacher(User.current,@course) %>
|
||||||
<a href="javascript:void(0)" class="re_fabu f_r b_lblue" onclick="show_upload()">上传资源</a>
|
<a href="javascript:void(0)" class="re_fabu f_r b_lblue" onclick="show_upload()">上传资源</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div><!---re_top end-->
|
</div><!---re_top end-->
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
|
||||||
<div class="re_con">
|
<div class="re_con" id="course_list">
|
||||||
<div class="re_con_top">
|
<%= render :partial => 'course_list',:locals => {course: @course,all_attachments: @all_attachments,sort:@sort,order:@order,curse_attachments:@curse_attachments} %>
|
||||||
<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><!---re_con end-->
|
</div><!---re_con end-->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</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)) -%>
|
<% 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
|
resources :files, :only => [:index, :new, :create] do
|
||||||
collection do
|
collection do
|
||||||
match "getattachtype", :via => [:get, :post]
|
match "getattachtype", :via => [:get, :post]
|
||||||
|
match "search",:via => [:post,:get]
|
||||||
end
|
end
|
||||||
member do
|
member do
|
||||||
match "quote_resource_show", :via => [:get]
|
match "quote_resource_show", :via => [:get]
|
||||||
|
|
Loading…
Reference in New Issue