Authored by qinchao

工单处理:支持node类型

... ... @@ -35,7 +35,34 @@ public class NodeBuildCtrl {
private String URL = "http://172.31.16.167:8883/node/";
@RequestMapping("/toProject")
public ModelAndView toProject(Model model) {
public ModelAndView toProject(Model model,String workJobId) {
if(StringUtils.isNotBlank(workJobId)){
BaseResponse response = httpRestClient.defaultGet(HttpUriContants.GET_RELEASEWORKJOB_ID + "?id=" + workJobId, BaseResponse.class);
if(response!=null&&response.getCode()==200&&response.getData()!=null){
Map map=(Map)response.getData();
String releaseWorkJob_environment=(String)(map.get("environment")==null?"":map.get("environment"));
if(releaseWorkJob_environment!=null&&releaseWorkJob_environment.length()>0&&!releaseWorkJob_environment.endsWith(",")){
releaseWorkJob_environment+=",";
}
String releaseWorkJob_project = map.get("project")==null?"":(String)map.get("project");
if(releaseWorkJob_project!=null&&releaseWorkJob_project.length()>0&&!releaseWorkJob_project.endsWith(",")){
releaseWorkJob_project += ",";
}
int releaseWorkJob_nodeProjectCount=0;
for(String tmp:releaseWorkJob_project.split(",")){
if(tmp!=null&&tmp.length()>0){
releaseWorkJob_nodeProjectCount++;
}
}
model.addAttribute("releaseWorkJob_nodeProjectCount", releaseWorkJob_nodeProjectCount);
model.addAttribute("releaseWorkJob_environment", releaseWorkJob_environment);
model.addAttribute("releaseWorkJob_branch", map.get("branch")==null?"":(String)map.get("branch"));
model.addAttribute("releaseWorkJob_project",releaseWorkJob_project);
model.addAttribute("releaseWorkJob_id", workJobId);
}
}
return new ModelAndView("project/node_project");
}
... ...
... ... @@ -59,12 +59,13 @@ public class ProjectBuildCtrl {
int releaseWorkJob_enviCount=0;
if(releaseWorkJob_environment!=null&&releaseWorkJob_environment.length()>0&&!releaseWorkJob_environment.endsWith(",")){
releaseWorkJob_environment+=",";
for(String tmp:releaseWorkJob_environment.split(",")){
if(tmp!=null&&tmp.length()>0){
releaseWorkJob_enviCount++;
}
}
for(String tmp:releaseWorkJob_environment.split(",")){
if(tmp!=null&&tmp.length()>0){
releaseWorkJob_enviCount++;
}
}
String releaseWorkJob_project = map.get("project")==null?"":(String)map.get("project");
if(releaseWorkJob_project!=null&&releaseWorkJob_project.length()>0&&!releaseWorkJob_project.endsWith(",")){
releaseWorkJob_project += ",";
... ...
... ... @@ -76,6 +76,7 @@
<label class="col-sm-1 control-label">Branch输入</label>
<div class="col-sm-8">
<input name="branch" type="text" class="form-control"
value="${releaseWorkJob_branch}"
style="width: 300px"/>
</div>
</div>
... ... @@ -84,6 +85,7 @@
<label class="col-sm-1 control-label">关联工单</label>
<div class="col-sm-8">
<input name="workid" type="text" class="form-control"
value="${releaseWorkJob_id}"
style="width: 300px"/>
</div>
</div>
... ... @@ -171,13 +173,21 @@
</div>
</div>
</body>
<script type="text/javascript">
var default_releaseWorkJob_branch="${releaseWorkJob_branch}";
var default_releaseWorkJob_project="${releaseWorkJob_project}";
var default_releaseWorkJob_nodeProjectCount = "${releaseWorkJob_nodeProjectCount}";
var default_releaseWorkJob_environment="${releaseWorkJob_environment}";
</script>
<script src="<%=basePath%>js/jquery-2.1.4.min.js"></script>
<script src="<%=basePath%>js/bootstrap.min.js"></script>
<script src="<%=basePath%>js/select2.min.js"></script>
<script src="<%=basePath%>js/custom.js"></script>
<script src="<%=basePath%>script/build/node_project.js"></script>
<script src="<%=basePath%>script/build/node_project.js?v=20171123"></script>
<script src="<%=basePath %>/js/unicorn.js"></script>
<script src="<%=basePath %>script/common/genarate_left_panel.js"></script>
<script type="text/javascript">
$("#li_project").addClass("active open");
$("#li_nodeRelease").addClass("active");
... ...
... ... @@ -188,11 +188,14 @@
* 新打开一个窗口,然后发布工单
*/
function openReaseWorkJob(){
$("#btn_release").removeAttr("disabled");
var platform="${workJob.platform}";
var workJobId="${workJob.id}";
if("JAVA"==platform){
$("#btn_release").removeAttr("disabled");
window.open(contextPath+"project/toProject?workJobId="+workJobId);
}else if("NODE"==platform){
$("#btn_release").removeAttr("disabled");
window.open(contextPath+"nodeBuild/toProject?workJobId="+workJobId);
}else{
alert("暂时不支持跳转:"+platform);
}
... ...
... ... @@ -32,7 +32,7 @@ function operateChange() {
* 根据操作获取当前的项目列表
*/
function getProjects() {
var operate = $("input[name='operate']:checked").val();
//var operate = $("input[name='operate']:checked").val();
$.ajax({
url: 'getProjects',
... ... @@ -46,10 +46,18 @@ function getProjects() {
var order1num = 1;
var order2num = 1;
var firstNodeName="";
for (var i = 0; i < obj.length; i++) {
var order = obj[i].order;
var name = obj[i].name;
if(default_releaseWorkJob_project!=null&&default_releaseWorkJob_project.indexOf(name+",")>=0){
if(firstNodeName.length<=0){
firstNodeName=name;
}
}
if ("1" == order) {
order1HTML += "<div class='rdio rdio-primary' style='display: inline'>";
order1HTML += " <input name='project' type='radio' id='" + name + "' value='" + name + "' onclick='changeProject()'/>";
... ... @@ -71,6 +79,14 @@ function getProjects() {
}
document.getElementById("project-div").innerHTML = order1HTML + "<hr>" + order2HTML + "<hr>";
}
if(default_releaseWorkJob_nodeProjectCount!=null&&default_releaseWorkJob_nodeProjectCount>=2){
alert("提醒:工单的发布项目为"+default_releaseWorkJob_project+"当前只选中一个!");
}
if(firstNodeName!=null&&firstNodeName.length>0){
//选中一个,并触发事件
$("input:radio[name='project'][value='" + firstNodeName + "']").attr("checked", "checked").click();
}
},
error: function (e) {
alert("从后台获取数据出错");
... ... @@ -206,7 +222,15 @@ function changeProject(){
redio.attr("id",env.name);
redio.attr("value",env.name);
redio.attr("onclick","changeservers()");
redio.attr("checked","checked");
//如果是新打开发布页面,则默认选中最后一个云,如果是通过工单ID,则选择该工单的云
if(default_releaseWorkJob_environment!=null&&default_releaseWorkJob_environment.length>0){
if(default_releaseWorkJob_environment.indexOf(env.name+",")>=0){
redio.attr("checked","checked");
}
}else{
redio.attr("checked","checked");
}
var label = $("<label for=\""+env.name+"\">"+env.name+"</label>");
... ...