asn 相关修改提交

(1)asn_ip_cfg增加四列
(2)新增asn_group_info表
(3)asn ip菜单移动到policy object下,新增审核审计菜单
(4)asn ip导入修改,适应新的需求放弃了使用AsnCache,直接从数据库查
(5)asn ip加入审核流程
(6)Packet IP选择asn时,改为选中一个组织,审核下发的配置为as号字符串域
(7)asn ip 新增业务新增function_service_dict字典,serviceId为400
This commit is contained in:
wangxin
2019-01-04 18:28:57 +06:00
parent 429b1841f1
commit 85507b5a55
44 changed files with 2596 additions and 767 deletions

View File

@@ -195,7 +195,6 @@
</div>
</br>
</c:if>
<c:if test="${cfg.functionId eq 5 or cfg.functionId eq 34 or cfg.functionId eq 6}">
<div class="row">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="examine"/></label>
<div class="col-md-6">
@@ -208,7 +207,6 @@
</div>
</div>
</br>
</c:if>
<div class="col-md-12 fileSelDiv">
<div class="form-group">
<label class="col-md-2 control-label" style="margin-top:5px;"><spring:message

View File

@@ -118,11 +118,11 @@ function update(url){
return;
}
//处理asnIp,asn组下发过的ip配置不允许修改
if(cked.attr("serviceGroupId")&&cked.attr("isValid")){
var serviceGroupId=cked.attr("serviceGroupId");
if(cked.attr("asnGroup")&&cked.attr("isValid")){
var asnGroup=cked.attr("asnGroup");
var _isValid=cked.attr("isValid");
if(_isValid==1){
top.$.jBox.tip("<spring:message code='can_not_edit_issued_ans_ip'/>", "<spring:message code='info'/>");
if(asnGroup&&_isValid==1){
top.$.jBox.tip("<spring:message code='can_not_edit_issued_ans_group'/>", "<spring:message code='info'/>");
return;
}
}

View File

@@ -0,0 +1,129 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<script type="text/javascript">
$(function(){
var repeatTip='<spring:message code="duplicated_group"/>';
$("#cfgFrom").validate({
errorPlacement: function(error,element){
if($(element).parents().hasClass("tagsinput")){
$(element).parents(".col-md-6").next("div").append(error);
}else{
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
}
},
submitHandler: function(form){
var _id=$("[name='id']").val();
var organization=$("[name='organization']").val();
var country=$("[name='country']").val();
var asnId=$("[name='asnId']").val();
var detail=$("[name='detail']").val();
$.ajax({
type:'post',
async:false,
url: "${ctx}/basics/asnGroup/asnGroupName",
data:{"id":_id,"organization":organization,"country":country,"asnId":asnId,"detail":detail},
success:function(data){
if(data==1){
top.$.jBox.tip(repeatTip);
return;
}
}
});
loading('onloading...');
form.submit();
},
errorContainer: "#messageBox",
});
});
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
<spring:message code="asn_group_manage"/>
</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>
<c:if test="${empty _cfg.groupId}"><spring:message code="add"></spring:message></c:if>
<c:if test="${not empty _cfg.groupId}"><spring:message code="edit"></spring:message></c:if>
</div>
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form:form id="cfgFrom" modelAttribute="_cfg" action="${ctx}/basics/asnGroup/saveOrUpdate" method="post" class="form-horizontal">
<input type="hidden" name="id" value="${_cfg.id}">
<input type="hidden" name="groupId" value="${_cfg.groupId}">
<input type="hidden" name="isValid" value="${_cfg.isValid}">
<div class="form-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label>
<div class="col-md-6">
<input class="form-control required" type="text" name="organization" value="${_cfg.organization}" >
</div>
<div for="organization"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group asnNo">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<div class="col-md-6">
<input id="asnNo" class="form-control required asnNoUnique number" type="text" name="asnId" value="${_cfg.asnId}" autocomplete="off" maxlength="15" ctx="${ctx }">
</div>
<div for="asnId"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="country"/></label>
<div class="col-md-6">
<input class="form-control required" type="text" name="country" value="${_cfg.country}" >
</div>
<div for="country"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><spring:message code="detail"/>:</label>
<div class="col-md-6">
<form:textarea path="detail" htmlEscape="false" maxlength="128" class="form-control" />
</div>
</div>
</div>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-offset-3 col-md-8">
<button id="save" type="submit" class="btn green"><spring:message code="submit"/></button>
<button id="cancel" type="button" class="btn default"><spring:message code="cancel"/></button>
</div>
</div>
</div>
<div class="col-md-6"> </div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,266 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<script>
$(document).ready(function() {
//搜索框提示语初始化
if("${cfg.organization}"){
$("#intype").val("${cfg.organization}");
}else if(''!="${cfg.asnId}"){
$("#intype").val("${cfg.asnId}");
}else{
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
}
$("#seltype").change(function(){
$("#intype").attr("placeholder","<spring:message code='input'/> "+$(this).find("option:selected").text());
});
//筛选功能初始化
filterActionInit();
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
});
function deletes(url){
var checkboxes=$("tbody tr td input.i-checks:checkbox");
var str="";
var ids=[];
var asnIds=[];
var canDel=true;
checkboxes.each(function(){
if(true == $(this).is(':checked')){
ids.push($(this).attr("id"));
asnIds.push($(this).attr("asnId"));
/* if($(this).attr("isIssued")==1){
canDel=false;
} */
}
});
if(str.substr(str.length-1)== ','){
ids = str.substr(0,str.length-1);
}
var tip='<spring:message code="can_not_delete_asn_group_with_audited_ip"/>';
if(asnIds.length>0){
$.ajax({
type:'post',
url:'${ctx}/basics/asnGroup/ajaxGetAuditedIP',
data:{"asnIds":asnIds.join(',')},
async:false,
success:function(data,textStatus){//处理返回结果
if(data){
canDel=false;
}
}
});
}
if(canDel){
var added = "";
if(ids.length != 0){
added = "<spring:message code='asn_ip_group_delete'/>";
}
top.$.jBox.confirm("<spring:message code='confirm_message'/>"+added,"<spring:message code='info'/>",function(v,h,f){
if(v=="ok"){
if(ids.length != 0){
$.ajax({
type:'post',
url:'${ctx}/basics/asnGroup/delete',
data:{"ids":ids.join(','),"asnIds":asnIds.join(',')},
async:false,
success:function(data,textStatus){
if(textStatus == "success"){
top.$.jBox.tip("<spring:message code='delete_success'/>");
window.location = "${ctx}/basics/asnGroup/asnGroupList";
}
}
});
}
}
},{buttonsFocus:1});
top.$('.jbox-body .jbox-icon').css('top','55px');
}else{
$.jBox.tip(tip);
return false;
}
}
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<%-- <shiro:hasPermission name="avContUrl:config"> --%>
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/asnGroup/asnGroupForm'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
<%--</shiro:hasPermission>--%>
</div>
<h3 class="page-title">
<spring:message code="asn_group_manage"/>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}/basics/asnGroup/asnGroupList" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}"
callback="page();" />
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${cfg.isFilterAction }"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="organization"><spring:message code="organization"></spring:message></form:option>
<form:option value="asnId"><spring:message code="asn_no"></spring:message></form:option>
</form:select>
</div>
<input id="intype" class="form-control input-medium" type="text" value="">
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" id="resetBtn"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/> <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<%-- <shiro:hasPermission name="avContUrl:config"> --%>
<sys:delRow url="${ctx}/basics/asnGroup/asnGroupForm" id="contentTable" label="update"></sys:delRow>
<a href="javascript:void(0);" class="btn btn-default" onclick="deletes('${ctx}/basics/asnGroup/delete')" data-toggle="tooltip" data-placement="top">
<i class="fa fa-trash"> <spring:message code="delete"/></i>
</a>
<%-- <sys:delRow url="${ctx}/basics/asn/delete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow> --%>
<%-- </shiro:hasPermission> --%>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- /搜索内容与操作按钮栏 -->
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="config_time"/></label>
<input name="search_create_time_start" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
value="<fmt:formatDate value='${cfg.search_create_time_start}' pattern='yyyy-MM-dd HH:mm:ss'/>" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label>&nbsp;</label>
<input name="search_create_time_end" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
value="<fmt:formatDate value="${cfg.search_create_time_end}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="edit_time"/></label>
<input name="search_edit_time_start" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
value="<fmt:formatDate value="${cfg.search_edit_time_start}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label>&nbsp;</label>
<input name="search_edit_time_end" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
value="<fmt:formatDate value="${cfg.search_edit_time_end}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th class="sort-column r.organization"><spring:message code="organization"/></th>
<th class="sort-column r.country"><spring:message code="country"/></th>
<th class="sort-column r.detail"><spring:message code="detail"/></th>
<th class="sort-column r.asn_id"><spring:message code="asn_no"/></th>
<th><spring:message code="is_issued"/></th>
<th><spring:message code="creator"/></th>
<th class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th><spring:message code="editor"/></th>
<th class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list }" var="cfg" varStatus="status" step="1">
<tr>
<td><input type="checkbox" class="i-checks" id="${cfg.id}" asnId="${cfg.asnId}" isValid="${cfg.isValid}" asnGroup="${cfg.groupId}"></td>
<td>
<a href="javascript:;" data-original-title="${cfg.organization}"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:abbr(cfg.organization,20)}
</a>
</td>
<td>
<a href="javascript:;" data-original-title="${cfg.country}"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:abbr(cfg.country,20)}
</a>
</td>
<td>
<a href="javascript:;" data-original-title="${cfg.detail}"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fns:abbr(cfg.detail,20)}
</a>
</td>
<td>${cfg.asnId}</td>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
</td>
<td>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td>
<td><fmt:formatDate value="${cfg.editTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -17,15 +17,58 @@ $(function(){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
},
submitHandler: function(form){
$("[name='country']").val($("[name='userRegion1'] option:selected").attr("country"));
$("[name='detail']").val($("[name='userRegion1'] option:selected").attr("detail"));
$("[name='asnIpGroup']").val($("[name='userRegion1'] option:selected").attr("asnIpGroup"));
loading('onloading...');
form.submit();
},
errorContainer: "#messageBox",
});
$("#asnId").val($("select[name='asnIpGroup'] option:selected").attr("asnId"));
/* $("#asnId").val($("select[name='asnIpGroup'] option:selected").attr("asnId"));
$("select[name='asnIpGroup']").on("change",function(){
var asnId=$(this).find("option[value='"+$(this).val()+"']").attr("asnId");
$("#asnId").val(asnId);
}); */
var organization=$("[name='organization']").val();
if(organization){
$.ajax({
type:'post',
url:'${ctx}/basics/asn/ajaxGetGroups',
data:{"org":organization},
async:false,
success:function(data,textStatus){//处理返回结果
if(data){
var html='';
for(var i in data){
html+="<option value='"+data[i].asnId+"' country='"+data[i].country+"' detail='"+data[i].detail+"' asnIpGroup='"+data[i].groupId+"' >"
+data[i].country+" AS"+data[i].asnId+" "+data[i].detail+"</option>"
}
$("[name='userRegion1']").empty().append(html);
$("[name='userRegion1']").selectpicker("refresh");
}
}
});
}
$("[name='organization']").on("change",function(){
$.ajax({
type:'post',
url:'${ctx}/basics/asn/ajaxGetGroups',
data:{"org":$(this).val()},
async:false,
success:function(data,textStatus){//处理返回结果
if(data){
var html='';
for(var i in data){
html+="<option value='"+data[i].asnId+"' country='"+data[i].country+"' detail='"+data[i].detail+"' asnIpGroup='"+data[i].groupId+"' >"
+data[i].country+" AS"+data[i].asnId+" "+data[i].detail+"</option>"
}
$("[name='userRegion1']").empty().append(html);
$("[name='userRegion1']").selectpicker("refresh");
}
}
});
});
});
//业务窗口打开
@@ -105,11 +148,14 @@ var reSort=function(obj,index){
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/basics/asn/save" method="post" class="form-horizontal">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId" value="0">
<input type="hidden" id="isAreaEffective" name="isAreaEffective" value="0">
<input type="hidden" id="action" name="action" value="0">
<input type="hidden" id="compileId" name="compileId" value="0">
<input type="hidden" id="requestId" name="requestId" value="0">
<input type="hidden" id="asnIpGroup" name="asnIpGroup" value="0">
<c:forEach items="${serviceList}" var="service">
<input type="hidden" id="serviceId" name="serviceId" value="${service.serviceId}">
<input type="hidden" id="action" name="action" value="${service.action}">
</c:forEach>
<!-- 配置域类型 -->
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
@@ -138,13 +184,13 @@ var reSort=function(obj,index){
</div>
</div>
</div>
<div class="col-md-6">
<%-- <div class="col-md-6">
<input type="hidden" id="asnId" name="userRegion1" value="${_cfg.userRegion1}">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="group"/></label>
<div class="col-md-6">
<select name="asnIpGroup" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<%-- <option value="0" ><spring:message code="default_group"/></option>--%>
<option value="0" ><spring:message code="default_group"/></option>
<c:forEach items="${policyGroups }" var="policyGroup">
<option asnId="${policyGroup.asnNo}" value="${policyGroup.serviceGroupId}" <c:if test="${_cfg.asnIpGroup==policyGroup.serviceGroupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach>
@@ -152,6 +198,53 @@ var reSort=function(obj,index){
</div>
<div for="asnIpGroup"></div>
</div>
</div> --%>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label>
<div class="col-md-6">
<select name="organization" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${policyGroups }" var="policyGroup">
<option value="${policyGroup.groupName}" <c:if test="${_cfg.organization eq policyGroup.groupName }">selected</c:if>>${policyGroup.groupName}</option>
</c:forEach>
</select>
<%-- <input class="form-control required" type="text" name="organization" value="${_cfg.organization}"> --%>
</div>
<div for="organization"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ASN"/></label>
<div class="col-md-6">
<select name="userRegion1" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
</select>
<%-- <input class="form-control required digits" type="text" name="userRegion1" value="${_cfg.userRegion1}"> --%>
</div>
<div for="userRegion1"></div>
</div>
</div>
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="country"/></label>
<div class="col-md-6">
<input class="form-control required" type="hidden" name="country" value="${_cfg.country}">
</div>
<div for="country"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="detail"/></label>
<div class="col-md-6">
<input class="form-control required" type="hidden" name="detail" value="${_cfg.detail}">
</div>
<div for="detail"></div>
</div>
</div>
</div>
<!-- desc and action -->

View File

@@ -14,15 +14,62 @@ $(function(){
$(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error);
},
submitHandler: function(form){
$("[name='country']").val($("[name='userRegion1'] option:selected").attr("country"));
$("[name='detail']").val($("[name='userRegion1'] option:selected").attr("detail"));
$("[name='asnIpGroup']").val($("[name='userRegion1'] option:selected").attr("asnIpGroup"));
loading('onloading...');
form.submit();
},
errorContainer: "#messageBox",
});
$("#asnId").val($("select[name='asnIpGroup'] option:selected").attr("asnId"));
/* $("#asnId").val($("select[name='asnIpGroup'] option:selected").attr("asnId"));
$("select[name='asnIpGroup']").on("change",function(){
var asnId=$(this).find("option[value='"+$(this).val()+"']").attr("asnId");
$("#asnId").val(asnId);
}); */
var organization=$("[name='organization']").val();
if(organization){
$.ajax({
type:'post',
url:'${ctx}/basics/asn/ajaxGetGroups',
data:{"org":organization},
async:false,
success:function(data,textStatus){//处理返回结果
if(data){
var html='';
for(var i in data){
html+="<option value='"+data[i].asnId+"' country='"+data[i].country+"' detail='"+data[i].detail+"' asnIpGroup='"+data[i].groupId+"'";
if("${_cfg.userRegion1}"!='' && "${_cfg.userRegion1}"==data[i].asnId){
html+=" selected ";
}
html+=" >";
html+=data[i].country+" AS"+data[i].asnId+" "+data[i].detail+"</option>"
}
$("[name='userRegion1']").empty().append(html);
$("[name='userRegion1']").selectpicker("refresh");
}
}
});
}
$("[name='organization']").on("change",function(){
$.ajax({
type:'post',
url:'${ctx}/basics/asn/ajaxGetGroups',
data:{"org":$(this).val()},
async:false,
success:function(data,textStatus){//处理返回结果
if(data){
var html='';
for(var i in data){
html+="<option value='"+data[i].asnId+"' country='"+data[i].country+"' detail='"+data[i].detail+"' asnIpGroup='"+data[i].groupId+"' >"
+data[i].country+" AS"+data[i].asnId+" "+data[i].detail+"</option>"
}
$("[name='userRegion1']").empty().append(html);
$("[name='userRegion1']").selectpicker("refresh");
}
}
});
});
});
</script>
@@ -54,6 +101,7 @@ $(function(){
<input type="hidden" id="isAreaEffective" name="isAreaEffective" value="0">
<input type="hidden" id="requestId" name="requestId" value="${_cfg.requestId}">
<input type="hidden" id="protocolId" name="protocolId" value="${_cfg.protocolId}">
<input type="hidden" id="asnIpGroup" name="asnIpGroup" value="${_cfg.asnIpGroup}">
<!-- 配置域类型 -->
<c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}">
@@ -83,19 +131,19 @@ $(function(){
</div>
</div>
<div class="col-md-6">
<input type="hidden" id="asnId" name="userRegion1" value="${_cfg.userRegion1}">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="group"/></label>
<div class="col-md-6">
<select name="asnIpGroup" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${policyGroups }" var="policyGroup">
<option asnId="${policyGroup.asnNo}" value="${policyGroup.serviceGroupId}" <c:if test="${_cfg.asnIpGroup==policyGroup.serviceGroupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach>
</select>
</div>
<div for="asnIpGroup"></div>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="organization"/></label>
<div class="col-md-6">
<select name="organization" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${policyGroups }" var="policyGroup">
<option value="${policyGroup.groupName}" <c:if test="${_cfg.organization eq policyGroup.groupName }">selected</c:if>>${policyGroup.groupName}</option>
</c:forEach>
</select>
<%-- <input class="form-control required" type="text" name="organization" value="${_cfg.organization}"> --%>
</div>
<div for="organization"></div>
</div>
</div>
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="action"/></label>
@@ -122,6 +170,38 @@ $(function(){
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ASN"/></label>
<div class="col-md-6">
<select name="userRegion1" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search"></select>
<%-- <input class="form-control" type="text" name="userRegion1" value="${_cfg.userRegion1}"> --%>
</div>
<div for="userRegion1"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="country"/></label>
<div class="col-md-6">
<input class="form-control required" type="hidden" name="country" value="${_cfg.country}">
</div>
<div for="country"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="detail"/></label>
<div class="col-md-6">
<input class="form-control required" type="hidden" name="detail" value="${_cfg.detail}">
</div>
<div for="detail"></div>
</div>
</div>
</div>
<!-- desc and action -->
<%-- <%@include file="/WEB-INF/include/form/complexIpInfo.jsp" %> --%>
<div class="row ipInfo">

View File

@@ -10,6 +10,12 @@
$("#intype").val("${cfg.cfgDesc}");
}else if("${cfg.destIpAddress}"){
$("#intype").val("${cfg.destIpAddress}");
}else if("${cfg.organization}"){
$("#intype").val("${cfg.organization}");
}else if("${cfg.country}"){
$("#intype").val("${cfg.country}");
}else if("${cfg.detail}"){
$("#intype").val("${cfg.detail}");
}else{
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
}
@@ -108,7 +114,7 @@
</c:forEach>
</form:select>
</div> --%>
<%--<div class="pull-left">
<div class="pull-left">
<c:set var="state"><spring:message code='group'/></c:set>
<form:select path="isAudit" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="all_states"/></form:option>
@@ -117,7 +123,7 @@
<form:option value="2"><spring:message code="unapproved"></spring:message></form:option>
<form:option value="3"><spring:message code="cancel_approved"></spring:message></form:option>
</form:select>
</div>--%>
</div>
<div class="pull-left">
@@ -128,7 +134,10 @@
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="destIpAddress"><spring:message code="IP"></spring:message></form:option>
<%-- <form:option value="destPort"><spring:message code="port"></spring:message></form:option> --%>
<form:option value="isValid"><spring:message code="is_issued"></spring:message></form:option>
<form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option>
<form:option value="organization"><spring:message code="organization"></spring:message></form:option>
<form:option value="country"><spring:message code="country"></spring:message></form:option>
<form:option value="detail"><spring:message code="detail"></spring:message></form:option>
</form:select>
</div>
@@ -166,7 +175,7 @@
</div>
<%-- <shiro:hasPermission name="asn:ip:confirm">
<shiro:hasPermission name="asn:ip:confirm">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="examine"></spring:message>
@@ -178,7 +187,7 @@
<li><sys:delRow url="${ctx}/basics/asn/audit?isAudit=3&isValid=0&functionId=${cfg.functionId }" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission> --%>
</shiro:hasPermission>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
@@ -225,7 +234,7 @@
</div>
</div>
<%-- <div class="col-md-2">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="audit_time"/></label>
<input name="search_audit_time_start" type="text" readonly="readonly" maxlength="20" class="form-control Wdate"
@@ -241,7 +250,7 @@
value="<fmt:formatDate value="${cfg.search_audit_time_end}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div> --%>
</div>
</div>
@@ -256,10 +265,14 @@
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th class="sort-column r.compile_id" style="display: none;" column="cfg_id" ><spring:message code="cfg_id"/></th>
<%-- <th><spring:message code="seq"/></th> --%>
<th column="config_describe" ><spring:message code="config_describe"/></th>
<th column="group" ><spring:message code="group"/></th>
<th column="userregion1" ><spring:message code="asn_no"/></th>
<%-- <th><spring:message code="group"/></th> --%>
<th class="sort-column r.organization"><spring:message code="organization"/></th>
<th class="sort-column r.country"><spring:message code="country"/></th>
<th class="sort-column r.detail"><spring:message code="detail"/></th>
<th class="sort-column r.user_region1" column="userregion1" ><spring:message code="asn_no"/></th>
<th column="ip_type" ><spring:message code="ip_type"/></th>
<th column="IP" ><spring:message code="IP"/></th>
<%-- <th><spring:message code="port"/></th> --%>
@@ -270,24 +283,28 @@
<th><spring:message code="classification"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th> --%>
<th column="is_issued" ><spring:message code="is_issued"/></th>
<%-- <th><spring:message code="is_audit"/></th> --%>
<th column="valid_identifier" ><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<%-- <th><spring:message code="log_total"/></th> --%>
<th column="creator" ><spring:message code="creator"/></th>
<th column="config_time" class="sort-column r.create_time"><spring:message code="config_time"/></th>
<th column="editor" ><spring:message code="editor"/></th>
<th column="edit_time" class="sort-column r.edit_time"><spring:message code="edit_time"/></th>
<%-- <th><spring:message code="auditor"/></th>
<th class="sort-column r.audit_time"><spring:message code="audit_time"/></th> --%>
<th><spring:message code="auditor"/></th>
<th class="sort-column r.audit_time"><spring:message code="audit_time"/></th>
<%-- <th><spring:message code="operation"></spring:message></th> --%>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list }" var="cfg" varStatus="status" step="1">
<tr>
<td><input type="checkbox" class="i-checks" id="${cfg.cfgId}" isValid="${cfg.isValid}" serviceGroupId="${cfg.asnIpGroup}" value="0"></td>
<td><input type="checkbox" class="i-checks" id="${cfg.cfgId}" isValid="${cfg.isValid}" value="${cfg.isAudit}"></td>
<td>${cfg.compileId }</td>
<td>${cfg.cfgDesc }</td>
<td class="configGroup" asnNo="${cfg.userRegion1}">${cfg.asnIpGroup }</td>
<%-- <td asnNo="${cfg.userRegion1}">${cfg.asnIpGroup }</td> --%>
<td>${cfg.organization }</td>
<td>${cfg.country }</td>
<td>${cfg.detail }</td>
<td>${cfg.userRegion1}</td>
<td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipTypeC">
@@ -377,21 +394,30 @@
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>
<c:if test="${cfg.isValid==-1}"><spring:message code="deleted"/></c:if>
</td>
<%-- <td>
<td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '3'}"><span class="label label-warning"><spring:message code="cancel_approved"></spring:message></span></c:when>
</c:choose>
</td> --%>
<%-- <c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '1'}"><span class="label label-success"><spring:message code="approved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
<c:when test="${cfg.isAudit eq '3'}">
<span indexTable="${cfg.indexTable}" data-placement="right" data-original-title="<spring:message code='letter_cancel_info'/>: " class="label le-ca-fo label-warning tooltips" data-icon="&#xe01e;"> <spring:message code="cancel_approved"/></span>
</c:when>
</c:choose> --%>
</td>
<%-- <td audit="${cfg.isAudit}" functionId="${cfg.functionId}" compileId="${cfg.compileId}" action="${cfg.action}"><div class="loading-total"></div></td> --%>
<td>${cfg.creatorName }</td>
<td><fmt:formatDate value="${cfg.createTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${cfg.editorName }</td>
<td><fmt:formatDate value="${cfg.editTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<%-- <td>${cfg.auditorName }</td>
<td><fmt:formatDate value="${cfg.auditTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td> --%>
<td>${cfg.auditorName }</td>
<td><fmt:formatDate value="${cfg.auditTime }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</c:forEach>

View File

@@ -61,9 +61,9 @@ $(function(){
<c:if test="${_cfg.groupType==1}">
<spring:message code="dns_group_manage"/>
</c:if>
<c:if test="${_cfg.groupType==4}">
<%-- <c:if test="${_cfg.groupType==4}">
<spring:message code="asn_group_manage"/>
</c:if>
</c:if> --%>
<c:if test="${_cfg.groupType==5}">
<spring:message code="ip_group_manage"/>
</c:if>
@@ -127,7 +127,7 @@ $(function(){
<div class="form-group asnNo hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<div class="col-md-6">
<input id="asnNo" class="form-control required asnNoUnique number" type="text" name="asnNo" value="${_cfg.asnNo}" autocomplete="off" maxlength="15" ctx="${ctx }">
<input id="asnNo" class="form-control required number" type="text" name="asnNo" value="${_cfg.asnNo}" autocomplete="off" maxlength="15" ctx="${ctx }">
</div>
<div for="asnNo"></div>
</div>

View File

@@ -36,12 +36,12 @@
var checkboxes=$("tbody tr td input.i-checks:checkbox");
var ids="";
var str="";
var serviceGroupIds=[];
/* var serviceGroupIds=[]; */
checkboxes.each(function(){
if(true == $(this).is(':checked')){
if($(this).attr("groupType")==4){
/* if($(this).attr("groupType")==4){
serviceGroupIds.push($(this).attr("serviceGroupId"));
}
} */
str+=$(this).attr("id")+",";
}
});
@@ -50,7 +50,7 @@
}
var canDel=true;
var tip='<spring:message code="can_not_delete_issued_asn_group"/>';
/* var tip='<spring:message code="can_not_delete_issued_asn_group"/>';
if(serviceGroupIds.length>0){
$.ajax({
type:'post',
@@ -63,29 +63,15 @@
}
}
});
/* if(canDel){ // 不能删除包含ASN IP的 ASN组
$.ajax({
type:'post',
url:'${ctx}/basics/policyGroup/ajaxHasAsnIPs',
data:{"serviceGroupIds":serviceGroupIds.join(',')},
async:false,
success:function(data,textStatus){//处理返回结果
if(data){
canDel=false;
tip='<spring:message code="can_not_delete_has_ip_asn_group"/>';
}
}
});
} */
}
} */
if(canDel){
var added = "";
if(serviceGroupIds.length != 0){
/* if(serviceGroupIds.length != 0){
added = "<spring:message code='asn_ip_group_delete'/>";
}
} */
top.$.jBox.confirm("<spring:message code='confirm_message'/>"+added,"<spring:message code='info'/>",function(v,h,f){
if(v=="ok"){
if(serviceGroupIds.length != 0){
/* if(serviceGroupIds.length != 0){
$.ajax({
type:'post',
url:'${ctx}/basics/asn/ajaxDeleteAsnIp',
@@ -97,9 +83,9 @@
}
}
});
}else{
}else{ */
window.location = url+"&ids="+ids;
}
/* } */
}
},{buttonsFocus:1});
@@ -125,7 +111,7 @@
</div>
<h3 class="page-title">
<%-- <c:if test="${cfg.groupType==1}">
<c:if test="${cfg.groupType==1}">
<spring:message code="dns_group_manage"/>
</c:if>
<c:if test="${cfg.groupType==4}">
@@ -136,8 +122,8 @@
</c:if>
<c:if test="${cfg.groupType==6}">
<spring:message code="ip_spoofing_group_manage"/>
</c:if> --%>
<spring:message code="policy_group_manage"/>
</c:if>
<%-- <spring:message code="policy_group_manage"/> --%>
</h3>
<h5 class="page-header"></h5>
<div class="col-md-12">
@@ -179,9 +165,9 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="groupName"><spring:message code="group_name"></spring:message></form:option>
<c:if test="${cfg.groupType==4}">
<%-- <c:if test="${cfg.groupType==4}">
<form:option value="asnNo"><spring:message code="asn_no"></spring:message></form:option>
</c:if>
</c:if> --%>
</form:select>
</div>

View File

@@ -15,13 +15,13 @@
<br>
<div class="row">
<div class="col-md-6">
<input type="hidden" name="userRegion5" value="${_cfg.userRegion5}">
<%-- <input type="hidden" name="userRegion5" value="${_cfg.userRegion5}"> --%>
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="group"/></label>
<div class="col-md-6">
<select name="userRegion4" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${policyGroups }" var="policyGroup">
<option asnId="${policyGroup.asnId}" value="${policyGroup.groupId}" <c:if test="${asn==policyGroup.groupId }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
<option asnId="${policyGroup.asnId}" value="${policyGroup.groupName}" <c:if test="${asn==policyGroup.groupName }">selected</c:if>><spring:message code="${policyGroup.groupName}"/></option>
</c:forEach>
</select>
</div>

View File

@@ -219,28 +219,50 @@
</c:forEach>
</c:if>
<c:if test="${(region[0] eq 3) && (not empty _cfg.userRegion4)}">
<div id="${region[1]}Info${index}" class="content" name="subCfg${index}">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='group'/>:</label>
<label>
${_cfg.asnIpGroupName}
</label>
<c:forEach items="${_cfg.asnGroups}" var="asn">
<div id="${region[1]}Info${index}" class="content" name="subCfg${index}">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='organization'/>:</label>
<label>
${asn.organization}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='country'/>:</label>
<label>
${asn.country}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='asn_no'/>:</label>
<label>
${asn.asnId}
</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='detail'/>:</label>
<label>
${asn.detail}
</label>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='asn_no'/>:</label>
<label>
${_cfg.userRegion5}
</label>
</div>
</div>
</div>
</div>
</c:forEach>
</c:if>
</c:forEach>
</html>

View File

@@ -945,14 +945,14 @@ jQuery.validator.addMethod("addrPoolUnique",function(value, element) {
// 策略分组管理asn号唯一
jQuery.validator.addMethod("asnNoUnique",function(value, element) {
var ctx=$(element).attr("ctx");
var groupId= $("[name='groupId']").val();
var url = ctx+"/basics/policyGroup/checkAsnNo";
var id= $("[name='id']").val();
var url = ctx+"/basics/asnGroup/checkAsnNo";
var result = true;
$.ajax({
type:'post',
async:false,
url: url,
data:{"groupId":groupId,"asnNo":value},
data:{"id":id,"asnId":value},
success:function(data){
result = data;
}

View File

@@ -32,7 +32,7 @@ $(function(){
}
});
}
var asnNos=[];
/*var asnNos=[];
$(".configGroup").each(function(){
if($(this).attr("asnNo")&&$(this).attr("asnNo")!=''){
asnNos.push($(this).attr("asnNo"));
@@ -53,5 +53,5 @@ $(function(){
}
}
});
}
}*/
});