...
|
...
|
@@ -42,13 +42,13 @@ |
|
|
<div class="form-group">
|
|
|
<label class="col-sm-1 control-label">操作选择</label>
|
|
|
|
|
|
<div class="col-sm-8" style="display: inline">
|
|
|
<div class="rdio rdio-default">
|
|
|
<div class="col-sm-8" style="display: inline">
|
|
|
<div class="rdio rdio-default" style="display: inline">
|
|
|
<input type="radio" name="operate" id="operatedeploy" value="Deploy" checked="checked" onclick="operateChange()"/>
|
|
|
<label for="operatedeploy">发布</label>
|
|
|
</div>
|
|
|
|
|
|
<div class="rdio rdio-default">
|
|
|
<div class="rdio rdio-default" style="display:inline;margin-left:30px;">
|
|
|
<input type="radio" name="operate" value="Rollback" id="operateback" onclick="operateChange()"/>
|
|
|
<label for="operateback">回滚</label>
|
|
|
</div>
|
...
|
...
|
@@ -61,7 +61,7 @@ |
|
|
<div class="col-sm-8">
|
|
|
<c:forEach items="${environments }" var="envi" varStatus="enviStatus">
|
|
|
<div class="rdio rdio-default">
|
|
|
<input type="radio" name="environments" id="${envi }" value="${envi }"
|
|
|
<input type="radio" name="environments" id="${envi }" value="${envi }" onclick="blurEnv()"
|
|
|
<c:choose>
|
|
|
<c:when test="${releaseWorkJob_environment!=null}">
|
|
|
<c:set var="envi_comm">${envi},</c:set>
|
...
|
...
|
@@ -74,6 +74,7 @@ |
|
|
/>
|
|
|
<label for="${envi }">${envi }</label>
|
|
|
</div>
|
|
|
<div id="div_cluster_${envi}" style="margin-left:50px;"></div>
|
|
|
</c:forEach>
|
|
|
</div>
|
|
|
</div>
|
...
|
...
|
@@ -177,6 +178,13 @@ |
|
|
<br>
|
|
|
|
|
|
<div class="input-group">
|
|
|
<span class="input-group-addon">发布集群</span>
|
|
|
<input type="hidden" name="clusters_name" >
|
|
|
<input type="text" name="clusters_text" class="form-control" readonly="readonly">
|
|
|
</div>
|
|
|
<br>
|
|
|
|
|
|
<div class="input-group">
|
|
|
<span class="input-group-addon">工程名称</span>
|
|
|
<input type="hidden" name="project_id" class="form-control" readonly="readonly">
|
|
|
<input type="text" name="project_name" class="form-control" readonly="readonly">
|
...
|
...
|
@@ -232,6 +240,7 @@ |
|
|
|
|
|
</html>
|
|
|
<script type="text/javascript">
|
|
|
var global_all_clusters=${clusters};
|
|
|
jQuery(document).ready(function () {
|
|
|
getProjects();
|
|
|
});
|
...
|
...
|
@@ -277,13 +286,21 @@ |
|
|
for (var i = 0; i < obj.length; i++) {
|
|
|
var projectId = obj[i].id;
|
|
|
var name = obj[i].projectName;
|
|
|
var cluster_online = obj[i].dockerOnlineClusterId;
|
|
|
if(!cluster_online){
|
|
|
cluster_online="";
|
|
|
}
|
|
|
var cluster_gray = obj[i].dockerGrayClusterId;
|
|
|
if(!cluster_gray){
|
|
|
cluster_gray="";
|
|
|
}
|
|
|
var checkstr="";
|
|
|
if(default_releaseWorkJob_project!=null&&default_releaseWorkJob_project.indexOf(name+",")>=0){
|
|
|
checkstr = " checked ";
|
|
|
}
|
|
|
order1HTML += "<div class='ckbox ckbox-primary' style='display: inline'>";
|
|
|
order1HTML += " <input name='project1' type='checkbox' " + checkstr ;
|
|
|
order1HTML += " id='" + name + "' value='" + projectId + "'/>";
|
|
|
order1HTML += " <input name='project1' onclick='resetCls_deploy()' type='checkbox' " + checkstr ;
|
|
|
order1HTML += " cluster_online='"+cluster_online+"' cluster_gray='"+cluster_gray+"' id='" + name + "' value='" + projectId + "'/>";
|
|
|
order1HTML += "<label for='" + name + "' style='width: 200px'>" + name + "</label></div>";
|
|
|
if (order1num % 4 == 0) {
|
|
|
order1HTML += "</br>";
|
...
|
...
|
@@ -326,6 +343,125 @@ |
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function blurEnv() {
|
|
|
var environment = $("input[name='environments']:checked").val();
|
|
|
if(environment=="yoho-online"){
|
|
|
$("#div_cluster_yoho-gray [name='dockerGrayClusterId']").removeAttr("checked");
|
|
|
}else{
|
|
|
$("#div_cluster_yoho-online [name='dockerOnlineClusterId']").removeAttr("checked");
|
|
|
//选中第一个
|
|
|
$("#div_cluster_yoho-gray [name='dockerGrayClusterId']").eq(0).attr("checked",'true');
|
|
|
}
|
|
|
}
|
|
|
function resetCls_deploy(){
|
|
|
resetCls("project1");
|
|
|
}
|
|
|
function resetCls(checkbox_projectName){
|
|
|
var cluster_online=new Array();
|
|
|
var cluster_gray=new Array();
|
|
|
var index=0;
|
|
|
|
|
|
$('input[name="'+checkbox_projectName+'"]:checked').each(function () {
|
|
|
if(index==0){
|
|
|
if($(this).attr("cluster_online")){
|
|
|
cluster_online=$(this).attr("cluster_online").split(",");
|
|
|
}
|
|
|
if($(this).attr("cluster_gray")){
|
|
|
cluster_gray=$(this).attr("cluster_gray").split(",");
|
|
|
}
|
|
|
}else{
|
|
|
//多选,取交集
|
|
|
if(cluster_online.length>0){
|
|
|
cluster_online=intersectArray(cluster_online,$(this).attr("cluster_online").split(","));
|
|
|
}
|
|
|
|
|
|
if(cluster_gray.length>0){
|
|
|
cluster_gray=intersectArray(cluster_gray,$(this).attr("cluster_gray").split(","));
|
|
|
}
|
|
|
}
|
|
|
index++;
|
|
|
});
|
|
|
var environment = $("input[name='environments']:checked").val();
|
|
|
var htmlContent="";
|
|
|
for(var i=0;i<cluster_online.length;i++){
|
|
|
var key=cluster_online[i];
|
|
|
var checkedFlag="";
|
|
|
if(i>=0&&environment=="yoho-online"){
|
|
|
checkedFlag=" checked ";
|
|
|
}
|
|
|
htmlContent += '<div class="ckbox ckbox-primary" style="display: inline">'
|
|
|
+' <input type="checkbox" id="dockerOnlineClusterId_'+key+'" name="dockerOnlineClusterId" '
|
|
|
+checkedFlag
|
|
|
+' value="'+key+'"/>'
|
|
|
+' <label for="dockerOnlineClusterId_' + key + '">'+global_all_clusters[key]+'</label> </div>';
|
|
|
}
|
|
|
$("#div_cluster_yoho-online").html(htmlContent);
|
|
|
|
|
|
//重置变量
|
|
|
htmlContent="";
|
|
|
for(var i=0;i<cluster_gray.length;i++){
|
|
|
var key=cluster_gray[i];
|
|
|
var checkedFlag="";
|
|
|
if(i==0&&environment=="yoho-gray"){
|
|
|
checkedFlag=" checked ";
|
|
|
}
|
|
|
htmlContent += '<div class="ckbox ckbox-primary" style="display: inline">'
|
|
|
+' <input type="checkbox" id="dockerGrayClusterId_'+key+'" name="dockerGrayClusterId" '
|
|
|
+checkedFlag
|
|
|
+' value="'+key+'"/>'
|
|
|
+' <label for="dockerGrayClusterId_'+key+'">'+global_all_clusters[key]+'</label> </div>';
|
|
|
}
|
|
|
$("#div_cluster_yoho-gray").html(htmlContent);
|
|
|
//console.log(cluster_online);
|
|
|
//console.log(cluster_gray);
|
|
|
}
|
|
|
|
|
|
function intersectArray(a, b){
|
|
|
return Array.intersect(a, b);
|
|
|
}
|
|
|
|
|
|
Array.prototype.indexOf = Array.prototype.indexOf || function (searchElement, fromIndex) {
|
|
|
var index = -1;
|
|
|
fromIndex = fromIndex * 1 || 0;
|
|
|
for (var k = 0, length = this.length; k < length; k++) {
|
|
|
if (k >= fromIndex && this[k] === searchElement) {
|
|
|
index = k;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return index;
|
|
|
};
|
|
|
|
|
|
Array.prototype.filter = Array.prototype.filter || function (fn, context) {
|
|
|
var arr = [];
|
|
|
if (typeof fn === "function") {
|
|
|
for (var k = 0, length = this.length; k < length; k++) {
|
|
|
fn.call(context, this[k], k, this) && arr.push(this[k]);
|
|
|
}
|
|
|
}
|
|
|
return arr;
|
|
|
};
|
|
|
|
|
|
// 数组去重
|
|
|
Array.prototype.unique = function() {
|
|
|
var n = {}, r = [];
|
|
|
for (var i = 0; i < this.length; i++) {
|
|
|
if (!n[this[i]]) {
|
|
|
n[this[i]] = true;
|
|
|
r.push(this[i]);
|
|
|
}
|
|
|
}
|
|
|
return r;
|
|
|
};
|
|
|
|
|
|
Array.intersect = function(arr1, arr2) {
|
|
|
if(Object.prototype.toString.call(arr1) === "[object Array]" && Object.prototype.toString.call(arr2) === "[object Array]") {
|
|
|
return arr1.filter(function(v){
|
|
|
return arr2.indexOf(v)!==-1
|
|
|
})
|
|
|
}
|
|
|
};
|
|
|
|
|
|
function getRollbackList(){
|
|
|
var projectId = $("input[name='project']:checked").val();
|
...
|
...
|
@@ -380,10 +516,24 @@ |
|
|
$("input[name='workid']").val("release0");
|
|
|
}
|
|
|
|
|
|
//确认提交
|
|
|
//打开提交的确认界面
|
|
|
function comfirmSubmit() {
|
|
|
var operate = $("input[name='operate']:checked").val();
|
|
|
var environment = $("input[name='environments']:checked").val();
|
|
|
//获取集群
|
|
|
var clustersName=new Array();
|
|
|
var clustersText=new Array();
|
|
|
if("yoho-online"==environment){
|
|
|
$('input[name="dockerOnlineClusterId"]:checked').each(function () {
|
|
|
clustersName.push($(this).val());//向数组中添加元素
|
|
|
clustersText.push($(this).next().text());
|
|
|
});
|
|
|
}else{
|
|
|
$('input[name="dockerGrayClusterId"]:checked').each(function () {
|
|
|
clustersName.push($(this).val());//向数组中添加元素
|
|
|
clustersText.push($(this).next().text());
|
|
|
});
|
|
|
}
|
|
|
var projects = new Array();
|
|
|
var projectNames = new Array();
|
|
|
if ("Deploy" == operate) {//发布
|
...
|
...
|
@@ -397,6 +547,11 @@ |
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (clustersName.length == 0) {
|
|
|
alert("请选择发布集群");
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
var branch = $("input[name='branch']").val();
|
|
|
if (branch == "") {
|
|
|
alert("请填写分支名称");
|
...
|
...
|
@@ -412,6 +567,8 @@ |
|
|
$("input[name='project_id']").val(projects);
|
|
|
$("input[name='project_name']").val(projectNames);
|
|
|
$("input[name='environment_name']").val(environment);
|
|
|
$("input[name='clusters_name']").val(clustersName);
|
|
|
$("input[name='clusters_text']").val(clustersText);
|
|
|
$("input[name='branch_name']").val(branch);
|
|
|
$("input[name='workid_name']").val(workid);
|
|
|
$('#confirmSubmitDivId').modal('show');
|
...
|
...
|
@@ -498,7 +655,8 @@ |
|
|
param.environment_name=$("input[name='environment_name']").val();
|
|
|
param.branch_name=$("input[name='branch_name']").val();
|
|
|
param.workid_name=$("input[name='workid_name']").val();
|
|
|
|
|
|
param.clusters_name=$("input[name='clusters_name']").val();
|
|
|
param.clusters_text=$("input[name='clusters_text']").val();
|
|
|
$.ajax({
|
|
|
url: contextPath + "dockerBuild/mirrorAndDeploy",
|
|
|
type: "post",
|
...
|
...
|
|