From 022c656db6225733fc2da13e237f1c9f7b1212cf Mon Sep 17 00:00:00 2001 From: ouyangxuhua Date: Fri, 13 Nov 2015 17:19:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A1=B9=E7=9B=AE=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E7=BB=84=E7=BB=87=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/org_projects_controller.rb | 13 ++++++++++++ app/controllers/projects_controller.rb | 8 ++++---- app/views/org_projects/destroy.js.erb | 20 ++++++++++++++++++- .../projects/settings/_added_orgs.html.erb | 2 +- app/views/users/user_organizations.html.erb | 2 +- 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/app/controllers/org_projects_controller.rb b/app/controllers/org_projects_controller.rb index e11005b4a..733df95b7 100644 --- a/app/controllers/org_projects_controller.rb +++ b/app/controllers/org_projects_controller.rb @@ -14,5 +14,18 @@ class OrgProjectsController < ApplicationController @project = Project.find(params[:project_id]) @org_project = OrgProject.find(params[:id]) @org_project.destroy + + condition = '%%' + project_org_ids = OrgProject.find_by_sql("select distinct organization_id from org_projects where project_id = #{params[:project_id]}").map(&:organization_id) + if project_org_ids.empty? + @orgs_not_in_project = Organization.where("(is_public or creator_id =?) = 1 and name like ?",User.current.id, condition).page( 1).per(10) + @org_count = Organization.where("is_public = 1 or creator_id =?", User.current.id).where("name like ?", condition).count + else + project_org_ids = "(" + project_org_ids.join(',') + ")" + @orgs_not_in_project = Organization.where("id not in #{project_org_ids} and (is_public = 1 or creator_id =?) and name like ?", User.current.id, condition).page( 1).per(10) + @org_count = Organization.where("id not in #{project_org_ids} and (is_public = 1 or creator_id =?)", User.current.id).where("name like ?", condition).count + end + # @project_count = Project.project_entities.visible.like(params[:name]).page(params[:page]).count + @orgs_page = Paginator.new @org_count, 10,1 end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5e6a584c8..0077bc378 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -77,12 +77,12 @@ class ProjectsController < ApplicationController end project_org_ids = OrgProject.find_by_sql("select distinct organization_id from org_projects where project_id = #{params[:id]}").map(&:organization_id) if project_org_ids.empty? - @orgs_not_in_project = Organization.where("is_public = 1").where("name like ?", condition).page((params[:page].to_i || 1)).per(10) - @org_count = Organization.where("is_public = 1").where("name like ?", condition).count + @orgs_not_in_project = Organization.where("(is_public or creator_id =?) = 1 and name like ?",User.current.id, condition).page((params[:page].to_i || 1)).per(10) + @org_count = Organization.where("is_public = 1 or creator_id =?", User.current.id).where("name like ?", condition).count else project_org_ids = "(" + project_org_ids.join(',') + ")" - @orgs_not_in_project = Organization.where("id not in #{project_org_ids} and is_public = 1").where("name like ?", condition).page((params[:page].to_i || 1)).per(10) - @org_count = Organization.where("id not in #{project_org_ids} and is_public = 1").where("name like ?", condition).count + @orgs_not_in_project = Organization.where("id not in #{project_org_ids} and (is_public = 1 or creator_id =?) and name like ?", User.current.id, condition).page((params[:page].to_i || 1)).per(10) + @org_count = Organization.where("id not in #{project_org_ids} and (is_public = 1 or creator_id =?)", User.current.id).where("name like ?", condition).count end # @project_count = Project.project_entities.visible.like(params[:name]).page(params[:page]).count @orgs_page = Paginator.new @org_count, 10,params[:page] diff --git a/app/views/org_projects/destroy.js.erb b/app/views/org_projects/destroy.js.erb index 45a014b23..49ea1dc33 100644 --- a/app/views/org_projects/destroy.js.erb +++ b/app/views/org_projects/destroy.js.erb @@ -1,4 +1,22 @@ +//$("#search_orgs_result_list").html(""); +////$("#paginator").css("display", "none"); $("#added_orgs").html(""); +$("#added_orgs").html('<%= escape_javascript(render :partial => "projects/settings/added_orgs", :locals => {:orgs => @project.organizations, :project_id => @project.id}) %>') +//$.ajax({ +// url: '<%#= url_for(:controller => 'projects', :action => 'search_public_orgs_not_in_project') %>'+'?page=1', +// type:'get' +//}); $("#search_orgs_result_list").html(""); +$("#search_orgs_result_list").append('') +<% if @org_count > 10 %> +$("#paginator").html(' <%= pagination_links_full @orgs_page, @org_count ,:per_page_links => true,:remote =>true,:flag=>true%>'); +$("#paginator").css("display", "block"); +<% else %> $("#paginator").css("display", "none"); -$("#added_orgs").html('<%= escape_javascript(render :partial => "projects/settings/added_orgs", :locals => {:orgs => @project.organizations, :project_id => @project.id}) %>') \ No newline at end of file +<% end %> + diff --git a/app/views/projects/settings/_added_orgs.html.erb b/app/views/projects/settings/_added_orgs.html.erb index 06d3ae439..d07ead277 100644 --- a/app/views/projects/settings/_added_orgs.html.erb +++ b/app/views/projects/settings/_added_orgs.html.erb @@ -1,7 +1,7 @@