2018-03-17 17:09:19 +08:00
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<link rel="stylesheet" type="text/css"
href="${ctxStatic}/pages/css/dictInfo.css" />
<script type="text/javascript" src="${ctxStatic}/pages/scripts/dict.js"></script>
<title></title>
<script type="text/javascript">
2018-03-29 18:45:37 +08:00
function selectP(){
2018-03-22 18:22:09 +08:00
$("label[for='specServiceId']").hide();
}
2018-03-21 13:43:43 +08:00
$(document).ready(function() {
$("[data-toogle='tooltip']").tooltip();
$("select[name='ipType']").on("change",function(){
var type=$(this).val();
if(4==type){
2018-03-29 18:45:37 +08:00
$("input[name='srcIpMask']").attr("placeholder","<spring:message code='arbitrary'/> : 0.0.0.0");
$("input[name='dstIpMask']").attr("placeholder","<spring:message code='arbitrary'/> : 0.0.0.0");
$("input[name='srcIpMask']").attr("title","<spring:message code='arbitrary'/> : 0.0.0.0");
$("input[name='dstIpMask']").attr("title","<spring:message code='arbitrary'/> : 0.0.0.0");
2018-03-21 13:43:43 +08:00
}
if(6==type){
2018-03-29 18:45:37 +08:00
$("input[name='srcIpMask']").attr("placeholder","<spring:message code='arbitrary'/> : \"::\"");
$("input[name='dstIpMask']").attr("placeholder","<spring:message code='arbitrary'/> : \"::\"");
$("input[name='srcIpMask']").attr("title","<spring:message code='arbitrary'/> : \"::\"");
$("input[name='dstIpMask']").attr("title","<spring:message code='arbitrary'/> : \"::\"");
2018-03-21 13:43:43 +08:00
}
});
2018-03-29 18:45:37 +08:00
//specServiceId校验,处理校验不能及时显示
2018-03-22 18:22:09 +08:00
jQuery.validator.addMethod("specServiceIdSelected",function(value, element) {
var selectedValue=$(".filter-option").text();
2018-03-29 18:45:37 +08:00
if(selectedValue=="<spring:message code='select' />"){
2018-03-22 18:22:09 +08:00
return false;
}else{
return true;
}
}, "请选择协议名称");
2018-03-17 17:09:19 +08:00
//ip地址校验
jQuery.validator.addMethod("ip",function(value, element) {
2018-03-22 18:22:09 +08:00
if(value.length==0||value.trim().length==0){return true;}
2018-03-21 13:43:43 +08:00
var typeInt=$("select[name='ipType']").val();
if(typeInt==4){
return this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256));
}else if(typeInt==6){
return this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))(%.+)?\s*$/.test(value);
}}, "请填写正确的IP地址");
//ip地址掩码校验
jQuery.validator.addMethod("ipMask",function(value, element) {
2018-03-22 18:22:09 +08:00
if(value.length==0||value.trim().length==0){return true;}
2018-03-21 13:43:43 +08:00
obj=value;
var typeInt=$("select[name='ipType']").val();
if(typeInt==4){
if(obj=="255.255.255.255"){
return true;
}else{
var exp=/^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;
var reg = obj.match(exp);
if(reg==null){return false;}else{return true}
}
}else if(typeInt==6){
if(obj=="FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"||obj==0||obj=="::"){
return true;
}else{return (obj > 0) && ((obj & (obj - 1)) == 0)};
}
}, "请填写正确的IP地址掩码");
2018-03-23 11:32:36 +08:00
//掩码校验, 超过两位不得以0开头
jQuery.validator.addMethod("notStartZero",function(value, element) {
2018-03-29 18:45:37 +08:00
if(value.length>1&value.length<6){
2018-03-23 11:32:36 +08:00
var str = value.substr(0,1);
if(str == '0'){
return false;
}
}
2018-03-29 18:45:37 +08:00
return true;
}, "请填写正确的数值");
2018-03-17 17:09:19 +08:00
$("#name").focus();
$("#inputForm")
.validate(
{
rules : {
2018-03-21 13:43:43 +08:00
specServiceId:{
2018-03-22 18:22:09 +08:00
specServiceIdSelected:true
},
protocol:{
required:true
},
ipType:{
required:true
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcIp:{
2018-03-17 17:09:19 +08:00
ip:true
},
2018-03-21 13:43:43 +08:00
dstIp:{
2018-03-17 17:09:19 +08:00
ip:true
},
2018-03-21 13:43:43 +08:00
srcIpMask:{
ipMask:true
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstIpMask:{
ipMask:true
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcPort:{
2018-03-17 17:09:19 +08:00
required:true,
digits:true,
max: 65535,
2018-03-29 18:45:37 +08:00
min: 0,
notStartZero:true
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstPort:{
2018-03-17 17:09:19 +08:00
required:true,
digits:true,
max: 65535,
2018-03-29 18:45:37 +08:00
min: 0,
notStartZero:true
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcPortMask:{
2018-03-17 17:09:19 +08:00
digits:true,
max: 65535,
2018-03-29 18:45:37 +08:00
min: 0,
notStartZero:true
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstPortMask:{
2018-03-17 17:09:19 +08:00
digits:true,
max: 65535,
2018-03-29 18:45:37 +08:00
min: 0,
notStartZero:true
2018-03-17 17:09:19 +08:00
}
},
messages : {
2018-03-21 13:43:43 +08:00
specServiceId:{
2018-03-22 18:22:09 +08:00
specServiceIdSelected:'<spring:message code="required"/>'
},
protocol:{
required:'<spring:message code="required"/>'
},
ipType:{
required:'<spring:message code="required"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcIp:{
2018-03-29 18:45:37 +08:00
ip:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstIp:{
2018-03-29 18:45:37 +08:00
ip:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcIpMask:{
2018-03-29 18:45:37 +08:00
ipMask:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstIpMask:{
2018-03-29 18:45:37 +08:00
ipMask:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcPort:{
2018-03-17 17:09:19 +08:00
required:'<spring:message code="required"/>',
2018-03-29 18:45:37 +08:00
digits:'<spring:message code="input_integer"/>',
max: '<spring:message code="max_value"/> 65535',
min: '<spring:message code="min_value"/>0',
notStartZero:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstPort:{
2018-03-17 17:09:19 +08:00
required:'<spring:message code="required"/>',
2018-03-29 18:45:37 +08:00
digits:'<spring:message code="input_integer"/>',
max: '<spring:message code="max_value"/> 65535',
min: '<spring:message code="min_value"/>0',
notStartZero:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
srcPortMask:{
2018-03-29 18:45:37 +08:00
digits:'<spring:message code="input_integer"/>',
max: '<spring:message code="max_value"/> 65535',
min: '<spring:message code="min_value"/>0',
notStartZero:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
},
2018-03-21 13:43:43 +08:00
dstPortMask:{
2018-03-29 18:45:37 +08:00
digits:'<spring:message code="input_integer"/>',
max: '<spring:message code="max_value"/> 65535',
min: '<spring:message code="min_value"/>0',
notStartZero:'<spring:message code="enter_error"/>'
2018-03-17 17:09:19 +08:00
}
},
submitHandler : function(form) {
if (!validateItem()) {
return false;
}
loading('正在提交,请稍等...');
form.submit();
},
errorContainer : "#messageBox",
errorPlacement : function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")
|| element.is(":radio")
|| element.parent().is(
".input-append")) {
error.appendTo(element.parent()
.parent());
} else {
error.insertAfter(element);
}
}
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default"
onclick="history.go(-1)">
<spring:message code="back" />
</button>
</div>
<h3 class="page-title">
2018-03-21 13:43:43 +08:00
<spring:message code="agreement_ip_configuration" />
2018-03-17 17:09:19 +08:00
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
2018-03-31 17:23:11 +08:00
<c:if test="${not empty specificServiceHostCfg.hostId}"><spring:message code='edit'/></c:if><c:if test="${empty specificServiceHostCfg.hostId}"><spring:message code='add'/></c:if></div>
2018-03-17 17:09:19 +08:00
</div>
<div class="tools"></div>
</div>
<div class="portlet-body form">
<div class="form-body">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="specificServiceHostCfg" action="${ctx}/specific/specificServiceHostCfg/saveOrUpdate" method="post" class="form-horizontal" >
<form:hidden path="hostId" class="form-control" />
<sys:message content="${message}" />
<div class="row">
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='protocol_name' />:</label>
<c:set var="spec_service_id"><spring:message code='select' /></c:set>
<form:select path="specServiceId" class="selectpicker select2 col-md-6" title="${spec_service_id}" data-live-search="true" data-live-search-placeholder="search" onchange="selectP()">
2018-03-22 18:22:09 +08:00
<c:forEach items="${listSpecService}" var="specService" >
<form:option value="${specService.specServiceId}">${specService.specServiceName}</form:option>
</c:forEach>
</form:select>
<!-- <label class="col-md-3 control-label dfdf" > </label>
<div class="col-md-6 dfdf">
<label class="error">不能为空!</label>
</div> -->
2018-03-17 17:09:19 +08:00
</div>
2018-03-22 18:22:09 +08:00
2018-03-17 17:09:19 +08:00
</div>
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='direction' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-22 18:22:09 +08:00
<form:select path="direction" class="select2 form-control" >
2018-03-29 18:45:37 +08:00
<form:option value=""><spring:message code='select' /></form:option>
2018-03-17 17:09:19 +08:00
<c:forEach items="${fns:getDictList('SPEC_DIRECTION')}" var="dict">
2018-03-29 18:45:37 +08:00
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}' /></form:option>
2018-03-17 17:09:19 +08:00
</c:forEach>
</form:select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='protocol' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-22 18:22:09 +08:00
<form:select path="protocol" class="select2 form-control" >
2018-03-29 18:45:37 +08:00
<form:option value=""><spring:message code='select' /></form:option>
2018-03-17 17:09:19 +08:00
<c:forEach items="${fns:getDictList('SPEC_PROTOCOL')}" var="dict">
2018-03-29 18:45:37 +08:00
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}' /></form:option>
2018-03-17 17:09:19 +08:00
</c:forEach>
</form:select>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='ip_type' />:</label>
2018-03-21 13:43:43 +08:00
<div class="col-md-6">
2018-03-22 18:22:09 +08:00
<form:select path="ipType" class="select2 form-control" >
2018-03-29 18:45:37 +08:00
<form:option value=""><spring:message code='select' /></form:option>
2018-03-21 13:43:43 +08:00
<c:forEach items="${fns:getDictList('SPEC_IP_TYPE')}" var="dict">
2018-03-29 18:45:37 +08:00
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}' /></form:option>
2018-03-21 13:43:43 +08:00
</c:forEach>
</form:select>
</div>
<div class="col-md-6" style="display:none;">
<input name="isAudit" value="1"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
</div>
2018-03-29 18:45:37 +08:00
<c:set var="arbitraryValue"><spring:message code='arbitrary'/> : 0.0.0.0</c:set>
<c:set var="arbitraryPort"><spring:message code='arbitrary'/> : 0</c:set>
2018-03-17 17:09:19 +08:00
<div class="row">
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='client_ip' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="srcIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryValue}" placeholder="${arbitraryValue}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='server_ip' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="dstIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryValue}" placeholder="${arbitraryValue}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='client_address_mask' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="srcIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" title="${arbitraryValue}" data-placement="top" placeholder="${arbitraryValue}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='server_address_mask' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="dstIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryValue}" placeholder="${arbitraryValue}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='client_port' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="srcPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='server_port' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="dstPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='client_port_mask' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="srcPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
2018-03-29 18:45:37 +08:00
<label class="col-md-3 control-label"><spring:message code='server_port_mask' />:</label>
2018-03-17 17:09:19 +08:00
<div class="col-md-6">
2018-03-29 18:45:37 +08:00
<form:input path="dstPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
2018-03-17 17:09:19 +08:00
</div>
</div>
</div>
</div>
<%-- <div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>创建人员:</label>
<div class="col-md-6">
<form:input path="creator.id" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>配置时间:</label>
<div class="col-md-6">
<form:input path="createTime" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>修改人员:</label>
<div class="col-md-6">
<form:input path="editor.id" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>修改时间:</label>
<div class="col-md-6">
<form:input path="editTime" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>审核人员:</label>
<div class="col-md-6">
<form:input path="auditor.id" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>审核时间:</label>
<div class="col-md-6">
<form:input path="auditTime" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
</div> --%>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
2018-03-28 18:24:09 +08:00
<shiro:hasPermission name="specific:serviceIp:edit"><button type="submit" class="btn btn-circle blue"><spring:message code="submit" /></button></shiro:hasPermission>
2018-03-17 17:09:19 +08:00
<button type="button" class="btn btn-circle grey-salsa btn-outline" onclick="history.go(-1)"> <spring:message code="cancel" /></button>
</div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>