Merge branches 'develop' and 'project_pack' of https://bdgit.educoder.net/Hjqreturn/pgfqe6ch8 into project_pack

project_pack
杨树明 5 years ago
commit 0d5748ab18

@ -1481,7 +1481,7 @@ end
redirect_to departments_managements_path redirect_to departments_managements_path
end end
# 改单位部门列表 # 改单位部门列表
def update_department def update_department
dep = Department.find params[:department_id] dep = Department.find params[:department_id]
@edit_id = params[:department_id] @edit_id = params[:department_id]
@ -1498,6 +1498,22 @@ end
end end
end end
# 修改部门名称
def update_depart_name
@depart = Department.find(params[:depart_id])
@depart.update_attributes(:name => params[:depart_name]) if @depart.school.departments.where(name: params[:depart_name]).count == 0
end
# 检查是否存在同名的部门
def check_depart_name
depart = Department.find(params[:depart_id])
if depart.school.departments.where(name: params[:depart_name]).count == 0
render :json => {status: 0, message: ""}
else
render :json => {status: -1, message: "该名称已存在"}
end
end
def edit_departments_school def edit_departments_school
begin begin
dep = Department.find(params[:department_id]) dep = Department.find(params[:department_id])
@ -1511,9 +1527,10 @@ end
# ApplyAddDepartment.where(:department_id =>params[:departments]).update_all(:department_id=>department_id) # ApplyAddDepartment.where(:department_id =>params[:departments]).update_all(:department_id=>department_id)
# users = UserExtensions.where("department_id = #{alt_dep.department_id}") # users = UserExtensions.where("department_id = #{alt_dep.department_id}")
# users.update_all(:department_id => department.id) # users.update_all(:department_id => department.id)
apply_dep.destroy_all; apply_dep.destroy_all
users = UserExtensions.where(:department_id => params[:alter_dep_id]) users = UserExtensions.where(:department_id => params[:alter_dep_id])
users.update_all(:department_id => dep.id) users.update_all(:department_id => dep.id)
dep.update_attributes(:identifier => alter_dep.identifier) if dep.identifier.nil? && alter_dep.identifier.present?
alter_dep.destroy alter_dep.destroy
end end
rescue Exception => e rescue Exception => e

@ -17,7 +17,7 @@
<% @department.each_with_index do |department,index| %> <% @department.each_with_index do |department,index| %>
<tr id="apply_add_department_<%= department.id %>"> <tr id="apply_add_department_<%= department.id %>">
<td><%= (@page -1) * @limit + index + 1 %></td> <td><%= (@page -1) * @limit + index + 1 %></td>
<td class="edu-txt-left"><%= department.name %></td> <td class="edu-txt-left" id="department_name_<%= department.id %>"><%= department.name %></td>
<td class="edu-txt-left"><%= School.where(:id => department.school_id).first %></td> <td class="edu-txt-left"><%= School.where(:id => department.school_id).first %></td>
<td><%= UserExtensions.where(:department_id => department.id, :school_id => department.school_id ).count %></td> <td><%= UserExtensions.where(:department_id => department.id, :school_id => department.school_id ).count %></td>
<td><%= User.where(:id => UserExtensions.where(:department_id => department.id, :school_id => department.school_id).map(&:user_id),:professional_certification => 1).count %></td> <td><%= User.where(:id => UserExtensions.where(:department_id => department.id, :school_id => department.school_id).map(&:user_id),:professional_certification => 1).count %></td>
@ -40,6 +40,7 @@
<td> <td>
<a href="javascript:void(0);" onclick="delete_confirm_box_2('<%= department_path(department) %>', '确定要删除该部门吗?')">删除&nbsp;</a> <a href="javascript:void(0);" onclick="delete_confirm_box_2('<%= department_path(department) %>', '确定要删除该部门吗?')">删除&nbsp;</a>
<%= link_to '更改', update_department_managements_path(:school_id=> department.school_id,:department_id => department.id), :remote => true, :class => "application-default-link" %> <%= link_to '更改', update_department_managements_path(:school_id=> department.school_id,:department_id => department.id), :remote => true, :class => "application-default-link" %>
<a href="javascript:void(0)" class="application-default-link" onclick="editDepartName(<%= department.id %>);">修改</a>
</td> </td>
</tr> </tr>
<% end %> <% end %>
@ -78,4 +79,11 @@
$("#update_host_count_depart_id").val(id); $("#update_host_count_depart_id").val(id);
$("input[name='host_count']").val($("#depart_host_count_"+id).html().trim()); $("input[name='host_count']").val($("#depart_host_count_"+id).html().trim());
} }
function editDepartName(id){
var htmlvalue = "<%= escape_javascript(render :partial => 'managements/edit_depart_name') %>";
pop_box_new(htmlvalue,400,204);
$("#update_depart_name_depart_id").val(id);
$("input[name='depart_name']").val($("#department_name_"+id).html().trim());
}
</script> </script>

