diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index 47cabbc6c..29350f0f7 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -23,7 +23,7 @@ class FilesController < ApplicationController before_filter :auth_login1, :only => [:index] before_filter :logged_user_by_apptoken,:only => [:index] before_filter :find_project_by_project_id#, :except => [:getattachtype] - before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search,:search_project,:quote_resource_show_project] + before_filter :authorize, :except => [:getattachtype,:quote_resource_show,:search,:search_project,:quote_resource_show_project,:search_tag_attachment] helper :sort include SortHelper @@ -51,6 +51,7 @@ class FilesController < ApplicationController @sort = "" @order = "" @is_remote = true + @q = params[:name].strip if params[:sort] order_by = params[:sort].split(":") @sort = order_by[0] @@ -519,8 +520,31 @@ class FilesController < ApplicationController format.html end end + end + #查找指定TAG的按条件过滤的资源列表 + def search_tag_attachment + @q,@tag_name,@order = params[:q],params[:tag_name] + @is_remote = true + if params[:sort] + order_by = params[:sort].split(":") + @sort = order_by[0] + if order_by.count > 1 + @order = order_by[1] + end + sort = "#{@sort} #{@order}" + end + q = "%#{@q.strip}%" + @result = find_course_attache q,@course,sort + @result = visable_attachemnts @result + @result = @result.select{|attachment| attachment.tag_list.include?(@tag_name)} + @searched_attach = paginateHelper @result,10 + @tag_list = attachment_tag_list @result + respond_to do |format| + format.js + # format.html + end end end diff --git a/app/helpers/files_helper.rb b/app/helpers/files_helper.rb index 111b9214f..0be59c0da 100644 --- a/app/helpers/files_helper.rb +++ b/app/helpers/files_helper.rb @@ -128,6 +128,12 @@ module FilesHelper tag_list.sort {|a,b| b[1]<=>a[1]} end + def get_attachments_by_tag attachments,tag + attachments.each do |attachment| + attachment.tag_list.include?(tag) + end + end + def visable_attachemnts_insite attachments,obj result = [] if obj.is_a?(Course) diff --git a/app/views/files/_course_file.html.erb b/app/views/files/_course_file.html.erb index 62fd14248..7b2acd875 100644 --- a/app/views/files/_course_file.html.erb +++ b/app/views/files/_course_file.html.erb @@ -48,7 +48,6 @@ $('#incourse').attr("class", "re_schbtn b_lblue"); $('#insite').attr("class", "re_schbtn b_lblue"); } -
diff --git a/app/views/files/_course_list.html.erb b/app/views/files/_course_list.html.erb index 406038dca..5bbb8757d 100644 --- a/app/views/files/_course_list.html.erb +++ b/app/views/files/_course_list.html.erb @@ -18,7 +18,7 @@
<% unless @tag_list.nil?%> <% @tag_list.each do |k,v|%> - <%= k%>(<%= v%> + <%= k%>(<%= v%> <% end%> <% end%>
diff --git a/app/views/files/search_tag_attachment.js.erb b/app/views/files/search_tag_attachment.js.erb new file mode 100644 index 000000000..50f46d2f5 --- /dev/null +++ b/app/views/files/search_tag_attachment.js.erb @@ -0,0 +1 @@ +$("#course_list").html("<%= escape_javascript(render :partial => 'course_list',:locals => {course: @course,all_attachments: @result,sort:@sort,order:@order,curse_attachments:@searched_attach})%>"); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 03ed4d2ab..911a45848 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -709,6 +709,7 @@ RedmineApp::Application.routes.draw do collection do match "getattachtype", :via => [:get, :post] match "search",:via => [:post,:get] + match "search_tag_attachment", :via => [:post,:get] end member do match "quote_resource_show", :via => [:get] diff --git a/public/javascripts/course.js b/public/javascripts/course.js index fd80a3e0f..c2a5da03d 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -449,3 +449,19 @@ $(function(){ } ) }); + +//查找TAG资源 +function search_tag_attachment(url,tag_name,q,course_id,sort) +{ + $.get( + url, + { + tag_name: tag_name, + q: q, + course_id:course_id + }, + function (data) { + + } + ); +}