班级的配置页面,管理员增加“更换管理员”功能
This commit is contained in:
parent
49c6b3be12
commit
b81d9b86c4
|
@ -354,6 +354,41 @@ class CoursesController < ApplicationController
|
|||
#search_group_members group
|
||||
end
|
||||
|
||||
def change_manager
|
||||
if params[:chooseteacher]
|
||||
man_member = Member.where(:course_id => @course.id, :user_id => @course.tea_id).first
|
||||
cha_member = Member.find params[:chooseteacher]
|
||||
if man_member && cha_member
|
||||
cha_member.member_roles.where("role_id = 9 || role_id = 7").first.update_attributes(:role_id => 3, :is_current => 1)
|
||||
if cha_member.member_roles.where("role_id = 10").count > 0
|
||||
cha_member.member_roles.where("role_id = 10").first.destroy
|
||||
StudentsForCourse.where(:course_id => @course.id, :student_id => cha_member.user_id).destroy_all
|
||||
end
|
||||
@course.update_attributes(:tea_id => cha_member.user_id)
|
||||
man_member.member_roles.first.update_attributes(:role_id => 9)
|
||||
course_act = CourseActivity.where(:course_id => @course.id, :course_act_id => @course.id, :course_act_type => 'Course').first
|
||||
course_act.update_column('user_id', cha_member.user_id)
|
||||
UserActivity.where(:act_id => @course.id, :container_type => 'Course', :act_type => 'Course', :container_id => @course.id).first.update_column('user_id', cha_member.user_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def search_course_teacher_list
|
||||
q = params[:search] ? "#{params[:search].strip}" : ""
|
||||
@members = searchTeacherAndAssistantNoManager(@course)
|
||||
if q.nil? || q == ""
|
||||
else
|
||||
members = []
|
||||
@members.each do |m|
|
||||
username = m.user[:lastname].to_s.downcase + m.user[:firstname].to_s.downcase
|
||||
if m && m.user && (m.user[:login].to_s.downcase.include?(q) || m.user[:mail].to_s.downcase.include?(q) || username.include?(q))
|
||||
members << m
|
||||
end
|
||||
end
|
||||
@members = members
|
||||
end
|
||||
end
|
||||
|
||||
#查找未分班的学生
|
||||
def search_not_group_member
|
||||
@group = CourseGroup.find params[:group_id]
|
||||
|
|
|
@ -257,6 +257,14 @@ module CoursesHelper
|
|||
count.to_s << '+'
|
||||
end
|
||||
|
||||
def searchTeacherAndAssistantNoManager course
|
||||
members = []
|
||||
course.members.includes(:user).each do |m|
|
||||
members << m if m && m.user && m.user != course.teacher && m.user.has_teacher_role(course)
|
||||
end
|
||||
members
|
||||
end
|
||||
|
||||
# =====================================================================================
|
||||
# return people list
|
||||
def searchTeacherAndAssistant project
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
window.location.href = "<%= settings_course_path(@course.id, :tab => 'member') %>";
|
|
@ -0,0 +1 @@
|
|||
$("#search_member_list").html("<%= escape_javascript(render :partial => 'courses/settings/search_teacher_list', :locals => {:members => @members}) %>");
|
|
@ -0,0 +1,76 @@
|
|||
<div id="muban_popup_box" style="width:424px;">
|
||||
<div class="muban_popup_top">
|
||||
<h3 class="fl">更换管理员</h3>
|
||||
<a href="javascript:void(0);" class="muban_icons_close fr"></a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="muban_popup_con clear">
|
||||
<div class="mr10 ml10">
|
||||
<div class="alert alert-orange mb10 mt10">
|
||||
选择的成员将会成为新的管理员,您的角色将变更为“教师”
|
||||
</div>
|
||||
<div class="" style="border: 1px solid #ccc">
|
||||
<input type="text" name="search" value="<%=@search %>" placeholder="支持姓名、邮箱、登录名搜索" class="subjectSearch" style="height: 32px; width: 380px; margin: 5px 7px 0 7px; border: 1px solid #e5e5e5;" />
|
||||
<div class="cl"></div>
|
||||
<%= form_tag(change_manager_course_path(@course), method: 'post', :remote => true, :class => "",:id => "change_manager_form") do %>
|
||||
<div id="search_member_list" style="padding: 0 7px;">
|
||||
<%=render :partial => 'courses/settings/search_teacher_list', :locals => {:members => nil} %>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="cl"></div>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
<div class="mt10">
|
||||
<span class="c_red none" id="add_members_notice"></span>
|
||||
|
||||
<a href="javascript:void(0);" class="fr sy_btn_blue" onclick="submit_add_members_form();">确定</a>
|
||||
<a href="javascript:void(0);" class="fr sy_btn_grey mr10" onclick="hideModal();">取消</a>
|
||||
<div class="cl"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var lastSearchCondition = '';
|
||||
var count = 0;
|
||||
function search_mems(e){
|
||||
if($(e.target).val().trim() == lastSearchCondition && lastSearchCondition != '')
|
||||
{
|
||||
return;
|
||||
}
|
||||
lastSearchCondition = $(e.target).val().trim();
|
||||
$.ajax({
|
||||
url: '<%= url_for(:controller => 'courses', :action => 'search_course_teacher_list', :id => @course.id) %>'+'?search='+ e.target.value,
|
||||
type:'get'
|
||||
});
|
||||
}
|
||||
|
||||
function throttle(method,context,e){
|
||||
clearTimeout(method.tId);
|
||||
method.tId=setTimeout(function(){
|
||||
method.call(context,e);
|
||||
},500);
|
||||
}
|
||||
|
||||
//查询项目
|
||||
$("input[name='search']").on('input', function (e) {
|
||||
throttle(search_mems,window,e);
|
||||
});
|
||||
|
||||
$(document).ready(function(){
|
||||
$.ajax({
|
||||
url: '<%= url_for(:controller => 'courses', :action => 'search_course_teacher_list', :id => @course.id) %>',
|
||||
type:'get'
|
||||
});
|
||||
});
|
||||
|
||||
function submit_add_members_form(){
|
||||
if($("input[name='chooseteacher']:checked").length == 0) {
|
||||
$("#add_members_notice").show();
|
||||
$("#add_members_notice").html("请先选择成员");
|
||||
} else{
|
||||
$("#change_manager_form").submit();
|
||||
hideModal();
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -59,7 +59,11 @@
|
|||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<% unless member.user == @course.teacher %>
|
||||
<% if member.user == @course.teacher %>
|
||||
<% if User.current == @course.teacher %>
|
||||
<a href="javascript:void(0)" class="sy_btn_green" onclick="change_manager();">更换管理员</a>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<a href="javascript:void(0)" class="sy_btn_blue mr5" onclick="edit_member($(this), <%=member.id %>);">编辑</a>
|
||||
<a href="javascript:void(0)" class="sy_btn_blue mr5" style="display: none;" onclick="$('#member-<%= member.id%>-roles-form').submit();">保存</a>
|
||||
<a href="javascript:void(0)" class="sy_btn_grey mr5" style="display: none;" onclick="cancel_edit($(this), <%=member.id %>);">取消</a>
|
||||
|
@ -87,4 +91,8 @@
|
|||
$('#delete_member_' + id).show();
|
||||
$(div).hide();
|
||||
}
|
||||
function change_manager(){
|
||||
var htmlvalue = "<%= escape_javascript(render :partial => 'courses/settings/change_manager') %>";
|
||||
pop_box_new(htmlvalue, 424, 366);
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,12 @@
|
|||
<ul class="mt10" style="height:160px; min-height:160px; max-height:160px; overflow:auto;">
|
||||
<% unless members.nil? || members.empty? %>
|
||||
<% members.each do |mem| %>
|
||||
<li>
|
||||
<input type="radio" name="chooseteacher" value="<%=mem.id %>" class="mr5" style="vertical-align:middle;" />
|
||||
<span class="break_word" style="width: 350px;"><%=mem.user.show_name %>(<%= mem.user.login %>)</span>
|
||||
</li>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
<div class="cl"></div>
|
|
@ -1362,6 +1362,8 @@ RedmineApp::Application.routes.draw do
|
|||
get "switch_role"
|
||||
get 'search_not_group_member'
|
||||
post 'add_members'
|
||||
get 'search_course_teacher_list'
|
||||
post 'change_manager'
|
||||
get 'delete_member'
|
||||
get 'archive_course'
|
||||
get 'set_invite_code_halt'
|
||||
|
|
Loading…
Reference in New Issue