|
|
<%@page language="java" contentType="text/html;charset=utf-8" %>
|
|
|
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
|
|
|
|
|
<%
|
|
|
String path = request.getContextPath();
|
|
|
String basePath = request.getScheme() + "://"
|
|
|
+ request.getServerName() + ":" + request.getServerPort()
|
|
|
+ path + "/";
|
|
|
%>
|
|
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
|
<html>
|
|
|
<head>
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/bootstrap.min.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/bootstrap-datetimepicker.css"/>
|
|
|
<link href="<%=basePath %>js/bootstrap-plugin/css/bootstrap.table.css" rel="stylesheet" media="screen"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/bootstrap-responsive.min.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/fullcalendar.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/unicorn.main.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/unicorn.grey.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/jquery-ui.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/uniform.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/select2.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>js/jstree/themes/proton/style.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/select2.css"/>
|
|
|
<link rel="stylesheet" href="<%=basePath %>css/yoho.css"/>
|
|
|
<script src="<%=basePath %>js/excanvas.min.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/jquery-1.12.0.min.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/jquery-ui.custom.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>/js/bootstrap.min.js"></script>
|
|
|
<script src="<%=basePath %>/js/unicorn.js"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/datetimepicker/moment-with-locales.js" charset="UTF-8"
|
|
|
type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/datetimepicker/bootstrap-datetimepicker.js" charset="UTF-8"
|
|
|
type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/global.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.pagination.js" charset="UTF-8"
|
|
|
type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.table.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.dialog.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.form.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.panel.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.alerts.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.accordion.js" charset="UTF-8"
|
|
|
type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.breadcrumb.js" charset="UTF-8"
|
|
|
type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.validate.js" charset="UTF-8"
|
|
|
type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.form.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/layer/layer.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.select.js" charset="UTF-8" type="text/javascript"></script>
|
|
|
<script src="<%=basePath %>js/jstree/jstree.min.js"></script>
|
|
|
<script src="<%=basePath %>js/jquery.toaster.js"></script>
|
|
|
<script>
|
|
|
var contextPath = '<%=basePath %>';
|
|
|
</script>
|
|
|
<title>YOHO!运维</title>
|
|
|
</head>
|
|
|
<body>
|
|
|
|
|
|
<!-- 头部 -->
|
|
|
<div id="head">
|
|
|
</div>
|
|
|
<!-- 右侧具体内容 -->
|
|
|
<div id="content">
|
|
|
|
|
|
<div id="breadcrumb">
|
|
|
<a href="#" title="Go to Home" class="tip-bottom"><i
|
|
|
class="icon-home"></i> Home</a> <a href="#" class="current">发布进程</a>
|
|
|
</div>
|
|
|
|
|
|
<div class="container-fluid">
|
|
|
|
|
|
|
|
|
<div class="widget-box">
|
|
|
<div class="widget-title">
|
|
|
<h5>发布进程信息</h5>
|
|
|
</div>
|
|
|
<div class="widget-content nopadding">
|
|
|
<div class="widget-title" style="height: 53px;">
|
|
|
<div>
|
|
|
<div class="form-inline" role="form" id="inBoxQueryDiv"
|
|
|
style=" margin-top: 12px;margin-left: 25px;float: left;">
|
|
|
<div class="input-group" style="float: left;">
|
|
|
<span class="input-group-addon">操作:</span>
|
|
|
<input type="text" id="operate_name" name="operate_name" class="form-control"
|
|
|
readonly="readonly" value="${operate_name}"/>
|
|
|
</div>
|
|
|
<div class="input-group" style="float: left;">
|
|
|
<span class="input-group-addon">环境:</span>
|
|
|
<input type="text" id="environment_name" name="environment_name" class="form-control"
|
|
|
readonly="readonly" value="${environment_name}"/>
|
|
|
</div>
|
|
|
<div class="input-group" style="float: left;">
|
|
|
<span class="input-group-addon">分支:</span>
|
|
|
<input type="text" id="branch_name" name="branch_name" class="form-control"
|
|
|
readonly="readonly" value="${branch_name}"/>
|
|
|
</div>
|
|
|
<div class="input-group" style="float: left;">
|
|
|
<span class="input-group-addon">主机:</span>
|
|
|
<input type="text" id="hosts_name" name="hosts_name" class="form-control"
|
|
|
readonly="readonly" value="${hosts_name}"/>
|
|
|
</div>
|
|
|
<div class="input-group" style="float: left;">
|
|
|
<span class="input-group-addon">回滚:</span>
|
|
|
<input type="text" id="rollbackfile_name" name="rollbackfile_name" class="form-control"
|
|
|
readonly="readonly" value="${rollbackfile_name}"/>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<c:forEach items="${messageList }" var="message">
|
|
|
<div style="float: left;height: 600px;">
|
|
|
<hr>
|
|
|
<div>执行顺序:<strong>${message.projectOrder}</strong>
|
|
|
</div>
|
|
|
<div>当前项目:<input type="text" id="currentProject_${message.id}" value="${message.currentProject}" readonly="readonly">
|
|
|
<button type="button" id="cancel-btn_${message.id}" onclick="cancelBuild('${message.id}')"
|
|
|
class="btn btn-xs btn-danger">取消
|
|
|
</button>
|
|
|
</div>
|
|
|
<div style="height: 50px" class="alert alert-warning" id="task-info-div_${message.id}">
|
|
|
</div>
|
|
|
<textarea id="resultArea_${message.id}" rows="25" cols="100"
|
|
|
style="background-color: black; color: white" readonly="readonly"></textarea>
|
|
|
</div>
|
|
|
</c:forEach>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
<input type="hidden" id="messageListHidden" value="${messageids}">
|
|
|
</body>
|
|
|
<script src="<%=basePath %>script/common/genarate_left_panel.js"></script>
|
|
|
<script>
|
|
|
$("#li_project").addClass("active open");
|
|
|
$("#li_phpRelease").addClass("active");
|
|
|
</script>
|
|
|
<script>
|
|
|
|
|
|
var myArray;
|
|
|
var removeArray = new Array();
|
|
|
$(function () {
|
|
|
var messageListHidden = $("#messageListHidden").val();
|
|
|
myArray = messageListHidden.split(",");
|
|
|
|
|
|
var interval = setInterval(function () {//查后台,展示数据
|
|
|
$.each(myArray, function (idx, val) {
|
|
|
if(jQuery.inArray(val, removeArray) != -1){
|
|
|
return;
|
|
|
}
|
|
|
if(val == ""){
|
|
|
return;
|
|
|
}
|
|
|
var cproject = $("#currentProject_"+val).val();
|
|
|
$.ajax({
|
|
|
url: contextPath + 'phpBuild/getbuildmsg?messageid=' + val+"&project="+cproject,
|
|
|
type: 'POST',
|
|
|
dataType: 'json',
|
|
|
success: function (data3) {
|
|
|
var obj2 = eval("(" + data3 + ")");
|
|
|
var messagedata = obj2.data;
|
|
|
|
|
|
var currproject = messagedata.currentProject;
|
|
|
if (currproject != cproject) {
|
|
|
$("#currentProject_"+val).val(currproject);//更换当前的项目
|
|
|
$("#resultArea_" + val).val("")
|
|
|
}
|
|
|
|
|
|
if (messagedata.message != "") {
|
|
|
var d = $("#resultArea_" + val).val();
|
|
|
$("#resultArea_"+ val).val(d + messagedata.message);
|
|
|
var scrollTop = $("#resultArea_" + val)[0].scrollHeight;
|
|
|
$("#resultArea_" + val).scrollTop(scrollTop);
|
|
|
}
|
|
|
|
|
|
//code为2 ,则结束
|
|
|
var code = obj2.code;
|
|
|
var message = obj2.message;
|
|
|
if (code == 2) {
|
|
|
document.getElementById("task-info-div_" + val).innerHTML = "<strong>'" + message + "'</strong>";
|
|
|
removeArray.push(val);
|
|
|
$("#cancel-btn_"+val).hide();
|
|
|
}
|
|
|
|
|
|
},
|
|
|
error: function (e) {
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
}, 3000);
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
* 取消
|
|
|
*/
|
|
|
function cancelBuild(messageid) {
|
|
|
|
|
|
var jsondata = {"id": messageid};
|
|
|
$.ajax({
|
|
|
url: contextPath + 'project/cancelBuild',
|
|
|
type: 'POST',
|
|
|
dataType: 'json',
|
|
|
data: jsondata,
|
|
|
success: function (data) {
|
|
|
},
|
|
|
error: function (e) {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<script>
|
|
|
document.onkeydown = function()
|
|
|
{
|
|
|
if(event.keyCode==116 || event.keyCode==8 || (event.ctrlKey && event.keyCode==82) || event.keyCode == 13) {
|
|
|
event.keyCode=0;
|
|
|
event.returnValue = false;
|
|
|
}
|
|
|
}
|
|
|
document.oncontextmenu = function() {event.returnValue = false;}
|
|
|
|
|
|
</script> |
|
|
\ No newline at end of file |
...
|
...
|
|