diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 7a413378c..887b24d06 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1787,24 +1787,48 @@ class CoursesController < ApplicationController end def search_not_teachers - if !params[:search].nil? - members = searchTeacherAndAssistant @course - member_ids = "(" + members.map(&:user_id).join(',') + ")" - condition = "%#{params[:search].strip}%".gsub(" ","") + members = searchTeacherAndAssistant @course + member_ids = "(" + members.map(&:user_id).join(',') + ")" + condition = "%#{params[:search]}%".gsub(" ","") + @school = params[:school] || @course.teacher.school_name + if @school != "" + school_s = "%#{@school}%".gsub(" ","") + school_ids = School.where("name like '#{school_s}'").blank? ? "(-1)" : "(" + School.where("name like '#{school_s}'").map(&:id).join(",") + ")" + @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and LOWER(concat(lastname, firstname)) LIKE '#{condition}' and user_extensions.school_id in #{school_ids}") + else @users = User.where("id not in #{member_ids} and status = 1 and LOWER(concat(lastname, firstname)) LIKE '#{condition}'").includes(:user_extensions) end + + @user_ids = @users.map(&:id).join(",") + @limit = 8 + @page = params[:page].nil? ? 1 : params['page'].to_i + @users_count = @users.count + @users_pages = Paginator.new @users_count, @limit, @page + @users = paginateHelper @users, @limit respond_to do |format| format.js end end def search_not_students - if !params[:search].nil? - members = @course.members.select{|m| m.roles.to_s.include?("Student")} - member_ids = members.empty? ? "(-1)" : "(" + members.map(&:user_id).join(',') + ")" - condition = "%#{params[:search].strip}%".gsub(" ","") + members = @course.members.select{|m| m.roles.to_s.include?("Student")} + member_ids = members.empty? ? "(-1)" : "(" + members.map(&:user_id).join(',') + ")" + condition = "%#{params[:search]}%".gsub(" ","") + @school = params[:school] || @course.teacher.school_name + if @school != "" + school_s = "%#{@school}%".gsub(" ","") + school_ids = School.where("name like '#{school_s}'").blank? ? "(-1)" : "(" + School.where("name like '#{school_s}'").map(&:id).join(",") + ")" + @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and user_extensions.school_id in #{school_ids} and (LOWER(concat(lastname, firstname)) LIKE '#{condition}' or user_extensions.student_id LIKE '#{condition}')") + else @users = User.joins(:user_extensions).where("users.id not in #{member_ids} and status = 1 and (LOWER(concat(lastname, firstname)) LIKE '#{condition}' or user_extensions.student_id LIKE '#{condition}')") end + + @user_ids = @users.map(&:id).join(",") + @limit = 8 + @page = params[:page].nil? ? 1 : params['page'].to_i + @users_count = @users.count + @users_pages = Paginator.new @users_count, @limit, @page + @users = paginateHelper @users, @limit respond_to do |format| format.js end diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 5155933e0..4a0026311 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -241,9 +241,10 @@ class MembersController < ApplicationController @create_member_error_messages = "角色不能留空" unless params[:membership][:role_ids] @create_member_error_messages = "用户不能留空" unless params[:membership][:user_ids] - if params[:membership][:user_ids] + #if params[:membership][:user_ids] + if params[:choose_student_ids] && params[:membership] attrs = params[:membership].dup - user_ids = attrs.delete(:user_ids) + user_ids = params[:choose_student_ids].split(",") user_ids.each do |user_id| if @course.members.where(:user_id => user_id).empty? member = Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id) diff --git a/app/views/courses/search_not_students.js.erb b/app/views/courses/search_not_students.js.erb index b6c3cc65a..553c5d086 100644 --- a/app/views/courses/search_not_students.js.erb +++ b/app/views/courses/search_not_students.js.erb @@ -1,7 +1,10 @@ -<% if params[:is_observe] %> +<% if params[:is_observe] || params[:page] %> + <% unless params[:page] %> + $("#choose_student_ids").val(''); + <% end %> $("#search_not_students_list").html("<%= j(render :partial => 'courses/settings/search_not_students_list') %>"); <% else %> laststSearchCondition = ''; var htmlvalue = "<%= j(render :partial => 'courses/settings/add_students') %>"; -pop_box_new(htmlvalue, 440, 490); +pop_box_new(htmlvalue, 560, 600); <% end %> \ No newline at end of file diff --git a/app/views/courses/search_not_teachers.js.erb b/app/views/courses/search_not_teachers.js.erb index 57cc85529..09320f786 100644 --- a/app/views/courses/search_not_teachers.js.erb +++ b/app/views/courses/search_not_teachers.js.erb @@ -1,4 +1,7 @@ -<% if params[:is_observe] %> +<% if params[:is_observe] || params[:page] %> + <% unless params[:page] %> + $("#choose_student_ids").val(''); + <% end %> $("#search_not_teachers_list").html("<%= j(render :partial => 'courses/settings/search_not_teachers_list') %>"); <% else %> lastteSearchCondition = ""; diff --git a/app/views/courses/settings/_add_students.html.erb b/app/views/courses/settings/_add_students.html.erb index 6833b5d87..9937847e4 100644 --- a/app/views/courses/settings/_add_students.html.erb +++ b/app/views/courses/settings/_add_students.html.erb @@ -1,5 +1,5 @@ -
+