@ -0,0 +1,15 @@
<div class="task-popup" style="width:400px;">
<div class="task-popup-title clearfix task-popup-bggrey">修改</div>
<%= form_for '', :url => update_depart_name_managements_path,:html => {:id => 'update_depart_name_form', :remote => true, :method => :post} do |f| %>
<div class="task_popup_con edu-txt-center">
<input type="hidden" name="depart_id" id="update_depart_name_depart_id" value="">
<input type="text" name="depart_name" placeholder="输入新名称" maxlength="30" class="input-100-35"/>
<p class="color-red none edu-txt-left" id="update_depart_name_notice"></p>
<div class="inline mt20">
<a href="javascript:void(0);" class="task-btn task-btn-orange fr" onclick="submit_depart_name_form();">确定</a>
<a href="javascript:void(0);" onclick="hideModal();" class="pop_close task-btn fr mr10">取消</a>
</div>
</div>
<% end %>
</div>

@ -0,0 +1 @@
$("#department_name_<%= @depart.id %>").html("<%= params[:depart_name] %>");

@ -633,6 +633,8 @@ RedmineApp::Application.routes.draw do ## oauth相关
match 'new_major', :via => [:get, :post] match 'new_major', :via => [:get, :post]
post 'insert_major' post 'insert_major'
match 'update_department',:via => [:get, :post] match 'update_department',:via => [:get, :post]
post 'update_depart_name'
get 'check_depart_name'
post 'edit_departments_school' post 'edit_departments_school'
get 'create_departments' get 'create_departments'
post 'add_department' post 'add_department'

