Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ops
/
monitor-ui
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
zhengyouwei
8 years ago
Commit
8a8af9b973eda89a27d32376e2f942820c5c820a
1 parent
596ab4da
add
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
498 additions
and
0 deletions
monitor-ui-common/src/main/java/com/ui/contants/HttpUriContants.java
monitor-ui-common/src/main/java/com/ui/model/req/ABTest.java
monitor-ui-common/src/main/java/com/ui/model/req/AbTestReq.java
monitor-ui-common/src/main/java/com/ui/model/req/SmsUp.java
monitor-ui-ctrl/src/main/java/com/ui/ctrl/ABTestCtrl.java
monitor-ui-ctrl/src/main/java/com/ui/ctrl/SmsUpctrl.java
monitor-ui-ctrl/src/main/java/com/ui/ctrl/app/AppAspect.java
monitor-ui-web/src/main/resources/META-INF/spring/spring-web-context.xml
monitor-ui-web/src/main/webapp/jsp/abtest/abtest.jsp
monitor-ui-common/src/main/java/com/ui/contants/HttpUriContants.java
View file @
8a8af9b
...
...
@@ -203,4 +203,12 @@ public class HttpUriContants {
public
static
final
String
JAVA_TIME_OUT_INFO_GET
=
"/newJavaApiInfo/queryTimeoutInfoListByApiName"
;
public
static
final
String
JAVA_ERROR_GET
=
"/newJavaApiInfo/queryErrorInfoListByIp"
;
public
static
final
String
JAVA_ERROR_INFO_GET
=
"/newJavaApiInfo/queryErrorInfoListByApiName"
;
//ABtest
public
static
final
String
ABTEST_GET
=
"/abtest/get"
;
public
static
final
String
ABTEST_INSERT
=
"/abtest/insert"
;
public
static
final
String
ABTEST_UPDATE
=
"/abtest/update"
;
public
static
final
String
ABTEST_DELETE
=
"/abtest/delete"
;
}
...
...
monitor-ui-common/src/main/java/com/ui/model/req/ABTest.java
0 → 100644
View file @
8a8af9b
package
com
.
ui
.
model
.
req
;
import
lombok.Data
;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Data
public
class
ABTest
{
private
int
id
;
private
String
name
;
private
String
abType
;
private
String
configType
;
private
String
value
;
private
String
comment
;
private
String
createTime
;
private
String
updateTime
;
}
...
...
monitor-ui-common/src/main/java/com/ui/model/req/AbTestReq.java
0 → 100644
View file @
8a8af9b
package
com
.
ui
.
model
.
req
;
import
lombok.Data
;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Data
public
class
AbTestReq
extends
PageRequest
{
private
String
configType
;
private
String
abType
;
}
...
...
monitor-ui-common/src/main/java/com/ui/model/req/SmsUp.java
0 → 100644
View file @
8a8af9b
package
com
.
ui
.
model
.
req
;
import
lombok.Data
;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Data
public
class
SmsUp
{
private
String
SmsType
;
private
String
SrcMobile
;
private
String
AppendID
;
private
String
Content
;
private
String
RecvTime
;
private
String
SendTime
;
private
String
Status
;
}
...
...
monitor-ui-ctrl/src/main/java/com/ui/ctrl/ABTestCtrl.java
0 → 100644
View file @
8a8af9b
package
com
.
ui
.
ctrl
;
import
com.ui.contants.HttpUriContants
;
import
com.ui.http.HttpRestClient
;
import
com.ui.model.BaseResponse
;
import
com.ui.model.req.ABTest
;
import
com.ui.model.req.AbTestReq
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.servlet.ModelAndView
;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Controller
@RequestMapping
(
"/abtest"
)
public
class
ABTestCtrl
{
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
private
HttpRestClient
httpRestClient
;
@RequestMapping
(
"/toABTets"
)
@ResponseBody
public
ModelAndView
toABTets
()
{
return
new
ModelAndView
(
"abtest/abtest"
);
}
/**
* 新增
* @return
*/
@RequestMapping
(
"/insert"
)
@ResponseBody
public
BaseResponse
insert
(
ABTest
abTest
)
{
BaseResponse
response
=
httpRestClient
.
defaultPost
(
HttpUriContants
.
ABTEST_INSERT
,
abTest
,
BaseResponse
.
class
);
return
response
;
}
/**
* 更新
* @return
*/
@RequestMapping
(
"/update"
)
@ResponseBody
public
BaseResponse
update
(
ABTest
abTest
)
{
BaseResponse
response
=
httpRestClient
.
defaultPost
(
HttpUriContants
.
ABTEST_UPDATE
,
abTest
,
BaseResponse
.
class
);
return
response
;
}
/**
* 删除
* @return
*/
@RequestMapping
(
"/delete"
)
@ResponseBody
public
BaseResponse
<
Integer
>
delete
(
int
id
)
{
BaseResponse
response
=
httpRestClient
.
defaultPost
(
HttpUriContants
.
ABTEST_DELETE
+
"?id="
+
id
,
null
,
BaseResponse
.
class
);
return
response
;
}
/**
* 获取
* @return
*/
@RequestMapping
(
"/get"
)
@ResponseBody
public
BaseResponse
get
(
AbTestReq
abTestReq
)
{
BaseResponse
response
=
httpRestClient
.
defaultPost
(
HttpUriContants
.
ABTEST_GET
,
abTestReq
,
BaseResponse
.
class
);
return
response
;
}
}
...
...
monitor-ui-ctrl/src/main/java/com/ui/ctrl/SmsUpctrl.java
0 → 100644
View file @
8a8af9b
package
com
.
ui
.
ctrl
;
import
com.ui.http.HttpRestClient
;
import
com.ui.model.BaseResponse
;
import
com.ui.model.req.SmsUp
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Controller
public
class
SmsUpctrl
{
public
final
Logger
logger
=
LoggerFactory
.
getLogger
(
getClass
());
@Autowired
private
HttpRestClient
httpRestClient
;
@RequestMapping
(
"/deliverMessage"
)
@ResponseBody
public
boolean
smsup
(
String
SmsType
,
String
SrcMobile
,
String
AppendID
,
String
Content
,
String
RecvTime
,
String
SendTime
,
String
Status
)
{
SmsUp
smsUp
=
new
SmsUp
();
smsUp
.
setAppendID
(
AppendID
);
smsUp
.
setSmsType
(
SmsType
);
smsUp
.
setContent
(
Content
);
smsUp
.
setRecvTime
(
RecvTime
);
smsUp
.
setSendTime
(
SendTime
);
smsUp
.
setStatus
(
Status
);
smsUp
.
setSrcMobile
(
SrcMobile
);
httpRestClient
.
defaultPost
(
"/smsup/smsup"
,
smsUp
,
BaseResponse
.
class
);
return
true
;
}
}
...
...
monitor-ui-ctrl/src/main/java/com/ui/ctrl/app/AppAspect.java
View file @
8a8af9b
...
...
@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.core.annotation.AnnotationUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.lang.reflect.Method
;
import
java.util.Set
;
@Aspect
...
...
monitor-ui-web/src/main/resources/META-INF/spring/spring-web-context.xml
View file @
8a8af9b
...
...
@@ -74,6 +74,7 @@
<mvc:exclude-mapping
path=
"/sql_format/**"
/>
<mvc:exclude-mapping
path=
"/dashboard/**"
/>
<mvc:exclude-mapping
path=
"/app_**/**"
/>
<mvc:exclude-mapping
path=
"/deliverMessage/**"
/>
<bean
class=
"com.ui.interceptor.AuthInterceptor"
/>
</mvc:interceptor>
...
...
monitor-ui-web/src/main/webapp/jsp/abtest/abtest.jsp
0 → 100644
View file @
8a8af9b
<
%@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>
<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"
>
ABType:
</span>
<select
id=
"environment"
name=
"environment"
class=
"form-control"
>
<option
value=
"all"
selected=
"selected"
></option>
<c:forEach
items=
"${environments }"
var=
"envi"
>
<option
value=
"${envi }"
>
${envi }
</option>
</c:forEach>
</select>
</div>
<div
class=
"input-group"
style=
"float: left;"
>
<span
class=
"input-group-addon"
>
项目:
</span>
<select
id=
"currentProject"
name=
"currentProject"
class=
"form-control"
>
<option
value=
"all"
></option>
<c:forEach
items=
"${projects }"
var=
"project"
>
<option
value=
"${project.name }"
>
${project.name }
</option>
</c:forEach>
</select>
</div>
<div
class=
"input-group"
style=
"float: left;"
>
<span
class=
"input-group-addon"
>
状态:
</span>
<select
id=
"currentStatus"
name=
"currentStatus"
class=
"form-control"
>
<option
value=
"0"
></option>
<option
value=
"1"
>
正在进行
</option>
<option
value=
"2"
>
成功
</option>
<option
value=
"3"
>
强制退出
</option>
<option
value=
"4"
>
出错退出
</option>
</select>
</div>
<button
id=
"searchBtn"
class=
"btn btn-primary"
style=
"margin-left: 18px;"
>
搜索
</button>
</div>
<a
href=
"#"
id=
"addHostGroup"
class=
"btn btn-success"
style=
"margin-top: 12px;margin-left: 0px;"
onclick=
"editHostGroup(0,0)"
>
新增标签
</a></div>
</div>
</div>
<div
id=
"hostGroupTable"
>
</div>
</div>
</div>
</div>
<div
class=
"modal fade"
id=
"myModal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"myModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-hidden=
"true"
>
×
</button>
<h4
class=
"modal-title"
id=
"myModalLabel"
></h4>
</div>
<div
class=
"modal-body"
>
<form
id=
"hostGroupForm"
class=
"form-horizontal"
>
<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=
"editGroupName"
name=
"editGroupName"
placeholder=
"输入标签名称"
maxlength=
"30"
size=
"40"
/>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-2 control-label"
>
</label>
<div
class=
"col-sm-8"
id=
"messageAlert"
></div>
</div>
<input
type=
"hidden"
name=
"editGroupId"
/>
</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=
"saveHostGroup()"
>
提交
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
</div>
<script
src=
"<%=basePath %>script/common/genarate_left_panel.js"
></script>
<script
type=
"text/javascript"
>
$
(
"#li_host"
).
addClass
(
"active open"
);
$
(
"#li_hostGroupList"
).
addClass
(
"active"
);
function
localAlert
(
title
,
message
)
{
var
dialog
=
$
(
"<div>"
).
appendTo
(
$
(
"body"
));
dialog
.
dialog
({
title
:
title
,
backdrop
:
"static"
,
content
:
message
,
buttons
:
[{
text
:
"确定"
,
className
:
"btn-danger"
,
onclick
:
function
()
{
$
(
dialog
).
dialog
(
"hide"
);
}
}]
});
}
</script>
</body>
</html>
<script>
$
(
function
()
{
//加载表格
$
(
"#hostGroupTable"
).
table
({
columnAutoWidth
:
false
,
url
:
"getHostGroups"
,
striped
:
true
,
title
:
"标签信息列表"
,
pagination
:
true
,
pageSize
:
10
,
loadFilter
:
function
(
data
)
{
return
defaultLoadFilter
(
data
);
},
columns
:
[{
title
:
"标签名"
,
field
:
"groupName"
,
width
:
"30%"
},
{
title
:
"操作"
,
formatter
:
function
(
value
,
rowData
,
rowIndex
)
{
var
div
=
$
(
"<div>"
);
$
(
"<button onclick=\"editHostGroup(\'"
+
rowData
.
id
+
"\',\'"
+
rowData
.
groupName
+
"\')\">"
).
addClass
(
"btn btn-xs btn-success"
).
html
(
"修改"
).
appendTo
(
div
);
div
.
append
(
" "
);
$
(
"<button onclick=\"deleteHostGroup(\'"
+
rowData
.
id
+
"\')\">"
).
addClass
(
"btn btn-xs btn-danger"
).
html
(
"删除"
).
appendTo
(
div
);
return
div
;
}
}]
});
});
//打开新增或修改页面
function
editHostGroup
(
id
,
groupName
)
{
$
(
"#hostGroupForm #messageAlert"
).
hide
();
if
(
id
==
0
)
{
//新增页面
$
(
"input[name='editGroupId']"
).
val
(
0
);
$
(
"input[name='editGroupName']"
).
val
(
""
);
$
(
"#myModalLabel"
).
text
(
"新增标签信息"
);
}
else
{
$
(
"#myModalLabel"
).
text
(
"修改标签信息"
);
$
(
"input[name='editGroupId']"
).
val
(
id
);
$
(
"input[name='editGroupName']"
).
val
(
groupName
);
}
$
(
"#myModal"
).
modal
(
'show'
);
}
//打开新增或修改页面
function
saveHostGroup
()
{
var
id
=
$
(
"input[name='editGroupId']"
).
val
();
var
groupName
=
$
(
"input[name='editGroupName']"
).
val
();
if
(
groupName
==
null
||
groupName
==
""
)
{
$
(
"#hostGroupForm #messageAlert"
).
alerts
({
content
:
"请输入标签名称!"
,
type
:
"danger"
});
return
;
}
var
param
=
{
id
:
id
,
groupName
:
groupName
}
$
.
ajax
({
type
:
'post'
,
url
:
"saveHostGroup.do"
,
data
:
param
,
dataType
:
'json'
,
success
:
function
(
data
)
{
if
(
!
data
||
data
.
code
!=
200
)
{
localAlert
(
'删除失败'
,
data
.
message
);
}
else
{
$
(
"#myModal"
).
modal
(
'hide'
);
$
(
"#hostGroupTable"
).
table
(
"load"
);
}
},
error
:
function
(
data
)
{
localAlert
(
'系统异常'
,
data
.
message
);
}
});
}
//打开新增或修改页面
function
deleteHostGroup
(
id
)
{
var
dialog
=
$
(
"<div>"
).
appendTo
(
$
(
"body"
));
dialog
.
dialog
({
title
:
"你确定删除吗"
,
backdrop
:
"static"
,
content
:
"你确定要删除该标签信息吗?"
,
buttons
:
[{
text
:
"否"
,
className
:
"btn-danger"
,
onclick
:
function
()
{
$
(
dialog
).
dialog
(
"hide"
);
}
},
{
text
:
"是"
,
className
:
"btn-success"
,
onclick
:
function
()
{
$
(
dialog
).
dialog
(
"hide"
);
$
.
ajax
({
url
:
"deleteHostGroup"
,
type
:
'post'
,
async
:
false
,
data
:
{
id
:
id
},
dataType
:
"json"
,
success
:
function
(
data
)
{
if
(
!
data
||
data
.
code
!=
200
)
{
localAlert
(
'删除失败'
,
data
.
message
);
}
$
(
"#hostGroupTable"
).
table
(
"load"
);
}
});
}
}]
});
}
</script>
\ No newline at end of file
...
...
Please
register
or
login
to post a comment