diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 78f75f31a..12b733669 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -196,12 +196,35 @@ class CoursesController < ApplicationController end end + def searchmembers + @render_file = 'member_list' + + @is_remote = true + q = "#{params[:name].strip}" + #(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank? + @results = searchStudent_by_name(@course, q) + @results = paginateHelper @results + + end + + def addgroups + + end + + def updategroupname + + end + + def searchgroupmembers + + end def member ## 有角色参数的才是课程,没有的就是项目 @render_file = 'member_list' @teachers= searchTeacherAndAssistant(@course) @canShowCode = isCourseTeacher(User.current.id,@course) && params[:role] != '1' @role = params[:role] + @course_groups = @course.course_groups if @course.course_groups @course_group_id = params[:@course_group_id] unless params[:@course_group_id].nil? case params[:role] when '1' diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 92f95bdc1..9e18c9f54 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -186,6 +186,19 @@ module CoursesHelper end members end + def searchStudent_by_name project, name + #searchPeopleByRoles(project, StudentRoles) + members = [] + project.members.each do |m| + if m && m.user && m.user.allowed_to?(:as_student,project) + username = m.user[:lastname].to_s + m.user[:firstname].to_s + if(m.user[:login].to_s.include?(name) || m.user.user_extensions[:student_id].to_s.include?(name) || username.include?(name)) + members << m + end + end + end + members + end # ===================================================================================== #def searchCountByRoles project, roles_id diff --git a/app/views/courses/_groups_name.html.erb b/app/views/courses/_groups_name.html.erb new file mode 100644 index 000000000..804b3f805 --- /dev/null +++ b/app/views/courses/_groups_name.html.erb @@ -0,0 +1,51 @@ + +<%# if course_groups.any? %> + + + + <%# end %> \ No newline at end of file diff --git a/app/views/courses/_member_list.html.erb b/app/views/courses/_member_list.html.erb index a6ee0b9b4..cd620c52f 100644 --- a/app/views/courses/_member_list.html.erb +++ b/app/views/courses/_member_list.html.erb @@ -1,3 +1,4 @@ + <% if members.any? %> <% members.each do |member| %>
diff --git a/app/views/courses/member.html.erb b/app/views/courses/member.html.erb index aff9ffeb5..4f7b395b0 100644 --- a/app/views/courses/member.html.erb +++ b/app/views/courses/member.html.erb @@ -1,13 +1,25 @@ <%= stylesheet_link_tag 'course_group', :media => 'all' %> +
-
+
+ <%# if @canShowCode %> +
+ <%= render :partial => 'groups_name', locals: {:course_groups => @course_groups} %> +
+ <%# end %> + +
+
<%= error_messages_for 'member' %> <%= render :partial => @render_file, :locals => {:members => @members} %>
diff --git a/app/views/courses/searchmembers.js b/app/views/courses/searchmembers.js new file mode 100644 index 000000000..efe47a9c0 --- /dev/null +++ b/app/views/courses/searchmembers.js @@ -0,0 +1,4 @@ +/** + * Created by Administrator on 2014/12/2. + */ +$("#member_content").html("<%= escape_javascript( render :partial => @render_file, :locals => {:members => @results})%>"); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 1d28a9ae6..7a6a8aae0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -643,10 +643,12 @@ RedmineApp::Application.routes.draw do get 'member', :controller => 'courses', :action => 'member', :as => 'member' post 'finishcourse' post 'restartcourse' + match "searchmembers", :controller => 'courses', :action => 'searchmembers', :via => [:post,:get] end collection do match 'join_private_courses', :via => [:get, :post] + end match '/member', :to => 'courses#member', :as => 'member', :via => :get diff --git a/public/images/btn1.png b/public/images/btn1.png new file mode 100644 index 000000000..f7f7f1c77 Binary files /dev/null and b/public/images/btn1.png differ diff --git a/public/stylesheets/course_group.css b/public/stylesheets/course_group.css index 638dddb20..81e9f68e4 100644 --- a/public/stylesheets/course_group.css +++ b/public/stylesheets/course_group.css @@ -20,15 +20,29 @@ a:hover{ } .c_red{ color:#ec0016;} .w90{width:90px;} .ml10{margin-left:10px;} +.st_search input.f_2 { + width:60px !important; + height:28px !important; + color:#fff !important; + margin-right:5px !important; + border:none !important; + margin-left:0px !important; + box-shadow: none !important; + padding: 0px !important; + border-radius: 0 !important; + text-shadow: none !important; + border:1px solid #1c9ec7; + background:#1c9ec7; +} .container{ width:940px; margin:0 auto; font-size:12px;} .st_list{ width:688px; padding-left:5px; height:800px;} .st_search{ margin:10px 0;} .st_search span{ font-size:14px; font-weight:bold; color:#606060; margin-right:35px;} .st_search input{ border:1px solid #1c9ec7; background:#fff; height:20px; color:#c4c4c4; width:200px;} -.st_search input.f_2{ background:#1c9ec7; padding: 3px; margin-left: 3px; color:#fff;border:1px solid #1c9ec7; text-align:center; display:block; width:45px; height:28px; float:left; font-size:12px; } .st_search a:hover{ background:#048fbb; text-decoration:none;} +/*.st_search input.f_2{ background:#1c9ec7; padding: 3px; margin-left: 3px; color:#fff;border:1px solid #1c9ec7; text-align:center; display:block; width:45px; height:28px; font-size:12px; }*/ .classbox{ border:1px solid #f8df8c; background:#fffce6; color:#0d90c3; padding:0 3px; float:left; margin-left:15px;} .st_addclass{ margin-top:5px;} @@ -41,8 +55,8 @@ a:hover{ } .st_box ul li{ float:left;} .st_box_top a{ font-weight:bold; color:#7a7a7a; float:left;} .st_box_top a:hover{ color:#1c9ec7;} -a.st_up{ display: block; width:8px; float:left; height:13px; background:url(images/pic_up.png) 0 0 no-repeat; margin-top:5px; margin-left:3px;} -a.st_down{ display: block; width:8px; float:left; height:13px; background:url(images/pic_up.png) 0 -22px no-repeat; margin-top:5px; margin-left:3px;} +.st_up{ display: block; width:8px; float:left; height:13px; background:url(../images/pic_up.png) 0 0 no-repeat; margin-top:5px; margin-left:3px;} +.st_down{ display: block; width:8px; float:left; height:13px; background:url(../images/pic_up.png) 0 -22px no-repeat; margin-top:5px; margin-left:3px;} a.st_img { display:block;width:40px; height:40px; border:1px solid #CCC; padding:1px;} a:hover.st_img { border:1px solid #1c9ec7; } .st_boxlist{ border-bottom:1px dashed #CCC; height:53px; padding-top:10px; } @@ -63,5 +77,6 @@ a:hover.st_add{ color:#ff8e15;} .wlist a:hover{border:1px solid #15bccf; background-color:#15bccf; color:#fff;} .wlist_select a { background-color:#64bdd9; color:#fff;} -.submit{height:21px;border:0; cursor:pointer; background:url(images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; } -.isTxt{background:#fbfbfb url(images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;} \ No newline at end of file +.submit{height:21px;border:0; cursor:pointer; background:url(../images/btn.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; } +.submit_2{height:21px;border:0; cursor:pointer; background:url(../images/btn1.png) no-repeat 0 0;width:42px; margin-top:2px; margin-left:3px; } +.isTxt{background:#fbfbfb url(../images/inputBg.png) repeat-x left top;height:22px;line-height:22px;border:1px solid #c1c1c1;padding:0 5px;color:#666666;} \ No newline at end of file