添加学生

@@ -7,12 +7,12 @@
<%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_student_form' do |f| %> -
-
+
+
- +
<% if @course.course_groups.count > 0 %> @@ -21,23 +21,45 @@
- - + +
-
    - <%#= render :partial => 'courses/settings/search_not_students_list' %> -
-
-
+ -
- - 确定 - 取消 +

+ + +

+
+ <%= render :partial => 'courses/settings/search_not_students_list' %> +
+
<% end %>
+
-
\ No newline at end of file + \ No newline at end of file diff --git a/app/views/courses/settings/_add_teachers.html.erb b/app/views/courses/settings/_add_teachers.html.erb index b0423a34f..54bdedb36 100644 --- a/app/views/courses/settings/_add_teachers.html.erb +++ b/app/views/courses/settings/_add_teachers.html.erb @@ -1,27 +1,36 @@ -
+

添加教师/助教

- <%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_teacher_form' do |f| %> -
-
+ <%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_teacher_form' do |f| %> +
+
- +
- - + +
-
-
    - <%#= render :partial => 'courses/settings/search_not_teachers_list' %> -
+ + +

+ + +

+ +
+ <%= render :partial => 'courses/settings/search_not_teachers_list' %>
@@ -29,16 +38,12 @@

角色:

  • - -
  • - -
