完成协议ip国际化,权限控制

更改分类/性质/标签,地域/运营商/作用域 ,特定服务,协议ip 修改操作由可选多项仅只修改第一项改为 只能选择一条数据,修订校验国际化
This commit is contained in:
zhangshilin
2018-03-29 18:45:37 +08:00
parent 99175da3f2
commit 0633a74024
15 changed files with 228 additions and 310 deletions

View File

@@ -143,22 +143,13 @@ public class ServiceDictInfoController extends BaseController {
*/
@RequiresPermissions(value={"basics:classification:edit","basics:attribute:edit","basics:label:edit"},logical=Logical.OR)
@RequestMapping(value={"form"})
public String form(ServiceDictInfo serviceDictInfo, Model model,String doAction,String itType, String mulitId) {
public String form(ServiceDictInfo serviceDictInfo, Model model,String doAction,String itType) {
if(doAction!=null&&doAction.equals("0")){
return "/basics/serviceDictInfo";
}
Integer id=0;
if(mulitId!=null){
String[] ids = mulitId.split(",");
id = Integer.valueOf(ids[0]);
}
if(id!=0){
serviceDictInfo = serviceDictInfoService.getDictById(id);
}
if (serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getServiceDictId() == null||serviceDictInfo.getParent().getServiceDictId() == 0) {
if (serviceDictInfo==null||serviceDictInfo.getParent() == null || serviceDictInfo.getParent().getServiceDictId() == null) {
ServiceDictInfo parent = new ServiceDictInfo();
parent.setServiceDictId(0);
parent.setItemValue("root_node");
serviceDictInfo.setParent(parent);
}
String[] strArr = itType.split("-");
@@ -422,7 +413,7 @@ public class ServiceDictInfoController extends BaseController {
* 查出所该节点下有树形子节点
*/
void allTreeNode(Integer levelNo, List<ServiceDictInfo> list,List<ServiceDictInfo> resultList){
public void allTreeNode(Integer levelNo, List<ServiceDictInfo> list,List<ServiceDictInfo> resultList){
if(list!=null&&list.size()>0){
for(ServiceDictInfo se:list){
se.setLevelNo(levelNo+1);

View File

@@ -140,23 +140,14 @@ public class SysDictInfoController extends BaseController {
*/
@RequiresPermissions(value={"basics:area:edit","basics:isp:edit","basics:scope:edit"},logical=Logical.OR)
@RequestMapping(value={"form"})
public String form(SysDictInfo sysDictInfo, Model model, String doAction, String itType, String mulitId) {
public String form(SysDictInfo sysDictInfo, Model model, String doAction, String itType) {
if(doAction!=null&&doAction.equals("0")){
model.addAttribute("specType", sysDictInfo.getItemType());
return "/basics/sysDictInfo";
}
Integer id=0;
if(mulitId!=null){
String[] ids = mulitId.split(",");
id = Integer.valueOf(ids[0]);
}
if(id!=0){
sysDictInfo = sysDictInfoService.getDictById(id);
}
if (sysDictInfo.getParent() == null || sysDictInfo.getParent().getSysDictId() == null||sysDictInfo.getParent().getSysDictId() == 0) {
if (sysDictInfo.getParent() == null || sysDictInfo.getParent().getSysDictId() == null) {
SysDictInfo parent = new SysDictInfo();
parent.setSysDictId(0);
parent.setItemValue("root_node");
sysDictInfo.setParent(parent);
}
String[] strArr = itType.split("-");

View File

@@ -120,21 +120,13 @@ public class SpecificServiceCfgController extends BaseController {
*/
@RequiresPermissions("specific:service:edit")
@RequestMapping(value = { "form" })
public String form(SpecificServiceCfg specificServiceCfg, Model model, String doAction, String mulitId) {
Integer id = 0;
if (mulitId != null) {
String[] ids = mulitId.split(",");
id = Integer.valueOf(ids[0]);
public String form(SpecificServiceCfg specificServiceCfg, Model model, String doAction) {
if(specificServiceCfg!=null&&specificServiceCfg.getSpecServiceId()!=null){
specificServiceCfg = specificServiceCfgService.getBySpecServiceId(specificServiceCfg.getSpecServiceId());
}
if (id != 0) {
specificServiceCfg = specificServiceCfgService.getBySpecServiceId(id);
}
if (specificServiceCfg == null || specificServiceCfg.getParent() == null
|| specificServiceCfg.getParent().getSpecServiceId() == 0) {
if (specificServiceCfg == null || specificServiceCfg.getSpecServiceId()==null) {
SpecificServiceCfg parent = new SpecificServiceCfg();
parent.setSpecServiceId(0);
parent.setSpecServiceName("root_node");
specificServiceCfg.setParent(parent);
}
model.addAttribute("specificServiceCfg", specificServiceCfg);

View File

@@ -89,10 +89,10 @@ public class SpecificServiceHostCfgController extends BaseController {
public String saveOrUpdate(SpecificServiceHostCfg specificServiceHostCfg,Model model,RedirectAttributes redirectAttributes){
try {
specificServiceHostCfgService.saveOrUpdate(specificServiceHostCfg);
addMessage(redirectAttributes, "保存成功");
addMessage(redirectAttributes, "save_success");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "保存失败!");
addMessage(redirectAttributes, "save_failed");
}
return "redirect:"+adminPath+"/specific/specificServiceHostCfg/list";
}
@@ -108,10 +108,10 @@ public class SpecificServiceHostCfgController extends BaseController {
public String delete(SpecificServiceHostCfg specificServiceHostCfg, RedirectAttributes redirectAttributes, String mulitId){
try{
specificServiceHostCfgService.delete(mulitId);
addMessage(redirectAttributes,"删除成功");
addMessage(redirectAttributes,"delete_success");
}catch (Exception e){
e.printStackTrace();
addMessage(redirectAttributes,"删除失败");
addMessage(redirectAttributes,"delete_failed");
}
return "redirect:"+adminPath+"/specific/specificServiceHostCfg/list";

View File

@@ -191,7 +191,7 @@ task_time=task time
#==========message begin=====================
required=This field is required
required=This field is required?
select=Please select
date_list=Date List
confirm_message=Are you sure?
@@ -219,11 +219,11 @@ hasnot_approved=It has not been approved and can not be operated on !
check_one=choose one please !
one_more=please choose at least one !
custom_columns=custom columns
maxlength_64=The maxlength is 64
maxlength_128=The maxlength is 128
maxlength_256=The maxlength is 256
maxlength_512=The maxlength is 512
maxlength_4000=The maxlength is 4000
maxlength_64=The maxlength is 64?
maxlength_128=The maxlength is 128?
maxlength_256=The maxlength is 256?
maxlength_512=The maxlength is 512?
maxlength_4000=The maxlength is 4000?
#==========message end=====================
#==========yewuliexingguanli begin=====================
@@ -333,6 +333,6 @@ protocol_id=protocol ID
protocol_name=protocol name
group_id=group ID
input_protocol_id=please enter protocol ID
input_integer=please enter integer
input_integer=please enter right integer
protocol_desc=protocol description
#==========tedingfuwu end=====================

View File

@@ -368,4 +368,6 @@ group_id=maat\u7aef\u914d\u7f6e\u5206\u7ec4ID
input_protocol_id=\u8bf7\u8f93\u5165\u534f\u8baeID
input_integer=\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u6574\u6570\u503c
protocol_desc=\u534f\u8bae\u63cf\u8ff0
max_value=\u6700\u5927\u503c\u4e0d\u5f97\u8d85\u8fc7
min_value=\u6700\u5c0f\u503c\u4e0d\u5f97\u5c0f\u4e8e
#==========tedingfuwu end=====================

View File

@@ -242,7 +242,7 @@
<label class="col-md-3 control-label"><spring:message code="superior_config"/>:</label>
<div class="col-md-4">
<c:set var="fatherName"><spring:message code="root_node"/></c:set>
<sys:treeselect id="serviceDictInfo" name="parent.serviceDictId" value="${serviceDictInfo.parent.serviceDictId}" labelName="parent.itemValue" labelValue="${serviceDictInfo.parent.itemValue eq 'root_node'?fatherName:fns:getServiceDictInfoById(serviceDictInfo.parent.serviceDictId).itemValue}"
<sys:treeselect id="serviceDictInfo" name="parent.serviceDictId" value="${serviceDictInfo.parent.serviceDictId}" labelName="parent.itemValue" labelValue="${serviceDictInfo.parent.serviceDictId eq '0'?fatherName:fns:getServiceDictInfoById(serviceDictInfo.parent.serviceDictId).itemValue}"
title="菜单" url="/basics/serviceDictInfo/treeData?itType=${itType}" extId="${serviceDictInfo.serviceDictId}" cssClass="required form-control"/>
<label class="error errorShow" style="display: none;"><spring:message code="isLevelNoSure"/></label>
</div>

View File

@@ -6,7 +6,7 @@
<link href="${ctxStatic}/global/plugins/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css" />
<script src="${ctxStatic}/global/plugins/treeTable/jquery.treeTable.min.js" type="text/javascript"></script>
<script src="${ctxStatic}/pages/scripts/dict.js" type="text/javascript"></script>
<script type="text/javascript">
<script type="text/javascript">
function reset(){
$("#searchForm").reset();
}
@@ -38,9 +38,23 @@
if(mulitId!=""){
confirmx("<spring:message code='confirm_message'/>", url+"&mulitId="+mulitId);
}else{
alert("<spring:message code='one_more'/>");
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
}
//修改
function cmdEdit(){
var cked = $("tbody tr td input[name='check']:checkbox:checked");
if(cked.length<1){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
if(cked.length>1){
top.$.jBox.tip("<spring:message code='check_one'/>", "<spring:message code='info'/>");
}
if(cked.length==1){
var url=arguments[0];
confirmx("<spring:message code='confirm_message'/>", url+"&serviceDictId="+cked.val());
}
}
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
@@ -93,11 +107,12 @@
<c:set var="permission_type">${fns:getPermissionByNo('SERVICE_DICT_ITM_TYPE',intArr)}</c:set>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/basics/serviceDictInfo/list?itType=${itType}'"><spring:message code="refresh"></spring:message></button>
<shiro:hasPermission name="basics:${permission_type}:edit">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/serviceDictInfo/form?itType=${itType}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message><spring:message code="configuration"></spring:message>
<spring:message code="add"></spring:message>
</button>
</shiro:hasPermission>
</div>
@@ -124,22 +139,6 @@
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<%-- <div class="pull-left">
<form:select path="itemType" class="selectpicker select2 input-small" >
<form:option value="">数据类型</form:option>
<c:forEach items="${fns:getDictList('SERVICE_DICT_ITM_TYPE')}" var="dict">
<c:forEach items="${intArr}" var="itTemp">
<c:if test="${dict.itemCode eq itTemp}">
<option value="${dict.itemCode}"
<c:if test="${selectedType eq dict.itemCode}">selected="selected"</c:if>
>${dict.itemValue}</option>
</c:if>
</c:forEach>
</c:forEach>
</form:select>
</div> --%>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
@@ -164,7 +163,7 @@
<div class="pull-right">
<shiro:hasPermission name="basics:${permission_type}:edit">
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/basics/serviceDictInfo/form?itType=${itType}')">
<button type="button" class="btn btn-default" onclick="cmdEdit('${ctx}/basics/serviceDictInfo/form?itType=${itType}')">
<i class="fa fa-edit"></i> <spring:message code="edit" /></button>
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/basics/serviceDictInfo/delete?itType=${itType}')">
<i class="fa fa-trash"></i><spring:message code="delete" /></button>

View File

@@ -216,7 +216,7 @@
<label class="col-md-3 control-label"><spring:message code="superior_config"/>:</label>
<div class="col-md-4">
<c:set var="fatherName"><spring:message code="root_node"/></c:set>
<sys:treeselect id="sysDictInfo" name="parent.sysDictId" value="${sysDictInfo.parent.sysDictId}" labelName="parent.itemValue" labelValue="${sysDictInfo.parent.itemValue eq 'root_node'?fatherName:fns:getSysDictInfoById(sysDictInfo.parent.sysDictId).itemValue}"
<sys:treeselect id="sysDictInfo" name="parent.sysDictId" value="${sysDictInfo.parent.sysDictId}" labelName="parent.itemValue" labelValue="${sysDictInfo.parent.sysDictId eq '0'?fatherName:fns:getSysDictInfoById(sysDictInfo.parent.sysDictId).itemValue}"
title="菜单" url="/basics/sysDictInfo/treeData?itType=${itType}" extId="${sysDictInfo.sysDictId}" cssClass="required form-control"/>
</div>
</div>

View File

@@ -4,7 +4,6 @@
<head>
<title>配置信息</title>
<link href="${ctxStatic}/global/plugins/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css" />
<%-- <link href="${ctxStatic}/pages/css/dictInfo.css" rel="stylesheet" type="text/css" /> --%>
<script src="${ctxStatic}/global/plugins/treeTable/jquery.treeTable.min.js" type="text/javascript"></script>
<script src="${ctxStatic}/pages/scripts/dict.js" type="text/javascript"></script>
<script type="text/javascript">
@@ -26,27 +25,40 @@
});
}
}
/*
系统通用方法根据参数来决定处理的url和参数
*/
function cmd(){
var url=arguments[0];
var mulitId="";
jQuery("#treeTable").find(":checkbox:checked[name='check']").each(function(){
if(jQuery(this).val()!=""){
mulitId+=jQuery(this).val()+",";
}
});
if(mulitId!=""){
confirmx("<spring:message code='confirm_message'/>", url+"&mulitId="+mulitId);
}else{
alert("<spring:message code='one_more'/>");
/*
系统通用方法根据参数来决定处理的url和参数
*/
function cmd(){
var url=arguments[0];
var mulitId="";
jQuery("#treeTable").find(":checkbox:checked[name='check']").each(function(){
if(jQuery(this).val()!=""){
mulitId+=jQuery(this).val()+",";
}
});
if(mulitId!=""){
confirmx("<spring:message code='confirm_message'/>", url+"&mulitId="+mulitId);
}else{
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
}
}
//sys修改
function cmdSysEdit(){
var cked = $("tbody tr td input[name='check']:checkbox:checked");
if(cked.length<1){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
if(cked.length>1){
top.$.jBox.tip("<spring:message code='check_one'/>", "<spring:message code='info'/>");
}
if(cked.length==1){
var url=arguments[0];
confirmx("<spring:message code='confirm_message'/>", url+"&sysDictId="+cked.val());
}
}
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
@@ -97,11 +109,12 @@
<c:set var="permission_type">${fns:getPermissionByNo('SYS_DICT_ITM_TYPE',intArr)}</c:set>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/basics/sysDictInfo/list?itType=${itType}'"><spring:message code="refresh"></spring:message></button>
<shiro:hasPermission name="basics:${permission_type}:edit">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/sysDictInfo/form?itType=${itType}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message><spring:message code="configuration" /></button>
<spring:message code="add"></spring:message></button>
</shiro:hasPermission>
</div>
@@ -127,22 +140,6 @@
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<%-- <div class="pull-left">
<form:select path="itemType" class="selectpicker select2 input-small" >
<form:option value="">数据类型</form:option>
<c:forEach items="${fns:getDictList('SERVICE_DICT_ITM_TYPE')}" var="dict">
<c:forEach items="${intArr}" var="itTemp">
<c:if test="${dict.itemCode eq itTemp}">
<option value="${dict.itemCode}"
<c:if test="${selectedType eq dict.itemCode}">selected="selected"</c:if>
>${dict.itemValue}</option>
</c:if>
</c:forEach>
</c:forEach>
</form:select>
</div> --%>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
@@ -165,7 +162,7 @@
<div class="pull-right">
<shiro:hasPermission name="basics:${permission_type}:edit">
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/basics/sysDictInfo/form?itType=${itType}')">
<button type="button" class="btn btn-default" onclick="cmdSysEdit('${ctx}/basics/sysDictInfo/form?itType=${itType}')">
<i class="fa fa-edit"></i> <spring:message code="edit"/> </button>
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/basics/sysDictInfo/delete?itType=${itType}')">
<i class="fa fa-trash"></i> <spring:message code="delete"/> </button>

View File

@@ -154,7 +154,7 @@
<label class="col-md-3 control-label"><spring:message code="superior_config"/>:</label>
<div class="col-md-4">
<c:set var="fatherName"><spring:message code="root_node"/></c:set>
<sys:treeselect id="specificServiceCfg" name="parent.specServiceId" value="${specificServiceCfg.parent.specServiceId}" labelName="parent.specServiceName" labelValue="${specificServiceCfg.parent.specServiceName eq 'root_node'?fatherName:fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName}"
<sys:treeselect id="specificServiceCfg" name="parent.specServiceId" value="${specificServiceCfg.parent.specServiceId}" labelName="parent.specServiceName" labelValue="${specificServiceCfg.parent.specServiceId eq '0'?fatherName:fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName}"
title="菜单" url="/specific/specificServiceCfg/treeData" extId="${specificServiceCfg.specServiceId}" cssClass="required form-control"/>
</div>
</div>

View File

@@ -41,23 +41,24 @@
<div class="form-group">
<label class="col-md-3 control-label"><spring:message code="superior_config"/>:</label>
<div class="col-md-4">
<input value="${specificServiceCfg.parent.specServiceId == 0?'根节点':fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName}" maxlength="50" class="form-control" readonly="readonly"/>
<c:set var="fatherName"><spring:message code="root_node"/></c:set>
<input value="${specificServiceCfg.parent.specServiceId == 0?fatherName:fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName}" maxlength="50" class="form-control" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议ID:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="protocol_id" />:</label>
<div class="col-md-4">
<input id="specServiceId" name="specServiceId" maxlength="50" class="form-control" value="${specificServiceCfg.specServiceId}" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议名称:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="protocol_name" />:</label>
<div class="col-md-4">
<form:input path="specServiceName" htmlEscape="false" maxlength="50" class="form-control" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>maat端配置分组id:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="group_id" />:</label>
<div class="col-md-4">
<form:input path="groupId" htmlEscape="false" maxlength="50" class="form-control" readonly="readonly"/>
</div>
@@ -69,13 +70,13 @@
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="operate_time"/>:</label>
<div class="col-md-4">
<input value="<fmt:formatDate value='${specificServiceCfg.opTime}' pattern='yyyy-MM-dd HH:mm:ss'/>" maxlength="50" class="form-control" readonly="readonly" />
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">协议描述:</label>
<label class="col-md-3 control-label"><spring:message code="protocol_desc" />:</label>
<div class="col-md-4">
<form:textarea path="specServiceDesc" htmlEscape="false" maxlength="2000" class="form-control" readonly="readonly"/>
</div>

View File

@@ -46,6 +46,20 @@
alert("<spring:message code='one_more'/>");
}
}
//修改
function cmdEdit(){
var cked = $("tbody tr td input[name='check']:checkbox:checked");
if(cked.length<1){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
if(cked.length>1){
top.$.jBox.tip("<spring:message code='check_one'/>", "<spring:message code='info'/>");
}
if(cked.length==1){
var url=arguments[0];
confirmx("<spring:message code='confirm_message'/>", url+"?specServiceId="+cked.val());
}
}
function casec(){
if($("#intype").attr("name")=="specServiceId"||$("#intype").attr("name")=="groupId"){
if(isNaN($("#intype").val())){
@@ -110,11 +124,12 @@
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/specific/specificServiceCfg/list'"><spring:message code="refresh"></spring:message></button>
<shiro:hasPermission name="specific:service:edit">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/specific/specificServiceCfg/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message><spring:message code="configuration"></spring:message></button>
<spring:message code="add"></spring:message></button>
</shiro:hasPermission>
</div>
@@ -170,7 +185,7 @@
<div class="pull-right">
<shiro:hasPermission name="specific:service:edit">
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/specific/specificServiceCfg/form')">
<button type="button" class="btn btn-default" onclick="cmdEdit('${ctx}/specific/specificServiceCfg/form')">
<i class="fa fa-edit"></i> <spring:message code="edit"/></button>
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/specific/specificServiceCfg/delete')">
<i class="fa fa-trash"></i> <spring:message code="delete"/></button>

View File

@@ -7,7 +7,7 @@
<script type="text/javascript" src="${ctxStatic}/pages/scripts/dict.js"></script>
<title></title>
<script type="text/javascript">
function sjfdsj(){
function selectP(){
$("label[for='specServiceId']").hide();
}
$(document).ready(function() {
@@ -15,30 +15,22 @@ function sjfdsj(){
$("select[name='ipType']").on("change",function(){
var type=$(this).val();
if(4==type){
$("input[name='srcIpMask']").attr("placeholder","任意ip掩码请填 0.0.0.0");
$("input[name='dstIpMask']").attr("placeholder","任意ip掩码请填 0.0.0.0");
//$("input[name='srcIp']").attr("placeholder","任意ip请填 0.0.0.0");
//$("input[name='dstIp']").attr("placeholder","任意ip请填 0.0.0.0");
$("input[name='srcIpMask']").attr("title","任意掩码请填 0.0.0.0");
$("input[name='dstIpMask']").attr("title","任意掩码请填 0.0.0.0");
//$("input[name='srcIp']").attr("title","任意ip请填 0.0.0.0");
//$("input[name='dstIp']").attr("title","任意ip请填 0.0.0.0");
$("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");
}
if(6==type){
$("input[name='srcIpMask']").attr("placeholder","任意ip掩码请填 ::");
$("input[name='dstIpMask']").attr("placeholder","任意ip掩码请填 ::");
//$("input[name='srcIp']").attr("placeholder","任意ip请填 0.0.0.0");
//$("input[name='dstIp']").attr("placeholder","任意ip请填 0.0.0.0");
$("input[name='srcIpMask']").attr("title","任意ip掩码请填 ::");
$("input[name='dstIpMask']").attr("title","任意ip掩码请填 ::");
//$("input[name='srcIp']").attr("title","任意ip请填 0.0.0.0");
//$("input[name='dstIp']").attr("title","任意ip请填 0.0.0.0");
$("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'/> : \"::\"");
}
});
//specServiceId校验
//specServiceId校验,处理校验不能及时显示
jQuery.validator.addMethod("specServiceIdSelected",function(value, element) {
var selectedValue=$(".filter-option").text();
if(selectedValue=="--请选择协议名称--"){
if(selectedValue=="<spring:message code='select' />"){
return false;
}else{
return true;
@@ -74,14 +66,14 @@ function sjfdsj(){
}, "请填写正确的IP地址掩码");
//掩码校验超过两位不得以0开头
jQuery.validator.addMethod("notStartZero",function(value, element) {
if(value.length>1){
if(value.length>1&value.length<6){
var str = value.substr(0,1);
if(str == '0'){
return false;
}
}
return true;
}, "请填写正确的数值");
return true;
}, "请填写正确的数值");
$("#name").focus();
$("#inputForm")
.validate(
@@ -111,28 +103,28 @@ function sjfdsj(){
srcPort:{
required:true,
digits:true,
notStartZero:true,
max: 65535,
min: 0
min: 0,
notStartZero:true
},
dstPort:{
required:true,
digits:true,
notStartZero:true,
max: 65535,
min: 0
min: 0,
notStartZero:true
},
srcPortMask:{
digits:true,
notStartZero:true,
max: 65535,
min: 0
min: 0,
notStartZero:true
},
dstPortMask:{
digits:true,
notStartZero:true,
max: 65535,
min: 0
min: 0,
notStartZero:true
}
},
messages : {
@@ -146,42 +138,42 @@ function sjfdsj(){
required:'<spring:message code="required"/>'
},
srcIp:{
ip:'请填写正确的ip'
ip:'<spring:message code="enter_error"/>'
},
dstIp:{
ip:'请填写正确的ip'
ip:'<spring:message code="enter_error"/>'
},
srcIpMask:{
ipMask:'请填写正确的ip掩码'
ipMask:'<spring:message code="enter_error"/>'
},
dstIpMask:{
ipMask:'请填写正确的ip掩码'
ipMask:'<spring:message code="enter_error"/>'
},
srcPort:{
required:'<spring:message code="required"/>',
digits:'请填写整数',
notStartZero:'请填写正确的数值',
max: '数值不得大于65535',
min: '数值不得小于0'
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"/>'
},
dstPort:{
required:'<spring:message code="required"/>',
digits:'请填写整数',
notStartZero:'请填写正确的数值',
max: '数值不得大于65535',
min: '数值不得小于0'
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"/>'
},
srcPortMask:{
digits:'请填写整数',
notStartZero:'请填写正确的数值',
max: '数值不得大于65535',
min: '数值不得小于0'
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"/>'
},
dstPortMask:{
digits:'请填写整数',
notStartZero:'请填写正确的数值',
max: '数值不得大于65535',
min: '数值不得小于0'
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"/>'
}
},
@@ -253,9 +245,9 @@ function sjfdsj(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议名称:</label>
<c:set var="spec_service_id">--请选择协议名称--</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="sjfdsj()">
<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()">
<c:forEach items="${listSpecService}" var="specService" >
<form:option value="${specService.specServiceId}">${specService.specServiceName}</form:option>
</c:forEach>
@@ -269,12 +261,12 @@ function sjfdsj(){
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">方向:</label>
<label class="col-md-3 control-label"><spring:message code='direction' />:</label>
<div class="col-md-6">
<form:select path="direction" class="select2 form-control" >
<form:option value="">-请选择方向-</form:option>
<form:option value=""><spring:message code='select' /></form:option>
<c:forEach items="${fns:getDictList('SPEC_DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}' /></form:option>
</c:forEach>
</form:select>
</div>
@@ -285,12 +277,12 @@ function sjfdsj(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='protocol' />:</label>
<div class="col-md-6">
<form:select path="protocol" class="select2 form-control" >
<form:option value="">-请选择协议-</form:option>
<form:option value=""><spring:message code='select' /></form:option>
<c:forEach items="${fns:getDictList('SPEC_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}' /></form:option>
</c:forEach>
</form:select>
</div>
@@ -298,12 +290,12 @@ function sjfdsj(){
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>ip类型:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='ip_type' />:</label>
<div class="col-md-6">
<form:select path="ipType" class="select2 form-control" >
<form:option value="">-请选择ip类型-</form:option>
<form:option value=""><spring:message code='select' /></form:option>
<c:forEach items="${fns:getDictList('SPEC_IP_TYPE')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}' /></form:option>
</c:forEach>
</form:select>
</div>
@@ -313,21 +305,22 @@ function sjfdsj(){
</div>
</div>
</div>
<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>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">源IP地址:</label>
<label class="col-md-3 control-label"><spring:message code='client_ip' />:</label>
<div class="col-md-6">
<form:input path="srcIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意ip请填 0.0.0.0" placeholder="任意ip请填 0.0.0.0"/>
<form:input path="srcIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryValue}" placeholder="${arbitraryValue}"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">目的IP地址:</label>
<label class="col-md-3 control-label"><spring:message code='server_ip' />:</label>
<div class="col-md-6">
<form:input path="dstIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意ip请填 0.0.0.0" placeholder="任意ip请填 0.0.0.0"/>
<form:input path="dstIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryValue}" placeholder="${arbitraryValue}"/>
</div>
</div>
</div>
@@ -336,17 +329,17 @@ function sjfdsj(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">源地址掩码:</label>
<label class="col-md-3 control-label"><spring:message code='client_address_mask' />:</label>
<div class="col-md-6">
<form:input path="srcIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" title="任意ip掩码请填 0.0.0.0" data-placement="top" placeholder="任意ip掩码请填 0.0.0.0"/>
<form:input path="srcIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" title="${arbitraryValue}" data-placement="top" placeholder="${arbitraryValue}"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">目的地址掩码:</label>
<label class="col-md-3 control-label"><spring:message code='server_address_mask' />:</label>
<div class="col-md-6">
<form:input path="dstIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意ip掩码请填 0.0.0.0" placeholder="任意ip掩码请填 0.0.0.0"/>
<form:input path="dstIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryValue}" placeholder="${arbitraryValue}"/>
</div>
</div>
</div>
@@ -355,17 +348,17 @@ function sjfdsj(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>源端口:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='client_port' />:</label>
<div class="col-md-6">
<form:input path="srcPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意端口请填0" placeholder="任意端口请填0"/>
<form:input path="srcPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>目的端口:</label>
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code='server_port' />:</label>
<div class="col-md-6">
<form:input path="dstPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意端口请填0" placeholder="任意端口请填0"/>
<form:input path="dstPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
</div>
</div>
</div>
@@ -373,17 +366,17 @@ function sjfdsj(){
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">源端口掩码:</label>
<label class="col-md-3 control-label"><spring:message code='client_port_mask' />:</label>
<div class="col-md-6">
<form:input path="srcPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意掩码请填0" placeholder="任意掩码请填0"/>
<form:input path="srcPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label">目的端口掩码:</label>
<label class="col-md-3 control-label"><spring:message code='server_port_mask' />:</label>
<div class="col-md-6">
<form:input path="dstPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意掩码请填0" placeholder="任意掩码请填0"/>
<form:input path="dstPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="${arbitraryPort}" placeholder="${arbitraryPort}"/>
</div>
</div>
</div>

View File

@@ -48,18 +48,18 @@
$("#dstIp").attr("value","");
}
//编辑
function edit(){
var mulitId="";
jQuery("#contentTable").find(":checkbox:checked[name='check']").each(function(){
if(jQuery(this).val()!=""){
mulitId+=jQuery(this).val()+",";
}
});
if(mulitId!=""){
confirmx('您确认要执行该操作?', '${ctx}/specific/specificServiceHostCfg/form?hostId='+mulitId.split(",", 1)[0]);
}else{
alert("至少选择一条数据记录");
//修改
function cmdEdit(){
var cked = $("tbody tr td input[name='check']:checkbox:checked");
if(cked.length<1){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
if(cked.length>1){
top.$.jBox.tip("<spring:message code='check_one'/>", "<spring:message code='info'/>");
}
if(cked.length==1){
var url=arguments[0];
confirmx("<spring:message code='confirm_message'/>", url+"?hostId="+cked.val());
}
}
//删除
@@ -71,9 +71,9 @@
}
});
if(mulitId!=""){
confirmx('您确认要执行该操作?', '${ctx}/specific/specificServiceHostCfg/delete?mulitId='+mulitId);
confirmx("<spring:message code='confirm_message'/>", '${ctx}/specific/specificServiceHostCfg/delete?mulitId='+mulitId);
}else{
alert("至少选择一条数据记录");
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
}
}
//查询
@@ -91,10 +91,13 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/specific/specificServiceHostCfg/list'"><spring:message code="refresh"></spring:message></button>
<shiro:hasPermission name="specific:serviceIp:edit">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/specific/specificServiceHostCfg/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"/></button>
</shiro:hasPermission>
</div>
<h3 class="page-title">
@@ -120,16 +123,8 @@
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<%-- <div class="pull-left">
<form:select path="isAudit" class="selectpicker select2 input-small" >
<form:option value=""><spring:message code="all_states"/></form:option>
<c:forEach items="${fns:getDictList('SPEC_AUDIT')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div> --%>
<div class="pull-left">
<c:set var="spec_service_id">请选择协议名称</c:set>
<c:set var="spec_service_id"><spring:message code="protocol_name"/></c:set>
<form:select path="specServiceId" class="selectpicker select2 input-small" title="${spec_service_id}" data-live-search="true" data-live-search-placeholder="search" onchange="page()">
<c:forEach items="${listSpecService}" var="specService" >
<form:option value="${specService.specServiceId}">${specService.specServiceName}</form:option>
@@ -138,100 +133,42 @@
</div>
<div class="pull-left" style="margin-right:0px;">
<form:select path="ipType" class="selectpicker select2 input-small" >
<form:option value="">-请选择ip类型-</form:option>
<form:option value=""><spring:message code="ip_type"/></form:option>
<c:forEach items="${fns:getDictList('SPEC_IP_TYPE')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<form:input path="srcIp" placeholder="请输入源IP地址" class="form-control input-small"/>
<c:set var = "condition_srcIp"><spring:message code="client_ip" /></c:set>
<form:input path="srcIp" placeholder="${condition_srcIp}" class="form-control input-small"/>
</div>
<div class="pull-left">
<form:input path="dstIp" placeholder="请输入目的IP地址" class="form-control input-small"/>
<c:set var = "condition_dstIp"><spring:message code="server_ip" /></c:set>
<form:input path="dstIp" placeholder="${condition_dstIp}" class="form-control input-small"/>
</div>
<%-- <div class="pull-left">
<form:select path="direction" class="selectpicker select2 input-small">
<form:option value="">-请选择方向-</form:option>
<c:forEach items="${fns:getDictList('SPEC_DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div> --%>
<div class="pull-left" style="margin-right:0px;">
<form:select path="protocol" class="selectpicker select2 input-small" >
<form:option value="">-请选择协议-</form:option>
<form:option value=""><spring:message code="protocol"/></form:option>
<c:forEach items="${fns:getDictList('SPEC_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
<%-- <div class="pull-left">
<button type="button" class="btn btn-default" onClick="resetx()"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button class="btn btn-default btn-search" type="button" onclick="return page()"><i class="fa fa-search"></i></button>
</div> --%>
<%-- <div class="pull-left" >
<form:select path="protocol" class="selectpicker select2 input-small" >
<form:option value="">所有协议</form:option>
<c:forEach items="${fns:getDictList('SPEC_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<form:select path="direction" class="selectpicker select2 input-small" >
<form:option value="">所有方向</form:option>
<c:forEach items="${fns:getDictList('SPEC_DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<form:select path="" class="selectpicker select2 input-small" >
<form:option value="srcIp">协议ID</form:option>
<form:option value="srcIp"><spring:message code="client_ip"></spring:message></form:option>
<form:option value="dstIp"><spring:message code="server_ip"></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="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" onClick="resetx()"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
<button type="button" class="btn btn-default" id="filter-btn"> 筛选 <i class="fa fa-angle-double-down"></i></button>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<button type="button" class="btn btn-default" onclick="edit()">
<shiro:hasPermission name="specific:serviceIp:edit">
<button type="button" class="btn btn-default" onclick="cmdEdit('${ctx}/specific/specificServiceHostCfg/form')">
<i class="fa fa-edit"></i> <spring:message code="edit"></spring:message></button>
<button type="button" class="btn btn-default" onclick="delAll()">
<i class="fa fa-trash"></i> 删除</button>
<%-- <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>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right">
<li><sys:delRow url="" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div> --%>
<i class="fa fa-trash"></i><spring:message code="delete"/></button>
</shiro:hasPermission>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title="自定义列字段" href="javascript:;">
data-container="body" data-placement="top" data-original-title="<spring:message code='custom_columns'/>" href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
@@ -321,24 +258,24 @@
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th>协议名称</th>
<th>源IP地址</th>
<th>源地址掩码</th>
<th>源端口</th>
<th>源端口掩码</th>
<th>目的IP地址</th>
<th>目的地址掩码</th>
<th>目的端口</th>
<th>目的端口掩码</th>
<th>方向</th>
<th>协议</th>
<th>是否审核</th>
<th>创建人员</th>
<th class="sort-column create_time">配置时间</th>
<th>修改人员</th>
<th class="sort-column edit_time">修改时间</th>
<th isVisible="false">审核人员</th>
<th isVisible="false" class="sort-column audit_time">审核时间</th>
<th><spring:message code="protocol_name" /></th>
<th><spring:message code="client_ip" /></th>
<th><spring:message code="client_address_mask" /></th>
<th><spring:message code="client_port" /></th>
<th><spring:message code="client_port_mask" /></th>
<th><spring:message code="server_ip" /></th>
<th><spring:message code="server_address_mask" /></th>
<th><spring:message code="server_port" /></th>
<th><spring:message code="server_port_mask" /></th>
<th><spring:message code="direction" /></th>
<th><spring:message code="protocol" /></th>
<th><spring:message code="is_audit" /></th>
<th><spring:message code="creator" /></th>
<th class="sort-column create_time"><spring:message code="config_time" /></th>
<th><spring:message code="editor" /></th>
<th class="sort-column edit_time"><spring:message code="edit_time" /></th>
<th isVisible="false"><spring:message code="auditor" /></th>
<th isVisible="false" class="sort-column audit_time"><spring:message code="audit_time" /></th>
</tr>
</thead>
<tbody>
@@ -354,9 +291,9 @@
<td title="${specificServiceHostCfg.dstIpMask}">${fns:abbr(specificServiceHostCfg.dstIpMask,15) }</td>
<td>${specificServiceHostCfg.dstPort }</td>
<td>${specificServiceHostCfg.dstPortMask }</td>
<td>${fns:getDictLabel("SPEC_DIRECTION",specificServiceHostCfg.direction,"0")}</td>
<td>${fns:getDictLabel("SPEC_PROTOCOL",specificServiceHostCfg.protocol,"0")}</td>
<td>${fns:getDictLabel("SPEC_AUDIT",specificServiceHostCfg.isAudit,"0")}</td>
<td><spring:message code='${fns:getDictLabel("SPEC_DIRECTION",specificServiceHostCfg.direction,"0")}' /></td>
<td><spring:message code='${fns:getDictLabel("SPEC_PROTOCOL",specificServiceHostCfg.protocol,"0")}' /></td>
<td><spring:message code='${fns:getDictLabel("SPEC_AUDIT",specificServiceHostCfg.isAudit,"0")}' /></td>
<td>${fns:getUserById(specificServiceHostCfg.creator.id).name}</td>
<td><fmt:formatDate value="${specificServiceHostCfg.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${fns:getUserById(specificServiceHostCfg.editor.id).name}</td>