From 186faac00dffaa233a4ee6ecf186c307e53b6c53 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 22 Sep 2017 18:48:52 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E7=BF=BB=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index d23bd4e0f..6090a1060 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1806,6 +1806,11 @@ class CoursesController < ApplicationController condition = "%#{params[:search].strip}%".gsub(" ","") @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 + @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 From 0c53d51b2bc992b94f5597763b3ac27e355990cc Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 22 Sep 2017 18:49:20 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=A6=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/settings/_add_students.html.erb | 16 +++++++++++----- .../settings/_search_not_students_list.html.erb | 14 +++++++++++--- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/views/courses/settings/_add_students.html.erb b/app/views/courses/settings/_add_students.html.erb index 6833b5d87..898420cbf 100644 --- a/app/views/courses/settings/_add_students.html.erb +++ b/app/views/courses/settings/_add_students.html.erb @@ -1,5 +1,5 @@ -
+

添加学生

@@ -7,8 +7,8 @@
<%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_student_form' do |f| %> -
-
+
+
@@ -24,13 +24,19 @@
-
    +
      <%#= render :partial => 'courses/settings/search_not_students_list' %>
-
+
+
+
    + <%#= pagination_links_full @pages, @courses.count, :per_page_links => false, :remote => true, :flag => true, :is_new => true %> +
+
+
确定 取消 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..335468313 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -1,4 +1,12 @@ <% unless @users.empty? %> +

+ + +

<% @users.each do |user| %> <% if user && user.user_extensions %>
  • @@ -6,9 +14,9 @@
  • <% end %> From 85071cb1ae2a5dc61f6a033ef309eb7697f1948c Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Fri, 22 Sep 2017 19:05:39 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=99=E5=B8=88?= =?UTF-8?q?=E3=80=81=E5=8A=A9=E6=95=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/settings/_add_teachers.html.erb | 8 ++++---- .../settings/_search_not_students_list.html.erb | 4 ++-- .../settings/_search_not_teachers_list.html.erb | 14 +++++++++++--- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/app/views/courses/settings/_add_teachers.html.erb b/app/views/courses/settings/_add_teachers.html.erb index b0423a34f..a65b43288 100644 --- a/app/views/courses/settings/_add_teachers.html.erb +++ b/app/views/courses/settings/_add_teachers.html.erb @@ -1,5 +1,5 @@ -
    +

    添加教师/助教

    @@ -7,8 +7,8 @@
    <%= form_tag url_for(course_memberships_path(@course)), :remote => true, :method => :post, :id => 'add_teacher_form' do |f| %> -
    -
    +
    +
    @@ -19,7 +19,7 @@
    -
      +
        <%#= render :partial => 'courses/settings/search_not_teachers_list' %>
    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 335468313..59bb4775c 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -3,8 +3,8 @@

    <% @users.each do |user| %> 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..37b338828 100644 --- a/app/views/courses/settings/_search_not_teachers_list.html.erb +++ b/app/views/courses/settings/_search_not_teachers_list.html.erb @@ -1,4 +1,12 @@ <% unless @users.empty? %> +

    + + +

    <% @users.each do |user| %> <% if user && user.user_extensions %>
  • @@ -6,9 +14,9 @@
  • <% end %> From 5fc722a5cd607484d74053b380fa6493dd1e7e60 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 22 Sep 2017 20:37:44 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E7=9A=84=E5=BC=B9=E6=A1=86=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 15 ++- app/controllers/members_controller.rb | 5 +- app/views/courses/search_not_students.js.erb | 7 +- .../courses/settings/_add_students.html.erb | 52 +++++---- .../_search_not_students_list.html.erb | 101 +++++++++++++----- public/javascripts/edu/course.js | 20 ++-- 6 files changed, 138 insertions(+), 62 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 6090a1060..eabed6b6c 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1800,12 +1800,19 @@ class CoursesController < ApplicationController 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 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/settings/_add_students.html.erb b/app/views/courses/settings/_add_students.html.erb index 898420cbf..9937847e4 100644 --- a/app/views/courses/settings/_add_students.html.erb +++ b/app/views/courses/settings/_add_students.html.erb @@ -12,7 +12,7 @@ - +
    <% if @course.course_groups.count > 0 %> @@ -21,29 +21,45 @@
    - - + +
    -
      - <%#= render :partial => 'courses/settings/search_not_students_list' %> -
    -
    -
    + -
    -
    -
      - <%#= pagination_links_full @pages, @courses.count, :per_page_links => false, :remote => true, :flag => true, :is_new => true %> -
    -
    +

    + + +

    +
    + <%= 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/_search_not_students_list.html.erb b/app/views/courses/settings/_search_not_students_list.html.erb index 335468313..3872f595a 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -1,26 +1,75 @@ -<% 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/public/javascripts/edu/course.js b/public/javascripts/edu/course.js index 4bfc9ffa2..4df17361d 100644 --- a/public/javascripts/edu/course.js +++ b/public/javascripts/edu/course.js @@ -3,9 +3,9 @@ $(function() { 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) { @@ -341,17 +341,17 @@ 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){ } }); } From 4d408ded2416fd926338b543544c0d5d61707df4 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 22 Sep 2017 21:09:35 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=99=E5=B8=88?= =?UTF-8?q?=E7=9A=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 20 +++- app/views/courses/search_not_teachers.js.erb | 5 +- .../courses/settings/_add_teachers.html.erb | 55 +++++++--- .../_search_not_students_list.html.erb | 6 +- .../_search_not_teachers_list.html.erb | 101 +++++++++++++----- public/javascripts/edu/course.js | 24 ++--- 6 files changed, 152 insertions(+), 59 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index eabed6b6c..24eb07b94 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -1788,12 +1788,24 @@ 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 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_teachers.html.erb b/app/views/courses/settings/_add_teachers.html.erb index a65b43288..54bdedb36 100644 --- a/app/views/courses/settings/_add_teachers.html.erb +++ b/app/views/courses/settings/_add_teachers.html.erb @@ -6,22 +6,31 @@
    - <%= 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 3872f595a..d0ad45ea1 100644 --- a/app/views/courses/settings/_search_not_students_list.html.erb +++ b/app/views/courses/settings/_search_not_students_list.html.erb @@ -20,13 +20,17 @@
    +
    + +
    +
      <%= pagination_links_full @users_pages, @users_count, :per_page_links => false, :remote => true, :flag => true, :is_new => true %>
    - + 确定 取消
    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 37b338828..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,24 +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 4df17361d..de7d7b773 100644 --- a/public/javascripts/edu/course.js +++ b/public/javascripts/edu/course.js @@ -1,7 +1,7 @@ $(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); @@ -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(); @@ -357,7 +357,7 @@ function search_not_student_f(e){ } 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();