- 取消 - 确定 + 取消 + 确定
<% end %> -
-
+
-
\ No newline at end of file + \ No newline at end of file diff --git a/app/views/courses/settings/_search_not_students_list.html.erb b/app/views/courses/settings/_search_not_students_list.html.erb index 3d3a1beaa..d0ad45ea1 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -1,18 +1,79 @@ -<% unless @users.empty? %> - <% @users.each do |user| %> - <% if user && user.user_extensions %> -
  • - - - - -
  • - <% end %> - <% end %> -<% else %> - 搜索结果为空 -<% end %> \ No newline at end of file +
      + <% unless @users.empty? %> + <% @users.each do |user| %> + <% if user && user.user_extensions %> +
    • + + + + +
    • + <% end %> + <% end %> + <% else %> + + <% end %> +
    + +
    +
    + +
    + +
    +
      + <%= pagination_links_full @users_pages, @users_count, :per_page_links => false, :remote => true, :flag => true, :is_new => true %> +
    +
    +
    + + 确定 + 取消 +
    + + \ No newline at end of file diff --git a/app/views/courses/settings/_search_not_teachers_list.html.erb b/app/views/courses/settings/_search_not_teachers_list.html.erb index 4c69f8452..ae3b96c78 100644 --- a/app/views/courses/settings/_search_not_teachers_list.html.erb +++ b/app/views/courses/settings/_search_not_teachers_list.html.erb @@ -1,16 +1,77 @@ -<% unless @users.empty? %> - <% @users.each do |user| %> - <% if user && user.user_extensions %> -
  • - - - - -
  • - <% end %> - <% end %> -<% end %> \ No newline at end of file +
      + <% unless @users.empty? %> + <% @users.each do |user| %> + <% if user && user.user_extensions %> +
    • + + + + +
    • + <% end %> + <% end %> + <% else %> + + <% end %> +
    + +
    +
    + +
    + +
    +
      + <%= pagination_links_full @users_pages, @users_count, :per_page_links => false, :remote => true, :flag => true, :is_new => true %> +
    +
    +
    + +
    + + \ No newline at end of file diff --git a/public/javascripts/edu/course.js b/public/javascripts/edu/course.js index 4bfc9ffa2..de7d7b773 100644 --- a/public/javascripts/edu/course.js +++ b/public/javascripts/edu/course.js @@ -1,11 +1,11 @@ $(function() { - $("#search_not_teacher").live('input', function (e) { - throttle(search_not_teacher_f,window,e); - }); +// $("#search_not_teacher").live('input', function (e) { +// throttle(search_not_teacher_f,window,e); +// }); - $("#search_not_student").live('input', function (e) { - throttle(search_not_student_f,window,e); - }); +// $("#search_not_student").live('input', function (e) { +// throttle(search_not_student_f,window,e); +// }); //模块切换 $(".stud-class-set .news .nav").click(function(e) { @@ -294,23 +294,23 @@ function submit_change_manager_form(){ } } -var lastteSearchCondition = ''; +//var lastteSearchCondition = ''; function search_not_teacher_f(e){ - if($(e.target).val().trim() == "" || ($(e.target).val().trim() == lastteSearchCondition && lastteSearchCondition != '')) - { - return; - } - lastteSearchCondition = $(e.target).val().trim(); +// if($(e.target).val().trim() == "" || ($(e.target).val().trim() == lastteSearchCondition && lastteSearchCondition != '')) +// { +// return; +// } +// lastteSearchCondition = $(e.target).val().trim(); $.ajax({ url: '/courses/' + $("#course_search_not_teacher_id").val() + '/search_not_teachers', type:'post', - data: {is_observe:true, search:e.target.value}, + data: {is_observe:true, search:$("#search_not_teacher").val().trim(), school:$("#search_not_teacher_school").val().trim()}, success: function(data){ } }); } function submit_add_teacher_form(){ - if($("input[name='membership[user_ids][]']:checked").length >= 1){ + if($("#choose_student_ids").val().trim() != ""){ if($("input[name='membership[role_ids][]']:checked").length >= 1){ $("#add_teacher_notice").html("").hide(); $("#add_teacher_form").submit(); @@ -341,23 +341,23 @@ function submit_has_group_student_search(id, group_id){ ) } -var laststSearchCondition = ''; +//var laststSearchCondition = ''; function search_not_student_f(e){ - if($(e.target).val().trim() == "" || ($(e.target).val().trim() == laststSearchCondition && laststSearchCondition != '')) - { - return; - } - laststSearchCondition = $(e.target).val().trim(); +// if($(e.target).val().trim() == "" || ($(e.target).val().trim() == laststSearchCondition && laststSearchCondition != '')) +// { +// return; +// } +// laststSearchCondition = $(e.target).val().trim(); $.ajax({ url: '/courses/' + $("#course_search_not_student_id").val() + '/search_not_students', type:'post', - data: {is_observe:true, search:e.target.value}, + data: {is_observe:true, search:$("#search_not_student").val().trim(), school:$("#search_not_student_school").val().trim()}, success: function(data){ } }); } function submit_add_student_form(){ - if($("input[name='membership[user_ids][]']:checked").length >= 1){ + if($("#choose_student_ids").val().trim() != ""){ $("#add_student_notice").html("").hide(); $("#add_student_form").submit(); hideModal();