@ -26,6 +26,27 @@ function submit_depart_host_count(){
} }
} }
function submit_depart_name_form(){
if($("input[name='depart_name']").val().trim() == ""){
$("#update_depart_name_notice").html("名称不能为空").show();
} else {
$.ajax({
type: "GET",
url: '/managements/check_depart_name',
data: {depart_id: $("#update_depart_name_depart_id").val(), depart_name: $("input[name='depart_name']").val().trim()},
success: function (data) {
if(data.status == 0){
$("#update_depart_name_notice").hide();
$('#update_depart_name_form').submit();
hideModal();
} else{
$("#update_depart_name_notice").html("该名称已存在").show();
}
}
});
}
}
/*--------------------------- 用户授权全选 -------------------------------*/ /*--------------------------- 用户授权全选 -------------------------------*/
$("#all_member_select").live('click', function(){ $("#all_member_select").live('click', function(){
if($("#all_member_select").is(':checked')){ if($("#all_member_select").is(':checked')){

@ -206,6 +206,7 @@ $(function(){
// window resize // window resize
$(window).on('resize', function() { $(window).on('resize', function() {
// _resizeVNC_if_needed()
$('.CodeMirror.cm-s-railscasts').css("height", $("#games_repository_contents").height() - repositoryTabHeight); $('.CodeMirror.cm-s-railscasts').css("height", $("#games_repository_contents").height() - repositoryTabHeight);
}) })
@ -1182,6 +1183,7 @@ $(function(){ // 这里重新加一次事件监听,不在原有事件的基
dragging = true; dragging = true;
dragDom = lab; dragDom = lab;
$('#htmlIframe').css('pointer-events', 'none') $('#htmlIframe').css('pointer-events', 'none')
$('#can-drag').show()
return false; return false;
} }
); );
@ -1202,7 +1204,10 @@ $(function(){ // 这里重新加一次事件监听,不在原有事件的基
doc.live("mouseup", function(e) { doc.live("mouseup", function(e) {
// 在大窗口将下边测试集滚动条拖上去后,将窗口缩小,再拖下来就有这种情况 https://www.trustie.net/issues/16326 // 在大窗口将下边测试集滚动条拖上去后,将窗口缩小,再拖下来就有这种情况 https://www.trustie.net/issues/16326
$('#can-drag').hide()
if (dragging === true) { if (dragging === true) {
// _resizeVNC_if_needed()
window.editor_CodeMirror && window.editor_CodeMirror.refresh() window.editor_CodeMirror && window.editor_CodeMirror.refresh()
// 使得iframe可以继续捕获事件 // 使得iframe可以继续捕获事件
$('#htmlIframe').css('pointer-events', 'inherit') $('#htmlIframe').css('pointer-events', 'inherit')
@ -1210,6 +1215,27 @@ $(function(){ // 这里重新加一次事件监听,不在原有事件的基
dragging = false; dragging = false;
}); });
}) })
function _resizeVNC_if_needed() {
return;
if (window.__isVNC) {
// $('#screen>div').width('1024px').height('768px')
var trueHeight = $('#game_right_contents').height();
var width = $('#game_right_contents').width()
// __rfb && __rfb.get_display().autoscale(width, trueHeight)
return;
if (trueHeight < 768) {
var width = $('#game_right_contents').width()
var _left = width - $('#screen').width() / 2
var scale = (trueHeight / 768).toFixed(5)
// _left
$('#screen').css('transform', 'scale(' + scale + ', ' + scale +')').css('transform-origin', 0 + 'px 0px')
} else {
$('#screen').css('transform', 'scale(' + 1 + ', ' + 1 +')')
}
}
}
// --------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------
/** /**

@ -47,6 +47,7 @@ class MainContent extends Component {
games_repository_contents_style = {overflow: 'hidden', height: '445px'} games_repository_contents_style = {overflow: 'hidden', height: '445px'}
} }
const showIframeContent = shixun && shixun.vnc == true const showIframeContent = shixun && shixun.vnc == true
// window.__isVNC = showIframeContent && !!vnc_url
return ( return (
<div className="page--body -margin-t-64 -flex"> <div className="page--body -margin-t-64 -flex">
<div className="-layout -stretch -fit labelN" id="game_show_content"> <div className="-layout -stretch -fit labelN" id="game_show_content">
@ -55,6 +56,18 @@ class MainContent extends Component {
{/* 左侧任务说明等功能的区域 */} {/* 左侧任务说明等功能的区域 */}
<LeftViewContainer {...this.props}></LeftViewContainer> <LeftViewContainer {...this.props}></LeftViewContainer>
</div> </div>
<style>{`
.can-drag {
width: 100%;
height: 100%;
z-index: 100;
position: fixed;
cursor: col-resize;
top: 0px;
}
`}</style>
{showIframeContent && vnc_url && <div id="can-drag" className="can-drag" style={{display: 'none'}}></div>}
<div className="b-label -layout" style={{left: '687px'}}> <div className="b-label -layout" style={{left: '687px'}}>
<div className="resize-helper "> <div className="resize-helper ">

@ -13,6 +13,7 @@ class VNCDisplay extends Component {
// When this function is called we have // When this function is called we have
// successfully connected to a server // successfully connected to a server
function connectedToServer(e) { function connectedToServer(e) {
$('#top_bar').hide()
status("Connected to " + desktopName); status("Connected to " + desktopName);
} }
// This function is called when we are disconnected // This function is called when we are disconnected
@ -109,6 +110,8 @@ class VNCDisplay extends Component {
// Set parameters that can be changed on an active connection // Set parameters that can be changed on an active connection
rfb.viewOnly = readQueryVariable('view_only', false); rfb.viewOnly = readQueryVariable('view_only', false);
rfb.scaleViewport = readQueryVariable('scale', false); rfb.scaleViewport = readQueryVariable('scale', false);
rfb.resizeSession = true
window.__rfb = rfb;
} }
render() { render() {
@ -116,7 +119,7 @@ class VNCDisplay extends Component {
return ( return (
<div className=""> <div className="" style={{height: '100%'}}>
<style>{` <style>{`
#top_bar { #top_bar {
background-color: #6e84a3; background-color: #6e84a3;
@ -137,6 +140,7 @@ class VNCDisplay extends Component {
cursor: pointer; cursor: pointer;
} }
#screen { #screen {
height: 100%;
flex: 1; /* fill remaining space */ flex: 1; /* fill remaining space */
overflow: hidden; overflow: hidden;
} }

Loading…
Cancel
Save