Authored by jack

add newom

package com.ui.model.req;
import lombok.Data;
/**
* Created by yoho on 2016/9/8.
*
* for om build
*/
@Data
public class ProjectBuildInfoReq {
private String project;
private String location;
}
... ...
package com.ui.model.req;
import lombok.Data;
@Data
public class ProjectInfoReq extends PageRequest {
private int id = -1;
private String type;
private String name;
private String sourceUrl;
private String sourceUser;
private String sourcePwd;
private String sourceBranch;
private String sourceId;
private int sourceOrder;
private String sourceGroup;
private String destHost;
private String destPath;
private String destUser;
private String destPwd;
private String destLocation;
}
... ...
... ... @@ -4,9 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.req.BuildRequest;
import com.ui.model.req.HostInfoReq;
import com.ui.model.req.ProjectBuildReq;
import com.ui.model.req.*;
import com.ui.project.ProjectEnvironment;
import com.ui.project.ProjectOnline;
import org.slf4j.Logger;
... ... @@ -24,7 +22,7 @@ import java.util.Map;
/**
* Created by fruwei on 2016/6/16.
*/
@Controller
@RestController
@RequestMapping("project")
public class ProjectBuildCtrl {
Logger log = LoggerFactory.getLogger(ProjectBuildCtrl.class);
... ... @@ -34,25 +32,30 @@ public class ProjectBuildCtrl {
@RequestMapping("/toOm")
public ModelAndView toOm() {
return new ModelAndView("project/om");
return new ModelAndView("project/om");
}
@RequestMapping("/toNewOm")
public ModelAndView toOmNew() {
return new ModelAndView("project/newOm");
}
@RequestMapping("/toNode")
public ModelAndView toNode() {
return new ModelAndView("project/node");
return new ModelAndView("project/node");
}
@RequestMapping("/toProject")
public ModelAndView toProject(Model model) {
model.addAttribute("environments", ProjectEnvironment.getEnviroments());
return new ModelAndView("project/project");
return new ModelAndView("project/project");
}
@RequestMapping("/toHistory")
public ModelAndView toHistory(Model model) {
model.addAttribute("environments", ProjectEnvironment.getEnviroments());
model.addAttribute("projects", ProjectOnline.getProjectList());
return new ModelAndView("project/history");
return new ModelAndView("project/history");
}
/**
... ... @@ -112,7 +115,7 @@ public class ProjectBuildCtrl {
*/
@RequestMapping(value = "build", method = RequestMethod.POST)
@ResponseBody
public String build(@RequestBody BuildRequest request,HttpSession session) {
public String build(@RequestBody BuildRequest request, HttpSession session) {
try {
String user = String.valueOf(session.getAttribute("user"));
request.setUser(user);
... ... @@ -170,13 +173,43 @@ public class ProjectBuildCtrl {
@RequestMapping("/getHistory")
@ResponseBody
public BaseResponse getHistory(ProjectBuildReq req) throws Exception {
if("all".equals(req.getEnvironment())){
if ("all".equals(req.getEnvironment())) {
req.setEnvironment(null);
}
if("all".equals(req.getCurrentProject())){
if ("all".equals(req.getCurrentProject())) {
req.setCurrentProject(null);
}
BaseResponse response=httpRestClient.defaultPost("/projectBuild/getHistory", req, BaseResponse.class);
BaseResponse response = httpRestClient.defaultPost("/projectBuild/getHistory", req, BaseResponse.class);
return response;
}
@RequestMapping("/newOm/query")
public BaseResponse queryProjects(ProjectInfoReq req) {
BaseResponse response = httpRestClient.defaultPost("/projectManager/query", req, BaseResponse.class);
return response;
}
@RequestMapping("/newOm/save")
public BaseResponse addProject(ProjectInfoReq req) {
BaseResponse response = httpRestClient.defaultPost("/projectManager/add", req, BaseResponse.class);
return response;
}
@RequestMapping("/newOm/del")
public BaseResponse delProject(ProjectInfoReq req) {
BaseResponse response = httpRestClient.defaultPost("/projectManager/del", req, BaseResponse.class);
return response;
}
@RequestMapping("/newOm/build")
public BaseResponse buildOmProject(ProjectBuildInfoReq req) {
BaseResponse response = httpRestClient.defaultPost("/projectManager/build", req, BaseResponse.class);
return response;
}
... ...
<%@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 lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="<%=basePath %>css/unicorn.main.css"/>
<link rel="stylesheet" href="<%=basePath %>css/unicorn.grey.css"/>
<link rel="stylesheet" href="<%=basePath %>css/bootstrap.min.css"/>
<link href="<%=basePath%>css/style.default.css" rel="stylesheet">
<link href="<%=basePath%>css/morris.css" rel="stylesheet">
<link href="<%=basePath%>css/select2.css" rel="stylesheet"/>
<link rel="stylesheet" href="<%=basePath %>css/bootstrap.min.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/bootstrap-responsive.min.css"/>
<link rel="stylesheet" href="<%=basePath %>css/uniform.css"/>
<link rel="stylesheet" href="<%=basePath %>css/select2.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>
</head>
<body style="background-color: #444444;font-size: 14px">
<!-- 头部 -->
<div id="head">
</div>
<div class="container-fluid">
<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>
<!-- query panel -->
<form class="form-bordered">
<div class="form-group">
<label class="col-sm-1 control-label">操作选择</label>
<div class="col-sm-8">
<div class="rdio rdio-default">
<input type="radio" name="operate" id="operatedeploy" value="Deploy" checked="checked"
onclick="operateChange()"/>
<label for="operatedeploy">发布</label>
</div>
<%-- <div class="rdio rdio-default">
<input type="radio" name="operate" value="Rollback" id="operateback"
onclick="operateChange()"/>
<label for="operateback">回滚</label>
</div>--%>
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">项目选择</label>
<div class="form-inline">
<div class="form-group" style="margin-left: 40%">
<input type="text" class="form-control" id="search_name" name="search_name"
placeholder="搜索名称" style="width: 40%;"/>
</div>
<button type="button" id="search_btn" onclick="searchProject()" class="btn btn-warning"
style="margin-left: -8%">search
</button>
<button type="button" id="add_btn" onclick="editProject(0)" class="btn btn-warning">添加
</button>
</div>
<div class="col-sm-8">
<div id="project_table" style="margin: auto; width: auto; height: auto">
</div>
</div>
</div>
<div class="form-group" id="rollback-div" style="display: none">
<label class="col-sm-1 control-label">回滚版本选择</label>
<div class="col-sm-8" id="select-rollbackList-div">
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">确认操作</label>
<div class="col-sm-8">
<button type="button" id="submit-btn" onclick="om_project_build()" class="btn btn-primary">提交
</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-1 control-label">操作提示</label>
<div class="col-sm-8">
<div class="alert alert-warning" id="task-info-div">
</div>
<div id="show-project-div">
</div>
</div>
</div>
</form>
</div>
<!-- query panel -->
&nbsp; &nbsp; &nbsp; &nbsp;
<textarea id="resultArea" rows="30" cols="120"
style="background-color: black; color: white" readonly="readonly"></textarea>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true"
style="height: 500px;overflow :auto">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel"></h4>
</div>
<div class="modal-body">
<form id="projectForm" class="form-horizontal">
<input type="hidden" name="id">
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>
项目名称:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="p_name" name="p_name"
placeholder="项目名称" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>项目类型:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="p_type" name="p_type"
placeholder="项目类型" size="40" readonly="readonly" value="php"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>源码地址:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_url" name="s_url"
placeholder="代码地址" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>源码账号:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_user" name="s_user"
placeholder="代码下载账号" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>源码密码:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_pwd" name="s_pwd"
placeholder="代码下载密码" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>源码分支:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_branch" name="s_branch"
placeholder="代码下载分支" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>源码Id:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_id" name="s_id"
placeholder="代码管理ID" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>分布优先级:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_order" name="s_order"
placeholder="数字越大,发布优先级越高" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>源码管理组:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="s_group" name="s_group"
placeholder="代码线上分组" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>项目发布地址:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="d_host" name="d_host"
placeholder="发布机Ip地址,逗号分隔" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>项目发布路径:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="d_path" name="d_path"
placeholder="发布机安装绝对路径" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>项目运行账号:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="d_user" name="d_user"
placeholder="项目运行用户" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>项目运行密码:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="d_pwd" name="d_pwd"
placeholder="项目运行用户密码" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>发布环境所属:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="d_location" name="d_location"
placeholder="aws/cloud/gray" size="40"/>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-success" value="Validate" onclick="save_project()">提交
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
</div>
<!-- 初始化确认页面 -->
<div class="modal fade" id="confirmModal" tabindex="-1" role="dialog" aria-labelledby="confirmSubmitLabel"
aria-hidden="true" style="padding-top: 10%">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h2 class="modal-title" id="confirmSubmitLabel">
<span style="font-weight: bold;"> 确认提交</span>
</h2>
</div>
<div class="modal-body">
<form class="bs-example bs-example-form" action="<%=path %>/createBranch.do" role="form"
id="GitBranchCreateForm">
<div class="input-group">
<span class="input-group-addon">操作类型</span>
<input type="text" name="operate_name" class="form-control" readonly="readonly">
</div>
<br>
<div class="input-group">
<span class="input-group-addon">发布环境</span>
<input type="text" name="environment_name" class="form-control" readonly="readonly">
</div>
<br>
<div class="input-group">
<span class="input-group-addon">工程名称</span>
<input type="text" name="project_name" class="form-control" readonly="readonly">
</div>
<br>
<div class="input-group">
<span class="input-group-addon">分支名称</span>
<input type="text" name="branch_name" class="form-control" readonly="readonly">
</div>
<br>
<%-- <div class="input-group">
<span class="input-group-addon">回滚文件</span>
<input type="text" name="rollbackfile_name" class="form-control" readonly="readonly">
</div>--%>
</form>
</div>
<div class="modal-footer">
<button type="button" id="confirm_btn" class="btn btn-primary" onclick="om_project_confrim();">
确认
</button>
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="<%=basePath %>script/common/genarate_left_panel.js"></script>
<script type="text/javascript">
$("#li_project").addClass("active open");
$("#li_om_new").addClass("active");
</script>
<script language="JavaScript">
$(function () {
$("#project_table").table({
url: contextPath + "project/newOm/query",
method: "POST",
queryParams: {
type: "php"
},
striped: true,
panelClass: "panel-success",
pagination: true,
pageSize: 10,
loadFilter: function (data) {
console.log(data)
return defaultLoadFilter(data);
},
columns: [
{
title: "选择",
width: "5%",
formatter: function (value, rowData) {
var checkBox = $("<input type='checkbox' name='p_checkbox' value='" + rowData.id + "' >");
return checkBox;
}
}
, {
title: "名称",
field: "name"
}, {
title: "类型",
field: "type"
},
{
title: "区域",
field: "destLocation"
}, {
title: "源",
field: "sourceUrl"
}, {
title: "分支",
field: "sourceBranch"
}, {
title: "操作",
formatter: function (value, rowData, rowIndex) {
var div = $("<div>");
//修改
var editBtn = $("<button data-target='#updateModal' data-toggle='modal'>").addClass("btn btn-xs btn-warning").html("修改").appendTo(div);
editBtn.click(function () {
editProject(rowData);
});
div.append("&nbsp;");
div.append("&nbsp;");
div.append("&nbsp;");
//删除
var deleBtn = $("<button data-target='#deleteModal' data-toggle='modal'>").addClass("btn btn-xs btn-danger").html("删除").appendTo(div);
deleBtn.click(function () {
deleteProject(rowData);
}
);
return div;
}
}],
/* data: data*/
});
});
function om_project_build() {
check_val = [];
$(":checkbox:checked").each(function () {
if (this.value != '') {
check_val.push(this.value);
}
});
var checkValue = eval(check_val);
$.ajax({
url: contextPath + "project/newOm/query",
type: 'post',
data: {
id: checkValue[0]
},
async: false,
dataType: "json",
success: function (data) {
var projectModel = data.data;
$("input[name='operate_name']").val("发布");
$("input[name='environment_name']").val(projectModel.destLocation);
$("input[name='project_name']").val(projectModel.name);
$("input[name='branch_name']").val(projectModel.sourceBranch);
}
});
$("#confirmSubmitLabel").text("确认发布信息");
$("#confirmModal").modal('show');
var textArea=document.getElementById("resultArea");
textArea.innerText="";
}
function om_project_confrim() {
$("#confirmModal").modal('hide');
var btn = document.getElementById("confirm_btn");
btn.disabled = true;
var project = $("input[name='project_name']").val();
var location = $("input[name='environment_name']").val();
$.ajax({
url: contextPath + "project/newOm/build",
type: 'post',
data: {
project: project,
location: location
},
async: false,
dataType: "json",
success: function (data) {
var textArea=document.getElementById("resultArea");
textArea.innerText=data.data;
btn.disabled = false;
},
error: function (data) {
var textArea=document.getElementById("resultArea");
textArea.innerText=data.message;
localAlert('系统异常', data.message);
btn.disabled = false;
}
});
}
function searchProject() {
var name = $("input[name='search_name']").val();
$("#project_table").table("load", {
'type': "php",
'name': name
});
}
//打开新增或修改页面
function editProject(data) {
$("#projectForm #messageAlert").hide();
if (data == 0) {//新增页面
$("input[name='id']").val(0);
$("input[name='p_name']").val("");
$("input[name='p_type']").val("php");
$("input[name='s_url']").val("");
$("input[name='s_user']").val("");
$("input[name='s_branch']").val("");
$("input[name='s_id']").val("");
$("input[name='s_order']").val("");
$("input[name='s_group']").val("");
$("input[name='d_host']").val("");
$("input[name='d_path']").val("");
$("input[name='d_user']").val("");
$("input[name='d_pwd']").val("");
$("input[name='d_location']").val("");
$("#myModalLabel").text("新增发布项目");
} else {
$.ajax({
url: contextPath + "project/newOm/query",
type: 'post',
data: {
id: data.id
},
async: false,
dataType: "json",
success: function (data) {
var projectModel = data.data;
$("input[name='id']").val(projectModel.id);
$("input[name='p_name']").val(projectModel.name);
$("input[name='p_type']").val("php");
$("input[name='s_url']").val(projectModel.sourceUrl);
$("input[name='s_user']").val(projectModel.sourceUser);
$("input[name='s_pwd']").val(projectModel.sourcePwd);
$("input[name='s_branch']").val(projectModel.sourceBranch);
$("input[name='s_id']").val(projectModel.sourceId);
$("input[name='s_order']").val(projectModel.sourceOrder);
$("input[name='s_group']").val(projectModel.sourceGroup);
$("input[name='d_host']").val(projectModel.destHost);
$("input[name='d_path']").val(projectModel.destPath);
$("input[name='d_user']").val(projectModel.destUser);
$("input[name='d_pwd']").val(projectModel.destPwd);
$("input[name='d_location']").val(projectModel.destLocation);
}
});
$("#myModalLabel").text("修改发布项目");
}
$("#myModal").modal('show');
}
function save_project() {
var id = $("input[name='id']").val();
var p_name = $("input[name='p_name']").val();
var p_type = $("input[name='p_type']").val();
var s_url = $("input[name='s_url']").val();
var s_user = $("input[name='s_user']").val();
var s_pwd = $("input[name='s_pwd']").val();
var s_branch = $("input[name='s_branch']").val();
var s_id = $("input[name='s_id']").val();
var s_order = $("input[name='s_order']").val();
var s_group = $("input[name='s_group']").val();
var d_host = $("input[name='d_host']").val();
var d_path = $("input[name='d_path']").val();
var d_user = $("input[name='d_user']").val();
var d_pwd = $("input[name='d_pwd']").val();
var d_location = $("input[name='d_location']").val();
$.ajax({
url: contextPath + "project/newOm/save",
type: 'post',
async: false,
data: {
id: id,
type: p_type,
name: p_name,
sourceUrl: s_url,
sourceUser: s_user,
sourcePwd: s_pwd,
sourceBranch: s_branch,
sourceId: s_id,
sourceOrder: s_order,
sourceGroup: s_group,
destHost: d_host,
destPath: d_path,
destUser: d_user,
destPwd: d_pwd,
destLocation: d_location
},
dataType: "json",
success: function (data) {
if (!data || data.code != 200) {
localAlert('请求错误', data.message);
return;
} else {
$("#myModal").modal('hide');
$("#project_table").table("load");
}
},
error: function (data) {
localAlert('系统异常', data.message);
}
});
}
function deleteProject(data) {
$.ajax({
url: contextPath + "project/newOm/del",
type: 'post',
async: false,
data: {
id: data.id,
},
dataType: "json",
success: function (data) {
if (!data || data.code != 200) {
localAlert('请求错误', data.message);
return;
} else {
$("#project_table").table("load");
}
},
error: function (data) {
localAlert('系统异常', data.message);
}
});
}
</script>
</body>
</html>
... ...
... ... @@ -53,6 +53,7 @@ innerHTML += "</ul></li>";
innerHTML += "<li class='submenu' id='li_project'><a id='li_project_a' href='#'><i class='icon icon-th-list'></i> <span>项目发布</span><span class='label'>4</span></a><ul>";
innerHTML += "<li id='li_projectRelease'><a id='li_projectRelease_a' href=''><i class='icon icon-th'></i> <span>项目发布</span></a></li>";
innerHTML += "<li id='li_om'><a id='li_om_a' href=''><i class='icon icon-th'></i> <span>OM发布</span></a></li>";
innerHTML += "<li id='li_om_new'><a id='li_om_new_a' href=''><i class='icon icon-th'></i> <span>OM_New发布</span></a></li>";
innerHTML += "<li id='li_node'><a id='li_node_a' href=''><i class='icon icon-th'></i> <span>NODE发布</span></a></li>";
innerHTML += "<li id='li_projectHistory'><a id='li_projectHistory_a' href=''><i class='icon icon-th'></i> <span>历史记录</span></a></li>";
innerHTML += "</ul></li>";
... ... @@ -111,6 +112,8 @@ document.getElementById("li_pendingWork_a").setAttribute("href", path + "/workSy
document.getElementById("li_handledWork_a").setAttribute("href", path + "/workSystem/toHandledWork");
document.getElementById("li_works_a").setAttribute("href", path + "/workSystem/toWorkList");
document.getElementById("li_aws_ebs_a").setAttribute("href", path + "/aws/toEbsManager");
document.getElementById("li_om_new_a").setAttribute("href", path + "/project/toNewOm");
function getUrlBasePath() {
... ...