into develop

Conflicts:
	src/main/java/com/nis/domain/configuration/CfgIndexInfo.java
	src/main/resources/nis.properties
	src/main/webapp/WEB-INF/tags/sys/delRow.tag
	
	asn相关功能更改:
	IP ADDR:增加asn域
	1、新增IP
ADDR可选asn,如果asn未下发过(is_used=0),下发时asn的group需要标记为commonGroup(groupId为asn组织的groupId,regionId为asn的regionId)。
	2、如果所选的asn组(asn组织的groupId)已经下发过(is_used=1),则下发maat时,asn域不需要下发。
	3、策略取消时,如果有需要保留的公共组(commongRroupIds),需要将公共组的组号下发。
	ASN GROUP:
	1、新增asn,如果此asn的组织groupId已下发过(is_used=1),且此组织的groupId已被策略标记过全选(is_audit_all=1),则需要调用公共组域新增的接口,将新增的asn关键字下发。
	2、修改asn,如果此asn的组织groupId已下发过(is_used=1),则需要调用公共组域修改的接口,修改已经下发的asn关键字域。
	3、删除asn,如果此asn的组织groupId已下发过(is_used=1),则需要调用公共组域删除的接口,删除已经下发的asn关键字域。
	ASN IP CFG:
	1、新增asn ip,所选asn no的组首次下发(is_valid=0),需要将asn no的groupId标记为公共组;如果asn
no非首次下发(is_valid=1),直接调用公共组新增域的接口。
	2、修改
		生效状态asn ip修改,调用公共组修改域接口直接修改
	3、失效
		直接调用公共组删除域接口,失效asn ip域
This commit is contained in:
duandongmei
2019-01-16 14:33:29 +06:00
174 changed files with 7535 additions and 723 deletions

View File

@@ -47,7 +47,20 @@
<c:if test="${serviceIndex eq 0}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<spring:message code="${dict.itemValue }"/>
<c:if test="${service.functionId eq 200 }">
<c:if test="${service.action eq 1 }">
<spring:message code="intercept"/>
</c:if>
<c:if test="${service.action eq 128 }">
<spring:message code="bypass"/>
</c:if>
<c:if test="${service.action ne 1 && service.action ne 128}">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:if>
<c:if test="${service.functionId ne 200 }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:if>
</c:forEach>
</label>

View File

@@ -119,7 +119,7 @@ function update(url){
}/* else if(cked.val()==3){
top.$.jBox.tip("<spring:message code='cancel_approved'/>", "<spring:message code='info'/>");
return;
} */
} */
//处理asnIp,asn组下发过的ip配置不允许修改
if(cked.attr("asnGroup")&&cked.attr("isValid")){
var asnGroup=cked.attr("asnGroup");
@@ -373,6 +373,7 @@ function cancelPassOpt(url){
function validateAllNoAudit(checkboxes){
var flag = false;
$(checkboxes).filter(":checked").each(function(){
//alert($(this).val());
if($(this).val()!=0){
flag = true;
return;
@@ -392,6 +393,18 @@ function cancelPassOpt(url){
});
return flag;
}
//验证是否可删除
function validateIsDelete(checkboxes){
var flag = false;
$(checkboxes).filter(":checked").each(function(){
//alert($(this).val());
if($(this).val()!=0 && $(this).val()!=3){//状态为3的配置为取消审核的配置可删除
flag = true;
return;
}
});
return flag;
}
//验证选择的配置,是否有审核通过的
function validatePass(checkboxes){
var flag = false;

View File

@@ -95,8 +95,11 @@ $(function(){
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/basics/asn/update" method="post" class="form-horizontal">
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="regionId" value="${_cfg.regionId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" name="isValid" value="${_cfg.isValid}">
<input type="hidden" name="isAudit" value="${_cfg.isAudit}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
<input type="hidden" id="isAreaEffective" name="isAreaEffective" value="0">
<input type="hidden" id="requestId" name="requestId" value="${_cfg.requestId}">
@@ -135,7 +138,7 @@ $(function(){
<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 asnMustExists" type="text" name="userRegion1" value="${_cfg.userRegion1}" ctx="${ctx}">
<input class="form-control required digits asnMustExists" type="text" name="userRegion1" value="${_cfg.userRegion1}" ctx="${ctx}" <c:if test="${_cfg.isAudit eq 1}">readonly="readonly"</c:if>/>
</div>
<div for="userRegion1"></div>
</div>

View File

@@ -0,0 +1,490 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title></title>
</head>
<%-- <c:forEach items="${regionList}" var="regionDistrict">
<c:if
test="${cfg.functionId eq regionDistrict.functionId
and regionDistrict.regionType eq 3
and regionValue eq regionDistrict.configRegionValue}"> --%>
<!-- regionDistrict.regionType==3表示增强字符串类配置 -->
<input type="hidden" name="${cfgName}.cfgType" value="${region.configRegionValue }">
<input type="hidden" name="${cfgName}.cfgRegionCode" serviceType="${region.configServiceType }" value="${region.configRegionCode }">
<input type="hidden" name="${cfgName}.configMultiKeywords" value="${region.configMultiKeywords }">
<input type="hidden" name="${cfgName}.configServiceType" value="${region.configServiceType }">
<input type="hidden" name="${cfgName}.configHex" value="${region.configHex }">
<%-- </c:if>
</c:forEach> --%>
<div class="row">
<div class="pull-right">
<span class="glyphicon glyphicon-remove pull-right" title="remove"
onClick="delContent('${tabName}${status.index}','${tabName}Add');" />
</div>
</div>
<br>
<c:if test="${!empty region.configDistrict }">
<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="district" /></label>
<div class="col-md-6">
<select name="${cfgName}.district"
class="selectpicker show-tick form-control required district" onchange="changeDistrict($(this))">
<c:forEach items="${fn:split(region.configDistrict,',')}"
var="_district">
<option value="${_district }"
<c:if test="${cfg.district==_district}">selected</c:if>>${_district }</option>
</c:forEach>
</select>
<input type="hidden" name="${cfgName}.districtShowName" maxlength="64" placeholder="<spring:message code='please_input'/> <spring:message code='custom_region'/>" class="otherValue form-control invisibleChar" value="${cfg.district}"/>
</div>
<div for="${cfgName}.districtShowName"></div>
<div for="${cfgName}.district"></div>
</div>
</div>
</div>
</c:if>
<div class="row keywords">
<c:if test="${isP2pHashCfg}">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="p2p_hash_type"/></label>
<div class="col-md-6">
<select name="userRegion1" class="selectpicker show-tick form-control">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('P2P_HASH_TYPE')}" var="hashType">
<option value="${hashType.itemCode}" <c:if test="${_cfg.userRegion1==hashType.itemCode}">selected</c:if> ><spring:message code="${hashType.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="userRegion1"></div>
</div>
</div>
</c:if>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<c:choose>
<c:when test="${fn:containsIgnoreCase(region.configServiceType,'domain') }">
<spring:message code="domain" />
</c:when>
<c:when test="${fn:containsIgnoreCase(region.configServiceType,'url') }">
<spring:message code="URL" />
</c:when>
<c:otherwise>
<spring:message code="keywords" />
</c:otherwise>
</c:choose>
</label>
<!-- 此配置的关键词可以输入多个关键词 -->
<c:if test="${region.configMultiKeywords eq 1}">
<div class="col-md-6">
<input class="form-control required tags" type="text" id="tags_${tabName}${status.index}"
name="${cfgName}.cfgKeywords"
value="${cfg.cfgKeywords}">
</div>
</c:if>
<!-- 此配置的关键词不允许输入多个关键词 -->
<c:if test="${(region.configMultiKeywords eq 0) or (empty region.configMultiKeywords)}">
<div class="col-md-6">
<input class="form-control required invisibleChar
<c:if test="${fn:containsIgnoreCase(region.configServiceType,'domain') }"> domainCheck </c:if>
"
type="text"
name="${cfgName}.cfgKeywords"
value="${cfg.cfgKeywords}">
</div>
</c:if>
<div for="${cfgName}.cfgKeywords"></div>
</div>
</div>
<c:if test="${serviceId eq 1025}">
<div class="col-md-6 offsetFeature hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="offset" /></label>
<div class="col-md-6">
<input class="form-control required digest" type="text" max="1460"
name="${cfgName}.payloadOffset"
value="${cfg.payloadOffset}">
</div>
<div for="${cfgName}.payloadOffset"></div>
</div>
</div>
</c:if>
<!-- 域名拦截增加拦截强度 -->
<c:if test="${_cfg.functionId eq 200}">
<div class="col-md-6 hidden intensity">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="intercept_intensity" />
</label>
<div class="col-md-6">
<select name="userRegion5"
class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('INTERCEPT_DOMAIN_INTENSITY')}" var="intensityC">
<option value="${intensityC.itemCode}" <c:if test="${_cfg.userRegion5==intensityC.itemCode || (empty _cfg.userRegion5 && intensityC.itemCode eq 1)}">selected</c:if>><spring:message code="${intensityC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="userRegion5"></div>
</div>
</div>
</c:if>
</div>
<c:if test="${serviceId eq 1025}">
<%-- <div class="row col-md-6 offsetFeature hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="offset" /></label>
<div class="col-md-6">
<input class="form-control required digest" type="text" max="1460"
name="${cfgName}.payloadOffset"
value="${cfg.payloadOffset}">
</div>
<div for="${cfgName}.payloadOffset"></div>
</div>
</div> --%>
<%-- <div class="row offsetFeature hidden">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="keywords" /></label>
<div class="col-md-6">
<input class="form-control required" type="text"
name="${cfgName}.cfgKeywords"
value="${cfg.cfgKeywords}">
</div>
<div for="${cfgName}.cfgKeywords"></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="offset" /></label>
<div class="col-md-6">
<input class="form-control required digest" type="text" maxlength="1460"
name="${cfgName}.payloadOffset"
value="${cfg.payloadOffset}">
</div>
<div for="${cfgName}.payloadOffset"></div>
</div>
</div>
</div> --%>
<div class="l3_header_tips"></div>
<div class="row L3_header">
<input class="form-control headerType" type="hidden" name="${cfgName}.headerType" value="${cfg.headerType}">
</div>
<%-- <div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="VER" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="4" maxlength="4" type="text" name="${cfgName}.ver" value="${cfg.ver}">
</div>
<div for="${cfgName}.ver"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="IHL" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="4" maxlength="4" type="text" name="${cfgName}.ihl" value="${cfg.ihl}">
</div>
<div for="${cfgName}.ihl"></div>
</div>
</div>
</div> --%>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="TOS" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="2" maxlength="2" type="text" name="${cfgName}.tos" value="${cfg.tos}">
</div>
<div for="${cfgName}.tos"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="Total Length" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="4" maxlength="4" type="text" name="${cfgName}.totalLength" value="${cfg.totalLength}">
</div>
<div for="${cfgName}.totalLength"></div>
</div>
</div>
</div>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="Protocol" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="2" maxlength="2" type="text" name="${cfgName}.protocol" value="${cfg.protocol}">
</div>
<div for="${cfgName}.protocol"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="client_ip" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.fragmentOffset" value="${cfg.fragmentOffset}">
</div>
<div for="${cfgName}.fragmentOffset"></div>
</div>
</div>
</div>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="server_ip" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.flags" value="${cfg.flags}">
</div>
<div for="${cfgName}.flags"></div>
</div>
</div>
</div>
<div class="row ICMP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="ICMP type" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="2" maxlength="2" type="text" name="${cfgName}.icmpType" value="${cfg.icmpType}">
</div>
<div for="${cfgName}.icmpType"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="ICMP code" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="2" maxlength="2" type="text" name="${cfgName}.icmpCode" value="${cfg.icmpCode}">
</div>
<div for="${cfgName}.icmpCode"></div>
</div>
</div>
</div>
<div class="row ICMP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="ICMP identifier" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="4" maxlength="32" type="text" name="${cfgName}.icmpIdentifier" value="${cfg.icmpIdentifier}">
</div>
<div for="${cfgName}.icmpIdentifier"></div>
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-6 exprType">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="expression_type" /></label>
<div class="col-md-6">
<c:if test="${!empty region.configExprType}">
<c:forEach var="exprType" items="${fn:split(region.configExprType,',')}" varStatus="stat" >
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC" >
<c:if test="${exprTypeC.itemCode eq exprType}">
<label class="radio-inline">
<input type="radio"
name="${cfgName}.exprType" value="${exprType }"
class="required"
<%-- <c:if test="${stat.index == 0 }"> checked </c:if> --%>
<c:if test="${cfg.exprType eq exprType || (empty cfg.exprType && exprType eq 0)}">
checked
</c:if>
>
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configExprType}">
<c:forEach items="${fns:getDictList('EXPRESSION_TYPE')}" var="exprTypeC">
<c:if test="${exprTypeC.itemCode eq 0}">
<label class="radio-inline">
<input type="radio"
name="${cfgName}.exprType" value="${exprTypeC.itemCode }"
class="required" checked >
<spring:message code="${exprTypeC.itemValue }" />
</label>
</c:if>
</c:forEach>
</c:if>
</div>
<div for="${cfgName}.exprType"></div>
</div>
</div>
<div class="col-md-6 matchMethod">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="match_method" /></label>
<div class="col-md-6">
<select name="${cfgName}.matchMethod"
class="selectpicker select2 form-control required ">
<c:if test="${!empty region.configMatchMethod}">
<c:forEach var="matchMethod" items="${fn:split(region.configMatchMethod,',')}">
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">
<c:if test="${matchMethodC.itemCode eq matchMethod}">
<option value="${matchMethodC.itemCode}"
<c:if test="${cfg.matchMethod eq matchMethod || (empty cfg.matchMethod && matchMethod eq 0)}">
selected
</c:if>
>
<spring:message code="${matchMethodC.itemValue}"/>
</option>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configMatchMethod}">
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">
<c:if test="${matchMethodC.itemCode eq 0}">
<option value="${matchMethodC.itemCode}"
selected
>
<spring:message code="${matchMethodC.itemValue}"/>
</option>
</c:if>
</c:forEach>
</c:if>
</select>
</div>
<div for="${cfgName}.matchMethod"></div>
</div>
</div>
</div>
<div class="row <c:if test="${fn:length(fn:split(region.configHex,',')) ==1}">hidden</c:if>">
<c:if test="${!empty region.configHex}">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_hex"/></label>
<div class="col-md-6">
<!-- isP2pHashCfg: P2PHash配置只能是十六进制字符 -->
<label class="radio-inline">
<input type="radio" name="${cfgName}.isHex" value="1" class="required"
><spring:message code="hex"/>
</label>
<label class="radio-inline">
<input type="radio" name="${cfgName}.isHex" value="0" class="required"
><spring:message code="not_hex"/>
</label>
</div>
<div for="${cfgName}.isHex"></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="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="${cfgName}.isCaseSenstive" value="1" class="required"
><spring:message code="case_senstive"/>
</label>
<label class="radio-inline">
<input type="radio" name="${cfgName}.isCaseSenstive" value="0" class="required"
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="${cfgName}.isCaseInsenstive"></div>
</div>
</div>
</c:if>
<c:if test="${empty region.configHex}">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="is_hex"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="${cfgName}.isHex" value="0" class="required" checked
><spring:message code="not_hex"/>
</label>
</div>
<div for="${cfgName}.isHex"></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="is_case_insenstive"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="${cfgName}.isCaseSenstive" value="0" class="required"
checked
><spring:message code="case_insenstive"/>
</label>
</div>
<div for="${cfgName}.isCaseInsenstive"></div>
</div>
</div>
</c:if>
</div>
<div class="row hidden">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="whether_hexbinary" /></label>
<div class="col-md-6">
<select name="${cfgName}.isHexbin"
class="selectpicker select2 form-control required">
<c:if test="${!empty region.configHex}">
<c:forEach var="isHexbin" items="${fn:split(region.configHex,',')}">
<c:forEach items="${fns:getDictList('WHETHER_HEXBINARY')}" var="isHexbinC">
<c:if test="${isHexbinC.itemCode eq isHexbin}">
<option value="${isHexbinC.itemCode}"
<c:if test="${cfg.isHexbin eq isHexbin || (empty isHexbin && isHexbin eq 0)}">
selected
</c:if>
>
<spring:message code="${isHexbinC.itemValue}"/>
</option>
</c:if>
</c:forEach>
</c:forEach>
</c:if>
<c:if test="${empty region.configHex}">
<c:forEach items="${fns:getDictList('WHETHER_HEXBINARY')}" var="isHexbinC">
<c:if test="${isHexbinC.itemCode eq 0}">
<option value="${isHexbinC.itemCode}" selected >
<spring:message code="${isHexbinC.itemValue}"/>
</option>
</c:if>
</c:forEach>
</c:if>
</select>
</div>
<div for="${cfgName}.isHexbin"></div>
</div>
</div>
</div>
</html>
<script type="text/javascript">
function changeDistrict(obj){
if("others"==obj.val()){
obj.parent().siblings(".otherValue").prop("type","text");
}else{
obj.parent().siblings(".otherValue").prop("type","hidden");
}
}
</script>

View File

@@ -228,6 +228,7 @@ $(function(){
</div>
</div>
</div>
<div class="row hidden">
<div class="col-md-6">
<div class="form-group">
@@ -237,10 +238,11 @@ $(function(){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
regionCode="${service.regionCode}"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">

View File

@@ -9,9 +9,9 @@ $(function(){
$("#serviceId").val($(this).attr("serviceId"));
});
$(".district").on("change", function() {
if($(this).val()=='L3_header'){
if($(this).val()=='L3_header_IP'||$(this).val()=='L3_header_ICMP'){
$(this).parents(".boxSolid").find(".keywords").addClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").removeClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").find("input[name$='headerType']").val($(this).val());
$(this).parents(".boxSolid").find(".matchMethod").addClass("hidden");
$(this).parents(".boxSolid").find(".exprType").addClass("hidden");
$(this).parents(".boxSolid").find("input:radio[name$='isHex'][value=1]").prop("checked",true);
@@ -21,7 +21,7 @@ $(function(){
$(this).parents(".boxSolid").find(".headerType").change();
}else{
$(this).parents(".boxSolid").find(".keywords").removeClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").addClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").find("input[name$='headerType']").val("");
$(this).parents(".boxSolid").find(".matchMethod").removeClass("hidden");
$(this).parents(".boxSolid").find(".exprType").removeClass("hidden");
$(this).parents(".boxSolid").find(".IP_header").addClass("hidden");
@@ -32,7 +32,7 @@ $(function(){
});
$(".headerType").on("change", function() {
if($(this).val()=='IP_header'){
if($(this).val()=='L3_header_IP'){
$(this).parents(".boxSolid").find(".ICMP_header").addClass("hidden");
$(this).parents(".boxSolid").find(".IP_header").removeClass("hidden");
}else{
@@ -40,10 +40,24 @@ $(function(){
$(this).parents(".boxSolid").find(".ICMP_header").removeClass("hidden");
}
});
$("input:radio[name$='exprType']").on("change",function(){
var exprType = $(this).val();
changeKeywordFormate(exprType,$(this));
});
$(".boxSolid:visible").find(".district").each(function(){
$(this).change();
});
$("#serviceId").val($(".action:checked").attr("serviceId"));
if($("#serviceId").val()==1025 && $("#cfgId").val()!=null){
$("input:radio[name$='exprType']").each(function(){
if($(this).attr("checked") && $(this).val()==3){
changeKeywordFormate($(this).val(),$(this));
}
});
}
$("#cfgFrom").validate({
errorPlacement: function(error,element){
if($(element).parents().hasClass("tagsinput")){
@@ -60,10 +74,9 @@ $(function(){
return;
}
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
var length = 0;
$(this).parents(".boxSolid").find(".l3_header_prop").each(function(){
$(this).parents(".boxSolid").find(".l3_header_prop:visible").each(function(){
if($(this).val()!=''){
length += 1;
}
@@ -82,7 +95,7 @@ $(function(){
}else{
var length = 0;
$(this).parents(".boxSolid").find(".l3_header_prop").each(function(){
$(this).parents(".boxSolid").find(".l3_header_prop:visible").each(function(){
if($(this).val()!=''){
length += 1;
}
@@ -139,7 +152,13 @@ $(function(){
$(".disabled").each(function(){
$(this).remove();
});
$("input[name$='exprType']").attr("disabled",false);
if($("input[name$='exprType']").attr("disabled")){
$("input[name$='exprType']").attr("disabled",false);
}
/* $(".boxSolid:visible").each(function(){
alert($(this).find("select[name$='matchMethod'] option[selected]").val());
}) */
$("#appCode").val($("#specServiceIdId").val());
loading('onloading...');
form.submit();
@@ -172,6 +191,36 @@ var delContent = function(contentClassName, addBtnClassName) {
}); */
$("." + addBtnClassName).removeClass("hidden");
}
function changeKeywordFormate(exprType,obj){
if(exprType==3){
var keywordObj = $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']");
if($(keywordObj).val().indexOf("***and***")>0){
$(keywordObj).val($(keywordObj).val().split('***and***').join(''));
}
if($(keywordObj).val().indexOf(":")>0){
$(keywordObj).val($(keywordObj).val().substr($(keywordObj).val().indexOf(":")+1));
}
//$(this).parents(".boxSolid").find(".keywords").addClass("hidden");
//$(this).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").attr("id").replace("tags","multipKeywords");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").css("display","block");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").addClass("hexCheck");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").next("div").addClass("hidden");
$(obj).parents(".boxSolid").find(".offsetFeature").removeClass("hidden");
$(obj).parents(".boxSolid").find("input:radio[name$='isHex'][value=1]").prop("checked",true);
$(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive'][value=0]").prop("checked",true);
$(obj).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",true);
$(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",true);
}else{
//$(this).parents(".boxSolid").find(".keywords").removeClass("hidden");
//$(this).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").attr("id").replace("multipKeywords","tags");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").css("display","none");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").next("div").removeClass("hidden");
$(obj).parents(".boxSolid").find(".offsetFeature").addClass("hidden");
$(obj).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",false);
$(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",false);
}
}
</script>
</head>
<body>
@@ -208,7 +257,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/app/feature/saveAppMultiFeatureCfg"
method="post" class="form-horizontal">
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="cfgId" id="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
@@ -355,7 +404,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="isBreak" value="true"></c:set>
<c:set var="complexCfgIndex"
@@ -368,7 +417,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="complexCfgIndex" value="${complexCfgIndex+1 }"></c:set>
</c:if>
@@ -380,7 +429,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="complexCfgIndex" value="${complexCfgIndex+1 }"></c:set>
</c:otherwise>
@@ -407,7 +456,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<div
class="row boxSolid ${tabName}${status.index}">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
@@ -421,7 +470,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<c:if test="${!isBreak}">
<div
class="row boxSolid ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="strCfgIndex"
value="${strCfgIndex+1 }"></c:set>
@@ -434,7 +483,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="strCfgIndex" value="${strCfgIndex+1 }"></c:set>
</c:otherwise>

View File

@@ -296,7 +296,14 @@ var delContent = function(contentClassName, addBtnClassName) {
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<spring:message code="${dict.itemValue }"/>
<c:choose>
<c:when test="${service.action eq 16}">
<spring:message code="block_drop"/>
</c:when>
<c:otherwise>
<spring:message code="${dict.itemValue }"/>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
</c:if>

View File

@@ -423,7 +423,14 @@
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq cfg.action }">
<spring:message code="${dict.itemValue }"/>
<c:choose>
<c:when test="${cfg.action eq 16}">
<spring:message code="block_drop"/>
</c:when>
<c:otherwise>
<spring:message code="${dict.itemValue }"/>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
</td>

View File

@@ -257,9 +257,9 @@
</div>
</div>
<c:if test="${cfg.serviceId eq 1025 }">
<c:if test="${cfg.headerType eq 'IP_header' }">
<c:if test="${cfg.district eq 'L3_header_IP' }">
<div class="row">
<div class="col-md-4">
<%-- <div class="col-md-4">
<div class="form-group">
<label><spring:message code='VER' />: ${cfg.ver}</label>
</div>
@@ -268,7 +268,7 @@
<div class="form-group">
<label><spring:message code='IHL' />: ${cfg.ihl}</label>
</div>
</div>
</div> --%>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='TOS' />: ${cfg.tos}</label>
@@ -283,24 +283,24 @@
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='Flags' />: ${cfg.flags}</label>
<label><spring:message code='Protocol' />: ${cfg.protocol}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='fragment offset' />: ${cfg.fragmentOffset}</label>
<label><spring:message code='client_ip' />: ${cfg.fragmentOffset}</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='Protocol' />: ${cfg.protocol}</label>
<label><spring:message code='server_ip' />: ${cfg.flags}</label>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.headerType eq 'ICMP_header' }">
<c:if test="${cfg.district eq 'L3_header_ICMP' }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
@@ -319,11 +319,20 @@
</div>
</div>
</c:if>
<c:if test="${empty cfg.headerType}">
<c:if test="${cfg.district ne 'L3_header_ICMP' and cfg.district ne 'L3_header_IP'}">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label class="keyword-disinline"><spring:message code='keywords' />: ${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
<label class="keyword-disinline"><spring:message code='keywords' />:
<c:choose>
<c:when test="${cfg.exprType eq 3 }">
${fn:substringAfter(cfg.cfgKeywords,":") }
</c:when>
<c:otherwise>
${fn:replace(cfg.cfgKeywords, "***and***", " ")}
</c:otherwise>
</c:choose>
</label>
</div>
</div>
</div>
@@ -333,26 +342,38 @@
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label class="keyword-disinline"><spring:message code='keywords' />: ${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
<label class="keyword-disinline"><spring:message code='keywords' />:
${fn:replace(cfg.cfgKeywords, "***and***", " ")}
</label>
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
<c:when test="${cfg.exprType eq 3}"><spring:message code='offset_expression'/></c:when>
</c:choose>
</label>
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
<c:when test="${cfg.exprType eq 3}"><spring:message code='offset_expression'/></c:when>
</c:choose>
</label>
</div>
</div>
</div>
</div>
<c:if test="${cfg.exprType eq 3 and cfg.district eq 'Payload' }">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='offset' />:</label>
${cfg.payloadOffset }
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-8">
<div class="form-group">

View File

@@ -216,9 +216,10 @@ $(function(){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">

View File

@@ -0,0 +1,55 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title></title>
</head>
<div class="row">
<div class="pull-right">
<span class="glyphicon glyphicon-remove pull-right" title="remove"
onClick="delContent('${tabName}${status.index}','${tabName}Add');" />
</div>
</div>
<br>
<input type="hidden" name="${cfgName}.cfgType" value="${region.configRegionValue }">
<input type="hidden" name="${cfgName}.cfgRegionCode" serviceType="${region.configServiceType }" value="${region.configRegionCode }">
<input type="hidden" name="${cfgName}.configMultiKeywords" value="${region.configMultiKeywords }">
<input type="hidden" name="${cfgName}.configServiceType" value="${region.configServiceType }">
<input type="hidden" name="${cfgName}.configHex" value="${region.configHex }">
<input type="hidden" name="${cfgName}.exprType" value="0">
<input type="hidden" name="${cfgName}.machMethod" value="3">
<input type="hidden" name="${cfgName}.isHexbin" value="0">
<input type="hidden" name="${cfgName}.cfgId" value="${cfg.cfgId}">
<!-- 是否自动更新ASN NO -->
<input type="hidden" name="${cfgName}.userRegion2" value="${cfg.userRegion2}">
<div class="hidden" id="selectAll"><spring:message code="select_All_Text"/></div>
<div class="hidden" id="deselectAll"><spring:message code="deselect_All_Text"/></div>
<input type="hidden" name="${cfgName}.organizationGroupId" value="${cfg.userRegion1}">
<input type="hidden" name="${cfgName}.asnNo" value="${cfg.cfgKeywords}" used="false">
<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">
<select name="${cfgName}.userRegion1" class="selectpicker show-tick form-control required organization" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
</select>
</div>
<div for="${cfgName}.userRegion1"></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="asn_no"/></label>
<div class="col-md-6">
<select name="${cfgName}.cfgKeywords" class="selectpicker show-tick form-control asnNo required" multiple data-live-search="true" data-actions-box="true" data-live-search-placeholder="search" >
</select>
</div>
<div for="${cfgName}.cfgKeywords"></div>
</div>
</div>
</div>
<br>
</html>
<script src="${pageContext.request.contextPath}/static/global/scripts/asnRegion.js" type="text/javascript"></script>

View File

@@ -13,9 +13,9 @@
$(document)
.ready(
function() {
if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){
/* if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){
$("input[name=doLog][value=1]").prop("checked",true);
}
} */
/* $(".glyphicon-plus").first().click(); */
/* $("#cancel").on("click", function() {
window.history.back();
@@ -217,8 +217,8 @@
</div>
<!-- dolog begin-->
<div class="row doLog">
<div class="col-md-6">
<div class="row">
<div class="col-md-6 doLog">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">

View File

@@ -363,9 +363,10 @@ function sampleFileValidate(fileType,fileName){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -382,6 +383,7 @@ function sampleFileValidate(fileType,fileName){
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group ">
@@ -453,11 +455,6 @@ function sampleFileValidate(fileType,fileName){
<div id="fileErrorNote"></div>
</div>
<c:if test="${_cfg.functionId eq 28 or _cfg.functionId eq 29 }">
<div style="margin-bottom:5px">
<span style="color: red;font-size: 16px;letter-spacing: 0px;"> <spring:message code="av_tips"></spring:message></span>
</div>
</c:if>
</div>
<%-- <div class="col-md-6">
<div class="form-group">
@@ -496,7 +493,38 @@ function sampleFileValidate(fileType,fileName){
<div for="level"></div>
</div>
</div>
</div>
<div class="row doLog">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
</div>
<div class="row">
<c:if test="${_cfg.functionId eq 28 or _cfg.functionId eq 29 }">
<div style="margin-bottom:5px">
<span style="color: red;font-size: 16px;letter-spacing: 0px;"> <spring:message code="av_tips"></spring:message></span>
</div>
</c:if>
</div>
<%-- <div class="row">
<div class="col-md-6">
<div class="form-group">
@@ -521,6 +549,10 @@ function sampleFileValidate(fileType,fileName){
</div>
</div> --%>
<%-- <%@include file="/WEB-INF/include/form/areaInfo.jsp" %> --%>
<!-- dolog begin-->
<!-- dolog end-->
<input type="hidden" name="isAreaEffective" value="0">
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</div>

View File

@@ -168,6 +168,7 @@ $(function(){
<input type="radio" name="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDoLog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -183,6 +184,31 @@ $(function(){
</div>
</div>
</div>
<!-- dolog begin-->
<div class="row doLog">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
</div>
<!-- dolog end-->
<div class="row">
<div class="col-md-6">
<div class="form-group ">

View File

@@ -13,9 +13,9 @@
$(document)
.ready(
function() {
if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){
/* if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){
$("input[name=doLog][value=1]").prop("checked",true);
}
} */
$(".glyphicon-plus").first().click();
/* $("#cancel").on("click", function() {
window.history.back();
@@ -217,8 +217,8 @@
</div>
<!-- dolog begin-->
<div class="row doLog">
<div class="col-md-6">
<div class="row">
<div class="col-md-6 doLog">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">

View File

@@ -250,7 +250,14 @@ var switchRateLimitType=function(){
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<spring:message code="${dict.itemValue }"/>
<c:choose>
<c:when test="${service.action eq 16}">
<spring:message code="block_drop"/>
</c:when>
<c:otherwise>
<spring:message code="${dict.itemValue }"/>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
</c:if>

View File

@@ -425,7 +425,14 @@
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq cfg.action }">
<spring:message code="${dict.itemValue }"/>
<c:choose>
<c:when test="${cfg.action eq 16}">
<spring:message code="block_drop"/>
</c:when>
<c:otherwise>
<spring:message code="${dict.itemValue }"/>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
</td>

View File

@@ -148,6 +148,7 @@ $(function(){
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
configDoLog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.serviceId==service.serviceId || (_cfg.serviceId==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">

View File

@@ -390,7 +390,7 @@
</td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq cfg.doLog }">
<c:if test="${dict.itemCode eq cfg.doLog and cfg.action!=64 }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>

View File

@@ -104,10 +104,11 @@ $(function(){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -124,6 +125,29 @@ $(function(){
</div>
</div>
<!-- desc and action -->
<!-- dolog begin-->
<!-- <div class="row doLog"> -->
<div class="col-md-6 hidden">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
<!-- </div> -->
<!-- dolog end-->
<%-- <%@include file="/WEB-INF/include/form/complexIpInfo.jsp" %> --%>
<div class="row ipInfo">
<div class="row">

View File

@@ -278,7 +278,14 @@ var switchRateLimitType=function(){
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq service.action }">
<spring:message code="${dict.itemValue }"/>
<c:choose>
<c:when test="${service.action eq 16}">
<spring:message code="block_drop"/>
</c:when>
<c:otherwise>
<spring:message code="${dict.itemValue }"/>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
</c:if>

View File

@@ -423,7 +423,14 @@
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${dict.itemCode eq cfg.action }">
<spring:message code="${dict.itemValue }"/>
<c:choose>
<c:when test="${cfg.action eq 16}">
<spring:message code="block_drop"/>
</c:when>
<c:otherwise>
<spring:message code="${dict.itemValue }"/>
</c:otherwise>
</c:choose>
</c:if>
</c:forEach>
</td>

View File

@@ -209,9 +209,10 @@
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }"
@@ -274,27 +275,31 @@
</div>
</div>
<%-- <div class="row">
<div class="col-md-6" hidden="true" >
<!-- dolog begin-->
<div class="row doLog">
<div class="col-md-6 " hidden="true" >
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="0" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="0" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
</div> --%>
</div>
<!-- dolog end-->
<!-- subscribeId配置 -->
<c:set var="subscribeIdCfgIndex" value="0"></c:set>
<c:forEach items="${regionList}" var="region" varStatus="status">

View File

@@ -507,7 +507,7 @@
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDoLog="${service.configDoLog }"

View File

@@ -626,7 +626,7 @@
</td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }">
<c:if test="${dict.itemCode eq indexCfg.doLog and indexCfg.action!=64 }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>

View File

@@ -210,9 +210,10 @@ function privateFileValidate(){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -228,6 +229,29 @@ function privateFileValidate(){
</div>
</div>
</div>
<!-- dolog begin-->
<!-- <div class="row doLog"> -->
<div class="col-md-6 hidden">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
<!-- </div> -->
<!-- dolog end-->
<div class="row">
<div class="col-md-6">
<div class="form-group">

View File

@@ -118,9 +118,10 @@ function certFileValidate(){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -136,6 +137,30 @@ function certFileValidate(){
</div>
</div>
</div>
<!-- dolog begin-->
<!-- <div class="row doLog"> -->
<div class="col-md-6 hidden">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
<!-- </div> -->
<!-- dolog end-->
<div class="row">
<div class="col-md-6">
<div class="form-group">

View File

@@ -0,0 +1,410 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>
<spring:message code="log"/><spring:message code="trend"/>
</title>
</head>
<body>
<div class="page-content">
<%-- <div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onClick="javascript:window.location.reload()"><i class="fa fa-refresh"></i></button>
<button type="button" class="btn btn-default" onClick="javascript:window.location='${ctx}/dashboard/logChart'"><i class="fa fa-history"></i></button>
</div> --%>
<!-- <h5 class="page-header"></h5> -->
<br>
<div class="row" style="margin-left: 12px;">
<form:form id="searchForm" method="get" class="form-search">
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input name="beginDate" id="beginDate" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',7,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input name="endDate" id="endDate" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',7,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return searchList()"> <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>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
</form:form>
</div>
<div id="chart" style="width:97%;height:90%;margin-top: 35px;"></div>
<%-- <input id="searchAction" name="searchAction" type="hidden" value="${searchAction}"/> --%>
<input id="beginDateh" type="hidden" value="${beginDate}"/>
<input id="endDateh" type="hidden" value="${endDate}"/>
<input id="cfgId" type="hidden" value="${cfgId}"/>
<input id="serviceId" type="hidden" value="${serviceId}"/>
<input id="total" type="hidden"/>
</div>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/highcharts.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting.js"></script>
<%-- <script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>--%>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
<%-- <script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/themes/grid.js"></script> --%>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting-data.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/standalone.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/no-data-to-display.js"></script>
<script type="text/javascript">
var lineColors=['#a9d4cf','#eecf8d','#f1aa76','#88b876','#E2875C','#EDC86B','#DF8F7E','#F0AEC9','#59BACE','#8E97EE'];
var logTltle=$.validator.messages.log_trend;
var excfgid=null;
$(document).ready(function(){
var starth=$("#beginDateh").val();
var endh=$("#endDateh").val();
var cfgId=$("#cfgId").val();
var serviceId=$("#serviceId").val();
excfgid=cfgId;
$("#beginDate").val(starth);
$("#endDate").val(endh);
actionTransAjax(logTltle,starth,endh,cfgId,serviceId);
//筛选功能初始化
$("#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();
});
// setInterval(function(){
// actionTransAjax($("#searchAction").val(),starth,new Date().Format("yyyy-MM-dd HH:mm:00"));
// },500000);// 五分钟调用一次
});
function searchList(){
loading();
var start=$("#beginDate").val();
var end=$("#endDate").val();
var cfgId=$("#cfgId").val();
var serviceId=$("#serviceId").val();
$("#beginDateh").val(start);
$("#endDateh").val(end);
if(start==''||end==''||end==null||start==null){
window.location.reload();
}else{
actionTransAjax(logTltle,start,end,cfgId,serviceId);
}
}
// 局点信息
function showActionTransChart(xData,series){
var nowDate=new Date();
Highcharts.setOptions({ global: { useUTC: false } });
var chart = Highcharts.chart('chart', {
chart:{
type: 'area',
zoomType: 'x'
},
exporting: {
filename:logTltle+"_"+nowDate.getFullYear()+(nowDate.getMonth()+1)+nowDate.getDate()+nowDate.getHours()+nowDate.getMinutes()+nowDate.getSeconds(),
scale:1,
sourceWidth: 1280,
sourceHeight: 600,
buttons: {
contextButton: {
menuItems: [
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[0],// 打印
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[1],// jpeg
'downloadPNG','downloadPDF',
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[4],// excel
Highcharts.getOptions().exporting.buttons.contextButton.menuItems[3],// cvs
]
}
}
},
noData:{
style: {//设置字体颜色
color: '#413333',
fontFamily:'Microsoft YaHei',
fontWeight:"unset",
},
},
title: {
text: null
},
colors:['#e5e3cd','#f1e5cd','#f3ebdf','#f3f7f1','#F6DDD0','#FAF0D5','#F1CFC7','#F8DCE8','#CEEBF1','#CED3F8'],
xAxis: {
type:'datetime',
dateTimeLabelFormats: {
second: '%H:%M:%S',
minute: '%H:%M',
hour: '%H:%M',
day: '%m-%d',
week: '%m-%d',
month: '%Y-%m',
year: '%Y'
},
title: {
text: 'time',
align:'high',
},
labels: {
rotation: -45, //倾斜的角度
}
},
yAxis: {
title: {
text: null
},
min:0
},
tooltip: {
dateTimeLabelFormats: {
millisecond: '%Y-%m-%d %H:%M:%S',
second: '%Y-%m-%d %H:%M:%S',
minute: '%Y-%m-%d %H:%M:%S',
hour: '%Y-%m-%d %H:%M:%S',
day: '%Y-%m-%d %H:%M:%S',
week: '%Y-%m-%d %H:%M:%S',
month: '%Y-%m-%d %H:%M:%S',
year: '%Y-%m-%d %H:%M:%S'
}
},
credits:{//是否有highcharts水印
enabled:false
},
plotOptions: {
series: {
marker: {
radius: 2,
hover: {
enabled: true,
radius: 7,
radiusPlus: 5
}
}
}
},
// legend: {
// layout: 'vertical',
// align: 'right',
// verticalAlign: 'middle'
// },
series: series,
});
}
// 动作一小时,间隔五分钟统计数据
function actionTransAjax(searchAction,beginDate,endDate,cfgId,serviceId){
loading();
$.ajax({
url: "${ctx}/toLogSearch/actionLogTrend?cfgId="+cfgId+"&searchAction="+searchAction+"&beginDate="+beginDate+"&endDate="+endDate+"&serviceId="+serviceId,
type : "get" ,
dataType:"json",
async:true,
success:function (rs) {
var xData=new Array();
var series=new Array();
var total=[];
if(rs!=null&&rs.length>0){
$(rs).each(function(i, d) {
total.push(
d.sum
)
var entrance=cfgId;
series.push({
name: entrance,
data: d.result,
lineColor:lineColors[i],
marker: {
enabled: false
}
});
})
}else{
series.push({
name: " ",
data: []
});
}
$("#total").val(JSON.stringify(total));
showActionTransChart(xData,series);
closeTip();
},
error: function(data, textStatus, errorThrown){
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
function getLogDate(time){
var date = new Date(time);
var times = date.getTime();
times=times/1000;
return times;
}
(function(H) {
var nowDate=new Date();
H.Chart.prototype.downloadXLS = function() {
var start=$("#beginDateh").val();
var end=$("#endDateh").val();
var div = document.createElement('div'),
xlsxRows = [],
xlsxColumns = [];
div.style.display = 'none';
document.body.appendChild(div);
rows = this.getDataRows(true);
/* 调用后台接口导出 */
var total = JSON.parse($("#total").val());
var map={};
$(rows).each(function(i,d){
// 去掉多余属性
delete d.name;
delete d.x;
delete d.xValues;
})
total.unshift('<spring:message code="report_total"/>');
rows.shift(); // 删除一个重复行
var heard = rows.shift(); // 删除一个重复行
rows.push(total)
map["titleTime"]="<spring:message code='cfg_id'/>:"+excfgid+" "+logTltle+" "+start+"—"+end;
map["heard"]=['time','sum'];
map["book"]=rows;
map["titleCode"]=logTltle;
var exports = JSON.stringify(map);
aJaxImportPost("${ctx}/export/ajaxExport",{"exports":exports});
/* xlsxRows = H.map(rows.slice(1), function(row) {
return H.map(row, function(column) {
return {
type: typeof column === 'number' ? 'number' : 'string',
value: column
};
});
});
var a =new Array();
a.push({
type:'string',
value:'<spring:message code="total"></spring:message>'
})
if(xlsxRows!=null&&xlsxRows!=undefined&&xlsxRows.length>0){
for(var j=0;j<xlsxRows[0].length-1;j++){
a.push({
type:'number',
value:0
})
}
for(var i=1;i<xlsxRows.length;i++){
for(var j=1;j<xlsxRows[i].length;j++){
a[j].value=a[j].value+xlsxRows[i][j].value;
}
}
}
xlsxRows.push(a)
var b =new Array();
b.push({
type:'string',
value:'<spring:message code="${searchAction}"></spring:message>'
})
b.push({
type:"string",
value:start+'--'+end
})
xlsxRows.unshift(b)
zipcelx({
filename: '<spring:message code="${searchAction}"></spring:message>'+nowDate.getFullYear()+(nowDate.getMonth()+1)+nowDate.getDate()+nowDate.getHours()+nowDate.getMinutes()+nowDate.getSeconds(),
sheet: {
data: xlsxRows
}
}); */
};
}(Highcharts));
(function(H) {
H.Chart.prototype.downloadCSV = function() {
var rows = this.getDataRows(true);
var total = JSON.parse($("#total").val());
var data=[];
$(rows).each(function (i,d){
if(d!=null){
if(i>0){
data.push({
num1:d[0],
num2:d[1],
num3:d[2],
})
}
}
})
data.push({
num1:"<spring:message code='report_total'/>",
num2:total
})
data[0]={"num1":"time","num2":"sum"};
var start = $("#beginDateh").val();
var end = $("#endDateh").val();
exportCsv({
title:["<spring:message code='cfg_id'/>:"+excfgid+" "+logTltle+" "+start+"—"+end],
titleForKey:["num1","num2","num3"],
data:data
});
};
}(Highcharts));
function exportCsv(obj){
var nowDate=new Date();
//title ["","",""]
var title = obj.title;
//titleForKey ["","",""]
var titleForKey = obj.titleForKey;
var data = obj.data;
var str = [];
str.push(obj.title.join(",")+"\n");
for(var i=0;i<data.length;i++){
var temp = [];
for(var j=0;j<titleForKey.length;j++){
temp.push(data[i][titleForKey[j]]);
}
str.push(temp.join(",")+"\n");
}
str = "\uFEFF"+str.join(""); //
var blob = new Blob([str], {type: 'text/plain'});
var uri = 'data:text/csv;charset=utf-8,' + encodeURIComponent(blob);
var downloadLink = document.createElement("a");
downloadLink.href = window.URL.createObjectURL(blob);
downloadLink.download = logTltle+"_"+nowDate.getFullYear()+(nowDate.getMonth()+1)+nowDate.getDate()+nowDate.getHours()+nowDate.getMinutes()+nowDate.getSeconds()+".csv";
downloadLink.style.display = 'none';
document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);
}
function sum(arr) {
return arr.reduce(function(prev, curr, idx, arr){
return prev + curr;
});
}
</script>
</body>
</html>

View File

@@ -146,9 +146,10 @@ $(function(){
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -164,6 +165,31 @@ $(function(){
</div>
</div>
</div>
<!-- dolog begin-->
<!-- <div class="row doLog"> -->
<div class="col-md-6 hidden">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
<!-- </div> -->
<!-- dolog end-->
<div class="row">
<div class="col-md-6">
<div class="form-group">

View File

@@ -362,10 +362,11 @@
varStatus="satus">
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
<input type="radio" name="action" class="action"
serviceId="${service.serviceId }"
protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<spring:message code="${service.actionCode }"/>
@@ -384,7 +385,7 @@
</div>
</div>
<!-- 记录日志begin -->
<%-- <div class="row">
<div class="row doLog">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
@@ -404,7 +405,7 @@
</c:forEach>
</div>
</div>
</div> --%>
</div>
<!-- 记录日志end -->
<h4 class="form-section cacheAction">
<spring:message code="action_region" />

View File

@@ -355,7 +355,7 @@
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th column="cfg_id" class="sort-column a.compile_id" style="display: none"><spring:message code="cfg_id"/></th>
<th column="config_describe" class="sort-column a.cfg_desc cfgDesc"><spring:message code="config_describe"/></th>
<th column="block_type" class="sort-column a.action"><spring:message code="block_type"/></th>
<th column="action" class="sort-column a.action"><spring:message code="block_type"/></th>
<th column="ignore_query_string" ><spring:message code="ignore_query_string"/></th>
<th column="include_cookie" ><spring:message code="include_cookie"/></th>
<th column="no_revalidate" ><spring:message code="no_revalidate"/></th>

View File

@@ -171,9 +171,10 @@
<label class="radio-inline"> <c:if
test="${_cfg.functionId eq service.functionId}">
<input type="radio" name="action"
serviceId="${service.serviceId }"
serviceId="${service.serviceId }" class="action"
protocolId="${service.protocolId }"
regionCode="${service.regionCode }"
configDolog="${service.configDoLog }"
value="${service.action }" class="required action"
<c:if test="${_cfg.action==service.action || (_cfg.action==null && satus.index==0)}">checked</c:if>>
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
@@ -198,24 +199,23 @@
<c:set var="doLog" value="${_cfg.doLog }"/>
</c:if>
<!-- 记录日志begin -->
<div class="row">
<div class="row doLog">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq doLog}">
<label class="radio-inline">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>

View File

@@ -695,7 +695,7 @@
<c:if test="${action ne 128}">
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }">
<c:if test="${dict.itemCode eq indexCfg.doLog and indexCfg.action!=64 }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>

View File

@@ -395,6 +395,28 @@
</c:forEach>
</div>
</c:if>
<c:if test="${region.configRegionValue eq _cfg.ntcSubscribeIdCfg.cfgType }">
<!--response header info-->
<div class="subscribeId">
<c:set var="tabName" value="subscribeIdTab"></c:set>
<h4 class="form-section" >
<spring:message code="${region.configRegionValue}" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpResHdr.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="ntcSubscribeIdCfgList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
<!--/response header info-->
</c:if>
</c:if>
<c:if test="${region.regionType eq 3 }">
<c:if test="${region.configRegionValue eq _cfg.httpReqHdr.cfgType }">
@@ -441,28 +463,6 @@
</div>
<!--/response header info-->
</c:if>
<c:if test="${region.configRegionValue eq _cfg.ntcSubscribeIdCfg.cfgType }">
<!--response header info-->
<div class="subscribeId">
<c:set var="tabName" value="subscribeIdTab"></c:set>
<h4 class="form-section" >
<spring:message code="${region.configRegionValue}" />
<small> <span
class="glyphicon glyphicon-plus ${tabName}Add"
onClick="addContent(this,'${tabName}')" title="add"></span></small>
</h4>
<%-- <c:set var="regionValue" value="${_cfg.httpResHdr.cfgType}"></c:set> --%>
<c:forEach items="${_cfg.ntcSubscribeIdCfgList}" var="cfg"
varStatus="status">
<c:set var="cfgName" value="ntcSubscribeIdCfgList[${status.index}]"></c:set>
<div class="row boxSolid ${tabName}${status.index} <c:if test="${empty cfg.cfgId}">hidden disabled </c:if>">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
</div>
</c:forEach>
</div>
<!--/response header info-->
</c:if>
</c:if>
</c:forEach>
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%>

View File

@@ -77,7 +77,7 @@
code="begin_date" /></span>
</div>
<input name="beginDate" id="beginDate" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',7,'d','yyyy-MM-dd hh:mm:ss',false)"/>
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left chart-history">
@@ -87,7 +87,7 @@
code="end_date" /></span>
</div>
<input name="endDate" id="endDate" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',7,'d','yyyy-MM-dd hh:mm:ss',false)"/>
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
@@ -223,6 +223,7 @@
});
// 改变排序字段
function changeOrderby(searchQuota) {
loading();
appTop100List($("#beginDate").val(),$("#endDate").val(),$("#appType").val(),$("#entranceId").val(),searchQuota);
}
function searchList1() {

View File

@@ -43,7 +43,7 @@
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input name="beginDate" id="beginDate" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',7,'d','yyyy-MM-dd hh:mm:ss',false)"/>
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
@@ -52,7 +52,7 @@
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input name="endDate" id="endDate" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',7,'d','yyyy-MM-dd hh:mm:ss',false)"/>
value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
@@ -212,11 +212,25 @@ function ajaxAppList(start,end,entranceId){
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
//统计数据
var tb=document.getElementById("contentTable");
var rows=tb.rows;
$("#contentTable tbody tr").removeClass("hidden");
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"contentTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="App"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$("#beginDate").val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$("#endDate").val()+'</div>';
$('.tr-total').addClass("tc");
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$('.tr-total').addClass("hidden");
getPageData(1,10);
pageJuan(10);//初始化分页
}
@@ -343,6 +357,7 @@ function htmlData(fileDataS){
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
html+= "<td class='tc'>"+"<spring:message code='report_total'/>"+"</td>";
html+= "<td class='tc'>" +"--"+"</td>"
html+= "<td class='tc'>"+totalLink+"</td>";
html+= "<td class='tc'>" +"100%"+"</td>";
html+= "<td class='tc'>"+Math.round(totalPackets*100)/100+"</td>";

View File

@@ -173,11 +173,25 @@ function ajaxProtocolList(start,end){
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
//统计数据
var tb=document.getElementById("contentTable");
var rows=tb.rows;
$("#contentTable tbody tr").removeClass("hidden");
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"contentTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="service"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$("#beginDate").val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$("#endDate").val()+'</div>';
$('.tr-total').addClass("tc");
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$('.tr-total').addClass("hidden");
getPageData(1,10);
pageJuan(10);//初始化分页
}

View File

@@ -150,11 +150,24 @@ $(document).ready(function(){
});
//打印列表
function doPrint() {
//统计数据
var tb=document.getElementById("contentTable");
var rows=tb.rows;
$("#contentTable tbody tr").removeClass("hidden");
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"contentTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="traffic_ipactive_hour_max"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$("#beginDate").val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$("#endDate").val()+'</div>';
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
});
append: null,
prepend: title
});
$('.tr-total').addClass("hidden");
}
//导出列表
$(".export-btn").click(function(){

View File

@@ -203,11 +203,25 @@ function ajaxProtocolList(start,end,entranceId){
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
//统计数据
var tb=document.getElementById("contentTable");
var rows=tb.rows;
$("#contentTable tbody tr").removeClass("hidden");
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"contentTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="protocol_type"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$("#beginDate").val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$("#endDate").val()+'</div>';
$('.tr-total').addClass("tc");
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$('.tr-total').addClass("hidden");
getPageData(1,10);
pageJuan(10);//初始化分页
}

View File

@@ -72,7 +72,9 @@
<select id="domain" name="domain" class="selectpicker form-control" data-max-options="10" data-selected-text-format="count > 2" multiple max-width="100px" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${domainList}" var="dict" >
<option value="${dict.id}"><spring:message code="${dict.domain}"></spring:message></option>
<c:if test="${dict.id ne 0 }">
<option value="${dict.id}"><spring:message code="${dict.domain}"></spring:message></option>
</c:if>
</c:forEach>
</select>
</div>
@@ -142,7 +144,7 @@
<tr>
<th><spring:message code="trend"/></th>
<th><spring:message code="domain_name"/></th>
<th><spring:message code="unique_num"/></th>
<th><spring:message code="client_ip"/></th>
<th><spring:message code="area_id"/></th>
<th><spring:message code="packets"/></th>
<th><spring:message code="percentage"/> (<spring:message code="packets"/>)</th>
@@ -253,11 +255,25 @@
//打印列表
function doPrint() {
getPageData(1,999999);// 设置打印条数
//统计数据
var tb=document.getElementById("contentTable");
var rows=tb.rows;
$("#contentTable tbody tr").removeClass("hidden");
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"contentTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="domain_name"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$("#beginDate").val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$("#endDate").val()+'</div>';
$('.tr-total').addClass("tc");
$("#contentTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$('.tr-total').addClass("hidden");
getPageData(1,10);
pageJuan(10);//初始化分页
}
@@ -386,11 +402,12 @@
if(index==fileDataS.length-1){
html+="<tr class='tr-total hidden'>"
html+= "<td class='tc'>"+"<spring:message code='report_total'/>"+"</td>";
html+= "<td class='tc'>" +"--"+"</td>"
html+= "<td class='tc'>"+totalunique+"</td>";
html+= "<td class='tc'>" +"--"+"</td>";
html+= "<td class='tc'>"+totalPackets+"</td>";
html+= "<td class='tc'>"+parseInt(totalPackets).toFixed(2)+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>";
html+= "<td class='tc'>"+totalGbyte+"</td>";
html+= "<td class='tc'>"+parseInt(totalGbyte).toFixed(2)+"</td>";
html+= "<td class='tc'>"+"100%"+"</td>";
html+="</tr>"
}

View File

@@ -60,16 +60,12 @@ function showHelp(helpHref) {
<spring:message code="${online_help }"></spring:message>
</h3>
<div class="row">
<div class="portlet-body">
<div class="col-md-4">
<div class="col-md-2">
<div id="menuTree" class="ztree" style="margin-top:3px;float:left;"></div>
</div>
<div class="col-md-8 help">
<div class="col-md-10 help">
</div>
</div>
</div>
</div>
</body>

View File

@@ -343,6 +343,7 @@ background:#3d3d3d;
<!-- END MEGA MENU -->
<input type="hidden" id="tb_custom" value="<spring:message code='cfg_custom'/>"/>
<input type="hidden" id="jbox_cfg_url" value="${ctx}/toLogSearch/logTrend"/>
<!-- BEGIN TOP NAVIGATION MENU -->
<div class="top-menu">
<ul class="nav navbar-nav pull-right">

View File

@@ -193,7 +193,7 @@
var dataList=data.requestStatisticList;
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr +='<table id="printTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="letter"/></th>';
@@ -217,7 +217,11 @@
for (var k = 0; k < menu.length; k++) {
userTableStr += '<td>';
var sss=menu[k].functionId+'_'+menu[k].functionId;
userTableStr += dataList[j][sss];
if(dataList[j][sss] !=undefined && dataList[j][sss] !=null &&dataList[j][sss] !=""){
userTableStr += dataList[j][sss];
}else{
userTableStr += "0";
}
userTableStr += '</td>';
}
userTableStr += '<tr>';
@@ -228,26 +232,69 @@
}
}
});
//计算合计行
var tb=document.getElementById("printTable");
var rows = tb.rows;
var colums = tb.rows[0].cells.length;
var trtotal="";
trtotal+="<td><spring:message code='report_total' /></td>";
for(var j = 1; j < colums; j++){
var sum = 0;
for(var i = 1;i<rows.length-1;i++){
if(rows[i].cells[j] !=undefined && rows[i].cells[j].innerHTML !=""){
var a = parseInt(rows[i].cells[j].innerHTML.trim());
sum = sum + a;
}
}
trtotal+="<td>"+sum+"</td>";
}
$('#total').remove();
$('#printTable tbody').append("<tr id='total'></tr>");
$('#total').html(trtotal);
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"printTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="letter_statistics_info"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="statistic_time"/>&nbsp;&nbsp;&nbsp;'+$("#requestStatisticTime").val()+'</div>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
/* $(".cfgMenuTable").print({
globalStyles: true,
iframe: true,
append: null
}); */
}
//配置业务和状态统计打印
function statisticsPrint() {
function statisticsPrint() {
$('.count').removeClass("hidden");
//计算合计行
var tb=document.getElementsByName("statisticsStatusTable")[0];
var rows = tb.rows;
var colums = tb.rows[0].cells.length;
$(".statisticsStatusTable .count").empty();
$(".statisticsStatusTable .count").append("<td><spring:message code='report_total' /></td>");
for(var j = 1; j < colums; j++){
var sum = 0;
for(var i = 1;i<rows.length-1;i++){
var a = parseInt(rows[i].cells[j].innerHTML.trim());
sum = sum + a;
}
$(".statisticsStatusTable .count").append("<td>"+sum+"</td>");
}
//为某一列或者 某一行 添加样式
addPrintTableCss(rows.length-1,0,"contentTable2","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="configure_statistics_info"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="statistic_time"/>&nbsp;&nbsp;&nbsp;'+$("#configStatisticTime").val()+'</div>';
//打印
$(".statisticsStatusTable").print({
globalStyles: true,
iframe: true,
append: null
});
append: null,
prepend: title
});
//隐藏合计行
$('.count').addClass("hidden");
}
@@ -323,6 +370,7 @@
<body class="page-full-width">
<input id="menuName" type="hidden" value="<spring:message code="config_service_statistics"/>">
<input id="requestStatisticTime" type="hidden" value="${requestStatisticTime }" />
<div class="statisticsRequest">
<form id="searchForm" action="${ctx}/configure/statistics/configureStateStatistics" >
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
@@ -398,6 +446,7 @@
<div id="contentPrintTable" style="display: none;"></div>
</div>
<div id="statisticsStatus" class="statisticsStatus">
<input id="configStatisticTime" type="hidden" value="${configStatisticTime }" />
<font size="4">
<i class="fa fa-cogs" id="statusTitle"><spring:message code="configure_statistics_info"/> [<spring:message code="statistic_time"/>${configStatisticTime }]</i>
</font>
@@ -419,7 +468,7 @@
</div>
</div>
<h5 class="page-header"></h5>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap statisticsStatusTable" name="statisticsStatusTable">
<table id="contentTable2" class="table table-striped table-bordered table-condensed text-nowrap statisticsStatusTable" name="statisticsStatusTable">
<thead>
<tr>
<th><spring:message code="service_name"/></th>

View File

@@ -266,6 +266,7 @@
<div class="form-group">
<label class="control-label"><spring:message code='APP'/></label>
<select id="appSelect" name="appId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${appList}" var="app" >
<option value="${app.code}"><spring:message code="${app.item}"></spring:message></option>
</c:forEach>
@@ -277,6 +278,7 @@
<div class="form-group">
<label class="control-label"><spring:message code='application_layer_protocol'/></label>
<select id="protoSelect" name="protoId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${protocolList}" var="proto" >
<option value="${proto.code}"><spring:message code="${proto.item}"></spring:message></option>
</c:forEach>
@@ -288,6 +290,7 @@
<div class="form-group">
<label class="control-label"><spring:message code="domain_name"/></label>
<select id="webSelect" name="webId" title="<spring:message code="select"/>" class="selectpicker form-control" data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${webList}" var="web" >
<option value="${web.code}"><spring:message code="${web.item}"></spring:message></option>
</c:forEach>

View File

@@ -66,6 +66,16 @@
$("#"+closeId).parent().parent().next("tr").hide();
});
});
function warn_tips(){
if ($("#cfgId").val()==0&&$("#cfgId").val()!='') {
top.$.jBox.tip("<spring:message code='cfg_id'/><spring:message code='param_error'/>", "<spring:message code='info'/>");
$("#cfgId").val('');
return;
}else{
return page();
}
}
</script>
</head>
<body>
@@ -126,7 +136,7 @@
</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 blue" onClick="warn_tips();"> <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>
@@ -201,7 +211,7 @@
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="cfg_id"></spring:message></label>
<input name="cfgId" type="text" class="form-control logCfgId number" value="${log.cfgId }"/>
<input id="cfgId" name="cfgId" type="text" class="form-control logCfgId number" value="${log.cfgId }"/>
</div>
</div>

View File

@@ -0,0 +1,423 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>
MAIL Record<spring:message code="log"></spring:message>
</title>
<script>
$(document).ready(function() {
//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",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
//筛选功能
filterActionInit();
//异步获取voip相关信息
$("span[id^=open]").click(function(){
var openId=$(this).attr("id");
var closeId=$(this).attr("id").replace("open","close");
var index=$(this).attr("id").replace("open","");
$("#"+openId).hide();
$("#"+closeId).show();
var compileId=$(this).attr("compileId");
// var cfgId=$(this).attr("cfgId");
if($("#"+openId).parent().parent().next("tr").hasClass("child")){
$("#"+openId).parent().parent().next("tr").show();
}else{
$.ajax({
type:'post',
async:false,
url:'${ctx}/ntc/mail/ajaxMailSubList',
data:{"compileId":compileId,"index":index},
dataType:"html",
success:function(data){
var subTab="<tr class='child'>"+
"<td colspan='"+($(".table tr").eq(0).children("th").length-1)+"'>";
var html="";
html+="<div class='row'>";
html = html+data;
subTab=subTab+html;
subTab+="</td>";
subTab+="</tr>";
$("#"+openId).parent().parent().after(subTab);
$("div[name='tabTitle"+index+"']").get(0).click();
}
});
}
});
$("span[id^=close]").on("click",function(){
var closeId=$(this).attr("id");
var openId=$(this).attr("id").replace("close","open");
$("#"+closeId).hide();
$("#"+openId).show();
$("#"+closeId).parent().parent().next("tr").hide();
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
</div>
<h3 class="page-title">
<spring:message code="mail_record"/>
</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="log" action="${ctx}/log/ntc/mailRecord/list" 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}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<input id="isLogTotalSearch" name="isLogTotalSearch" type="hidden" value="${log.isLogTotalSearch}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/><sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${(dict.itemCode eq service.action) && (service.action ne 128) && (service.action ne 32) && (service.action ne 96) }">
<form:option value="${service.serviceId}"><spring:message code="${dict.itemValue}"/></form:option>
</c:if>
</c:forEach>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<%-- <input name="searchFoundStartTime" id="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:setTimee,dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'searchFoundEndTime\')}'});"/> --%>
<input name="searchFoundStartTime" id="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<%-- <input name="searchFoundEndTime" id="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'searchFoundStartTime\')}',maxDate:'#F{$dp.$D(\'searchFoundStartTime\',{d:1})}'});"/> --%>
<input name="searchFoundEndTime" id="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundEndTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</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">
<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="export"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><sys:delRow url="${ctx}/log/ntc/mailRecord/exportMail?type=excel" searchUrl="${ctx}/log/ntc/mailRecord/list" id="contentTable" maxRow="10000" label="excel"></sys:delRow></li>
<li><sys:delRow url="${ctx}/log/ntc/mailRecord/exportMail?type=csv" searchUrl="${ctx}/log/ntc/mailRecord/list" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<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="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clj_ip"></spring:message></label>
<input name="capIp" type="text" class="form-control" value="${log.capIp }"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label class="control-label"><spring:message code='transport_layer_protocol'/></label>
<form:select path="transProto" class="selectpicker form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="protocol" >
<form:option value="${protocol.itemCode}"><spring:message code="${protocol.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"></spring:message></label>
<input name="dIp" type="text" class="form-control" value="${log.dIp }"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"></spring:message></label>
<input name="sIp" type="text" class="form-control" value="${log.sIp }"/>
</div>
</div>
</div>
<div class="row">
<!-- <div class="col-md-2"> -->
<!-- <div class="form-group"> -->
<%-- <label><spring:message code="cfg_id"></spring:message></label> --%>
<%-- <input name="cfgId" type="text" class="form-control logCfgId number" value="${log.cfgId }"/> --%>
<!-- </div> -->
<!-- </div> -->
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="mail_from"></spring:message></label>
<input name="mailFrom" type="text" class="form-control" value="${log.mailFrom }"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="mail_to"></spring:message></label>
<input name="mailTo" type="text" class="form-control" value="${log.mailTo }"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="subject"></spring:message></label>
<input name="subject" type="text" class="form-control" value="${log.subject }"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" column="cfg_id"><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false" column="action"><spring:message code="action"/></th>
<th class="sort-column found_time" column="found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false" column="recv_time"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false" column="entrance_id"><spring:message code="entrance_id"/></th>
<th class="sort-column mail_proto" column="mail_proto"><spring:message code="mail_proto"/></th>
<th class="sort-column mail_from" column="mail_from"><spring:message code="mail_from"/></th>
<th class="sort-column mail_to" column="mail_to"><spring:message code="mail_to"/></th>
<th class="sort-column subject" column="subject"><spring:message code="subject"/></th>
<th class="sort-column eml_file" column="eml_file"><spring:message code="eml_file"/></th>
<th class="sort-column eml_key" isVisible="false" column="eml_key"><spring:message code="eml_key"/></th>
<th class="sort-column cap_ip" isVisible="false" column="clj_ip"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto" column="transport_layer_protocol"><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type" column="addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip" column="server_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip" column="client_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port" column="server_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port" column="client_port"><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false" column="deviceid"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false" column="link_id"><spring:message code="link_id"/></th>
<th class="sort-column encap_type" column="encap_type"><spring:message code="encap_type"/></th>
<th class="sort-column direction" column="direction"><spring:message code="direction"/></th>
<th class="sort-column inner_smac" column="inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac" column="inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir" column="stream_type"><spring:message code="stream_type"/></th>
<th class="sort-column addr_list" column="nest_addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate" column="server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate" column="client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false" column="s_asn"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false" column="d_asn"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false" column="s_subscribe_id"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false" column="d_subscribe_id"><spring:message code='d_subscribe_id'/></th>
<%-- <th class="sort-column user_region" isVisible="false" column="user_region"><spring:message code='user_region'/></th> --%>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file" column="scene_file"><spring:message code='scene_file'/></th></c:if>
</tr>
</thead>
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>
<%-- <span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span> --%>
<a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/mail/ajaxMailSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:set var="actions">${log.action }</c:set>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
<c:set var="actions">${dict.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${actions}"/>
</td>
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>
<td>
<c:set var="entrances">${log.entranceId }</c:set>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="dic">
<c:if test="${dic.itemCode eq log.entranceId}">
<c:set var="entrances">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${entrances}"/>
</td>
<td>${log.mailProto }</td>
<td>
${log.mailFrom}
</td>
<td>
${log.mailTo}
</td>
<td>${log.subject }</td>
<td>
<c:if test="${fn:startsWith(log.emlFile, 'http')}">
<a href="${log.emlFile}" data-original-title="${log.emlFile}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fn:substring(log.emlFile,0,20) }
</a>
</c:if>
<c:if test="${!fn:startsWith(log.emlFile, 'http') and !empty log.emlFile}">
<a href="http://${log.emlFile}" data-original-title="http://${log.emlFile}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
http://${fn:substring(log.emlFile,0,20) }
</a>
</c:if>
</td>
<td title="${log.emlKey }">${fns:abbr(log.emlKey, 42)}</td>
<td >${log.capIp}</td>
<td>
<c:set var="transProtos">${log.transProto }</c:set>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dic">
<c:if test="${dic.itemCode eq log.transProto}">
<c:set var="transProtos">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${transProtos}"/>
</td>
<td>
<c:set var="addrTypes">${log.addrType }</c:set>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}">
<c:set var="addrTypes">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${addrTypes}"/>
</td>
<td >${log.dIp}</td>
<td >${log.sIp}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:set var="deviceIds">${log.deviceId }</c:set>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}">
<c:set var="deviceIds">${device.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${deviceIds}"/>
</td>
<td>
<c:set var="linkIds">${log.linkId }</c:set>
<c:forEach items="${fns:getDictList('LINK')}" var="link">
<c:if test="${link.itemCode eq log.linkId}">
<c:set var="linkIds">${link.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${linkIds}"/>
</td>
<td>
<c:set var="encapTypes">${log.encapType }</c:set>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}">
<c:set var="encapTypes">${encapType.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${encapTypes}"/>
</td>
<td>
<c:set var="directions">${log.direction }</c:set>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}">
<c:set var="directions">${direction.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${directions}"/>
</td>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:set var="streamDirs">${log.streamDir }</c:set>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">
<c:set var="streamDirs">${streamType.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${streamDirs}"/>
</td>
<td>${log.addrList }</td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
<td>${log.sAsn}</td>
<td>${log.dAsn}</td>
<td>${log.sSubscribeId}</td>
<td>${log.dSubscribeId}</td>
<%-- <td>${log.userRegion}</td> --%>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.sceneFile}</td></c:if>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,412 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<style>
.Wdate {
width:180px !important;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
// 筛选
filterActionInit();
// 重置
$("#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",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
//异步获取voip相关信息
$("span[id^=open]").click(function(){
var openId=$(this).attr("id");
var closeId=$(this).attr("id").replace("open","close");
var index=$(this).attr("id").replace("open","");
$("#"+openId).hide();
$("#"+closeId).show();
var compileId=$(this).attr("compileId");
// var cfgId=$(this).attr("cfgId");
if($("#"+openId).parent().parent().next("tr").hasClass("child")){
$("#"+openId).parent().parent().next("tr").show();
}else{
$.ajax({
type:'post',
async:false,
url:'${ctx}/ntc/website/ajaxSslSubList',
data:{"compileId":compileId,"index":index},
dataType:"html",
success:function(data){
var subTab="<tr class='child'>"+
"<td colspan='"+($(".table tr").eq(0).children("th").length-1)+"'>";
var html="";
html+="<div class='row'>";
html = html+data;
subTab=subTab+html;
subTab+="</td>";
subTab+="</tr>";
$("#"+openId).parent().parent().after(subTab);
$("div[name='tabTitle"+index+"']").get(0).click();
}
});
}
});
$("span[id^=close]").on("click",function(){
var closeId=$(this).attr("id");
var openId=$(this).attr("id").replace("close","open");
$("#"+closeId).hide();
$("#"+openId).show();
$("#"+closeId).parent().parent().next("tr").hide();
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
</div>
<h3 class="page-title">
<spring:message code="ssl_record" />
</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="log" action="${ctx}/log/ntc/sslRecord/list" 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}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<input id="isLogTotalSearch" name="isLogTotalSearch" type="hidden" value="${log.isLogTotalSearch}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<c:forEach items="${serviceList}" var="service"
varStatus="satus">
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
<c:if test="${(dict.itemCode eq service.action) && (service.action ne 128) && (service.action ne 32) && (service.action ne 96) }">
<form:option value="${service.serviceId}"><spring:message code="${dict.itemValue}"/></form:option>
</c:if>
</c:forEach>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control">SNI</span>
</div>
<input name="sni" type="text" class="form-control input-small" value="${log.sni}"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<%-- <input name="searchFoundStartTime" id="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:setTimee,dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{$dp.$D(\'searchFoundEndTime\')}'});"/> --%>
<input name="searchFoundStartTime" id="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundStartTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<%-- <input name="searchFoundEndTime" id="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,minDate:'#F{$dp.$D(\'searchFoundStartTime\')}',maxDate:'#F{$dp.$D(\'searchFoundStartTime\',{d:1})}'});"/> --%>
<input name="searchFoundEndTime" id="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
value="${log.searchFoundEndTime}" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#searchFoundStartTime','#searchFoundEndTime',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
</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"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<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="export"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><sys:delRow url="${ctx}/log/ntc/sslRecord/exportSsl?type=excel" searchUrl="${ctx}/log/ntc/sslRecord/list" id="contentTable" maxRow="10000" label="excel"></sys:delRow></li>
<li><sys:delRow url="${ctx}/log/ntc/sslRecord/exportSsl?type=csv" searchUrl="${ctx}/log/ntc/sslRecord/list" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<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="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clj_ip"/></label>
<input name="capIp" type="text" class="form-control" value="${log.capIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="transport_layer_protocol"/></label>
<form:select path="transProto" class="selectpicker form-control select2">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input name="dIp" type="text" class="form-control" value="${log.dIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"/></label>
<input name="sIp" type="text" class="form-control" value="${log.sIp}"/>
</div>
</div>
<%-- <div class="col-md-2">
<div class="form-group">
<label><spring:message code="direction"/></label>
<form:select path="direction" class="selectpicker form-control select2">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div> --%>
</div>
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="cfg_id"></spring:message></label>
<input name="cfgId" type="text" class="form-control logCfgId number" value="${log.cfgId }"/>
</div>
</div>
</div>
</div>
</form:form>
</div>
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" column="cfg_id"><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false" column="action"><spring:message code="action"/></th>
<th class="sort-column found_time" column="found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false" column="recv_time"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false" column="entrance_id"><spring:message code="entrance_id"/></th>
<th class="sort-column version" column="version"><spring:message code="version" /></th>
<th class="sort-column sni" column="SNI">SNI</th>
<th class="sort-column san" column="SAN">SAN</th>
<th class="sort-column cn" column="CN">CN</th>
<th class="sort-column cap_ip" isVisible="false" column="clj_ip"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto" column="transport_layer_protocol"><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type" column="addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip" column="server_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip" column="client_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port" column="server_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port" column="client_port"><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false" column="deviceid"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false" column="link_id"><spring:message code="link_id"/></th>
<th class="sort-column encap_type" column="encap_type"><spring:message code="encap_type"/></th>
<th class="sort-column direction" column="direction"><spring:message code="direction"/></th>
<th class="sort-column inner_smac" column="inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac" column="inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir" column="stream_type"><spring:message code="stream_type"/></th>
<th class="sort-column addr_list" column="nest_addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate" column="server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate" column="client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false" column="s_asn"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false" column="d_asn"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false" column="s_subscribe_id"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false" column="d_subscribe_id"><spring:message code='d_subscribe_id'/></th>
<%-- <th class="sort-column user_region" isVisible="false" column="user_region"><spring:message code='user_region'/></th> --%>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file" column="scene_file"><spring:message code='scene_file'/></th></c:if>
</tr>
</thead>
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>
<%-- <span id="open${status.index}" class="log-open-cfg" compileId="${log.cfgId }"> ▷ </span><span style="display: none" id="close${status.index}" > ▼ </span> --%>
<a href="javascript:void(0)" name="viewLogInfo" url="${ctx}/ntc/website/ajaxSslSubList" compileId="${log.cfgId }" ><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:set var="actions">${log.action }</c:set>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
<c:set var="actions">${dict.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${actions}"/>
</td>
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>
<td>
<c:set var="entrances">${log.entranceId }</c:set>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="dic">
<c:if test="${dic.itemCode eq log.entranceId}">
<c:set var="entrances">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${entrances}"/>
</td>
<td>${log.version }</td>
<td>${log.sni }</td>
<td>${log.san }</td>
<td>${log.cn }</td>
<td >${log.capIp}</td>
<td>
<c:set var="transProtos">${log.transProto }</c:set>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dic">
<c:if test="${dic.itemCode eq log.transProto}">
<c:set var="transProtos">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${transProtos}"/>
</td>
<td>
<c:set var="addrTypes">${log.addrType }</c:set>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}">
<c:set var="addrTypes">${dic.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${addrTypes}"/>
</td>
<td >${log.dIp}</td>
<td >${log.sIp}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:set var="deviceIds">${log.deviceId }</c:set>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}">
<c:set var="deviceIds">${device.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${deviceIds}"/>
</td>
<td>
<c:set var="linkIds">${log.linkId }</c:set>
<c:forEach items="${fns:getDictList('LINK')}" var="link">
<c:if test="${link.itemCode eq log.linkId}">
<c:set var="linkIds">${link.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${linkIds}"/>
</td>
<td>
<c:set var="encapTypes">${log.encapType }</c:set>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}">
<c:set var="encapTypes">${encapType.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${encapTypes}"/>
</td>
<td>
<c:set var="directions">${log.direction }</c:set>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}">
<c:set var="directions">${direction.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${directions}"/>
</td>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:set var="streamDirs">${log.streamDir }</c:set>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">
<c:set var="streamDirs">${streamType.itemValue}</c:set>
</c:if>
</c:forEach>
<spring:message code="${streamDirs}"/>
</td>
<td>${log.addrList }</td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
<td>${log.sAsn}</td>
<td>${log.dAsn}</td>
<td>${log.sSubscribeId}</td>
<td>${log.dSubscribeId}</td>
<%-- <td>${log.userRegion}</td> --%>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.sceneFile}</td></c:if>
</tr>
</c:forEach>
</tbody>
</table><div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -192,7 +192,7 @@
});
// 如果在框架或在对话框中,则弹出提示并跳转到首页
if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){
/* if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){
top.$.jBox.confirm("<spring:message code='login_timeout'/>","<spring:message code='info'/>",function(v,h,f){
if(v=="ok"){
@@ -202,9 +202,16 @@
}
},{buttonsFocus:1});
top.$('.jbox-body .jbox-icon').css('top','55px');
} */
if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){
top.$.jBox.prompt("<spring:message code='login_timeout'/>", "<spring:message code='info'/>", 'info', {
closed: function () {
top.location = "${pageContext.request.contextPath }";
}
});
top.$('.jbox-body .jbox-icon').css('top','55px');
}
});
</script>
<script type="text/javascript">

View File

@@ -68,40 +68,65 @@
dataType:"json",
success:function(data){
if(data !=null){
var thData=$('#contentTable thead tr th');
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr +='<table id="printTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column s_asn"><spring:message code="asn"/></th>';
userTableStr += '<th class="sort-column pps"><spring:message code="pps"/></th>';
userTableStr += '<th class="sort-column bps"><spring:message code="bps"/></th>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='asn'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="asn"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='pps'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="pps"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='bps'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="bps"/></td>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr>';
userTableStr += '<td>';
userTableStr += data[j].asn;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].pps;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].bps;
userTableStr += '</td>';
userTableStr += '<tr>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='asn'/>") {
userTableStr += '<td>';
userTableStr += data[j].asn;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='pps'/>") {
userTableStr += '<td>';
userTableStr += data[j].pps;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='bps'/>") {
userTableStr += '<td>';
userTableStr += data[j].bps;
userTableStr += '</td>';
}
}
userTableStr += '</tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
//为某一列或者 某一行 添加样式
addPrintTableCss(data.length,0,"printTable","print-title");
}
}
});
//为某一列或者 某一行 添加样式
// addPrintTableCss(5,2,"printTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="asn_conn_report"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$('[name="searchFoundStartTime"]').val()+'&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$('[name="searchFoundEndTime"]').val()+'</div>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
}

View File

@@ -92,54 +92,114 @@
dataType:"json",
success:function(data){
if(data !=null){
var thData=$('#contentTable thead tr th');
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr +='<table id="printTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="task_id"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_name"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="ip_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="http_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="mail_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="vedio_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="agent_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_time"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="stat_time"/></th>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_id'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_id"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_name'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_name"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="ip_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='http_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="http_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='mail_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="mail_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='vedio_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="vedio_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='agent_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="agent_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_time'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_time"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='stat_time'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="stat_time"/></td>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr><td>';
userTableStr += data[j].taskIds;
userTableStr += '</td><td>';
userTableStr += data[j].taskName;
userTableStr += '</td><td>';
userTableStr += data[j].ipNum;
userTableStr += '</td><td>';
userTableStr += data[j].httpNum;
userTableStr += '</td><td>';
userTableStr += data[j].mailNum;
userTableStr += '</td><td>';
userTableStr += data[j].vedioNum;
userTableStr += '</td><td>';
userTableStr += data[j].agentNum;
userTableStr += '</td><td>';
userTableStr += data[j].taskTime;
userTableStr += '</td><td>';
userTableStr += data[j].reportTime;
userTableStr += '</td><tr>';
userTableStr += '<tr>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_id'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskIds;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_name'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskName;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].ipNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='http_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].httpNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='mail_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].mailNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='vedio_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].vedioNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='agent_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].agentNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_time'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskTime;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='stat_time'/>") {
userTableStr += '<td>';
userTableStr += data[j].reportTime;
userTableStr += '</td>';
}
}
userTableStr += '</tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
//为某一列或者 某一行 添加样式
addPrintTableCss(data.length,0,"printTable","print-title");
}
}
});
//为某一列或者 某一行 添加样式
// addPrintTableCss(4,2,"printTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="ntc_event_block_report"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="task_time"/>:'+$('[name="searchTaskStartTime"]').val()+'—'+$('[name="searchTaskEndTime"]').val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="stat_time"/>:'+$('[name="searchReportStartTime"]').val()+'—'+$('[name="searchReportEndTime"]').val()+'</div>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
}

View File

@@ -93,51 +93,104 @@
dataType:"json",
success:function(data){
if(data !=null){
var thData=$('#contentTable thead tr th');
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr +='<table id="printTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="task_id"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_name"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="letter_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="config_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="monitor_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="control_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_time"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="stat_time"/></th>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_id'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_id"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_name'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_name"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='letter_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="letter_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='config_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="config_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='monitor_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="monitor_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='control_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="control_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_time'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_time"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='stat_time'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="stat_time"/></td>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr><td>';
userTableStr += data[j].taskIds;
userTableStr += '</td><td>';
userTableStr += data[j].taskName;
userTableStr += '</td><td>';
userTableStr += data[j].letterNum;
userTableStr += '</td><td>';
userTableStr += data[j].configNum;
userTableStr += '</td><td>';
userTableStr += data[j].monitorNum;
userTableStr += '</td><td>';
userTableStr += data[j].controlNum;
userTableStr += '</td><td>';
userTableStr += data[j].taskTime;
userTableStr += '</td><td>';
userTableStr += data[j].reportTime;
userTableStr += '</td><tr>';
userTableStr += '<tr>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_id'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskIds;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_name'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskName;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='letter_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].letterNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='config_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].configNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='monitor_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].monitorNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='control_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].controlNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_time'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskTime;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='stat_time'/>") {
userTableStr += '<td>';
userTableStr += data[j].reportTime;
userTableStr += '</td>';
}
}
userTableStr += '</tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
//为某一列或者 某一行 添加样式
addPrintTableCss(data.length,0,"printTable","print-title");
}
}
});
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="ntc_event_key_protection_report"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="task_time"/>:'+$('[name="searchTaskStartTime"]').val()+'—'+$('[name="searchTaskEndTime"]').val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="stat_time"/>:'+$('[name="searchReportStartTime"]').val()+'—'+$('[name="searchReportEndTime"]').val()+'</div>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
}

View File

@@ -101,54 +101,112 @@
dataType:"json",
success:function(data){
if(data !=null){
var thData=$('#contentTable thead tr th');
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr +='<table id="printTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="task_id"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_name"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="ip_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="http_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="mail_num"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="vedio_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="agent_count"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="task_time"/></th>';
userTableStr += '<th class="sort-column"><spring:message code="stat_time"/></th>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_id'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_id"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_name'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_name"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="ip_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='http_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="http_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='mail_num'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="mail_num"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='vedio_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="vedio_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='agent_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="agent_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_time'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="task_time"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='stat_time'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="stat_time"/></td>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr><td>';
userTableStr += data[j].taskIds;
userTableStr += '</td><td>';
userTableStr += data[j].taskName;
userTableStr += '</td><td>';
userTableStr += data[j].ipNum;
userTableStr += '</td><td>';
userTableStr += data[j].httpNum;
userTableStr += '</td><td>';
userTableStr += data[j].mailNum;
userTableStr += '</td><td>';
userTableStr += data[j].vedioNum;
userTableStr += '</td><td>';
userTableStr += data[j].agentNum;
userTableStr += '</td><td>';
userTableStr += data[j].taskTime;
userTableStr += '</td><td>';
userTableStr += data[j].reportTime;
userTableStr += '</td><tr>';
userTableStr += '<tr>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_id'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskIds;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_name'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskName;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].ipNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='http_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].httpNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='mail_num'/>") {
userTableStr += '<td>';
userTableStr += data[j].mailNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='vedio_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].vedioNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='agent_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].agentNum;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='task_time'/>") {
userTableStr += '<td>';
userTableStr += data[j].taskTime;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='stat_time'/>") {
userTableStr += '<td>';
userTableStr += data[j].reportTime;
userTableStr += '</td>';
}
}
userTableStr += '</tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
//为某一列或者 某一行 添加样式
addPrintTableCss(data.length,0,"printTable","print-title");
}
}
});
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="ntc_event_monitor_report"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="task_time"/>:'+$('[name="searchTaskStartTime"]').val()+'—'+$('[name="searchTaskEndTime"]').val();
title+='&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="stat_time"/>:'+$('[name="searchReportStartTime"]').val()+'—'+$('[name="searchReportEndTime"]').val()+'</div>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
}

View File

@@ -51,36 +51,61 @@
dataType:"json",
success:function(data){
if(data !=null){
var thData=$('#contentTable thead tr th');
var userTableStr='';
userTableStr +='<table class="table table-striped table-bordered table-condensed text-nowrap">';
userTableStr +='<table id="printTable" class="table table-striped table-bordered table-condensed text-nowrap">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column"><spring:message code="ip_start"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="ip_end"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="ip_sub"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="country"/></td>';
userTableStr += '<th class="sort-column"><spring:message code="desc"/></td>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_start'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="ip_start"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_end'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="ip_end"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_sub'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="ip_sub"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='country'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="country"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='desc'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="desc"/></td>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr>';
userTableStr += '<td>';
userTableStr += data[j].ipStart;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].ipEnd;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].ipSub;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].country;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].desc;
userTableStr += '</td>';
userTableStr += '<tr>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_start'/>") {
userTableStr += '<td>';
userTableStr += data[j].ipStart;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_end'/>") {
userTableStr += '<td>';
userTableStr += data[j].ipEnd;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_sub'/>") {
userTableStr += '<td>';
userTableStr += data[j].ipSub;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='country'/>") {
userTableStr += '<td>';
userTableStr += data[j].country;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='desc'/>") {
userTableStr += '<td>';
userTableStr += data[j].desc;
userTableStr += '</td>';
}
}
userTableStr += '</tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
@@ -88,11 +113,15 @@
}
}
});
//为某一列或者 某一行 添加样式
// addPrintTableCss(4,2,"printTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;"><spring:message code="ip_range_report"/></h3>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
}

View File

@@ -429,28 +429,50 @@ function customColumnClick(){
}
//打印
function doPrint() {
var reportBusinessType=$("#reportBusinessType").val()
var tableId="tagTable";
if(reportBusinessType=="label_report"){
document.getElementById("tabTablePrint").scrollTop = 0;
$('th').css('transform','translateY(0px)');
$('thead tr').css('position','relative');
$('th').css('border','1px solid rgb(255, 255, 255)');
$('th').css('background-clip','padding-box');
var reportBusinessType=$("#reportBusinessType").val()
var tableId="tagTable";
var tabTitleName="<spring:message code='lwhh_report'/>";
if(reportBusinessType=="label_report"){
tableId="tagTable";
}else if(reportBusinessType=="lwhh_report"){
tabTitleName="<spring:message code='label_report'/>";
}else if(reportBusinessType=="lwhh_report"){
tableId="lwhhTable";
tabTitleName="<spring:message code='lwhh_report'/>";
}else if(reportBusinessType=="src_ip_report"){
tableId="contentTable1";
tabTitleName="<spring:message code='src_ip_report'/>";
}else if(reportBusinessType=="attr_type_report"){
tableId="attrTypeTable";
tabTitleName="<spring:message code='attr_type_report'/>";
}else if(reportBusinessType=="dest_ip_report"){
tableId="destIpTable";
tabTitleName="<spring:message code='dest_ip_report'/>";
}else if(reportBusinessType=="isp_report"){
tableId="entranceIdTable";
tabTitleName="<spring:message code='isp_report'/>";
}
$("#"+tableId+" tbody tr").removeAttr("style");
$("#"+tableId).print({
//为某一列或者 某一行 添加样式
addPrintTableCss(1,0,tableId,"print-title");
var timeType = $("#reportType").find("option:selected").text();
var time = $("#intype").val();
var title='<h3 style="text-align: center;font-weight:bold;">'+$("[name=cfgName2]").val()+'<small>(<spring:message code="report_list"/>)</small></h3>';
title+='<div style="text-align:center;font-weight:bold;">'+timeType+'&nbsp;&nbsp;&nbsp;'+time+'&nbsp;&nbsp;&nbsp;'+tabTitleName+'</div>';
$("#"+tableId).print({
globalStyles: true,
iframe: true,
append: null
});
append: null,
prepend: title
});
$("#"+tableId+" tbody td").removeClass("print-title");
pagination(30);
}
@@ -492,6 +514,10 @@ function customColumnClick(){
}
num++;
});
if(column.length ==0 ){
top.$.jBox.tip("<spring:message code='all_columns_hidden'/>", "<spring:message code='info'/>");
return;
}
for(var i=1 ; i<rows.length;i++){
var rowMap=[];
for (var j = 0; j <index.length ; j++) {
@@ -690,7 +716,7 @@ white-space:nowrap;
</c:if>
><a class="lireport" data-bussiness="isp_report" data-toggle="tab" href="#entranceId" title="<spring:message code="isp_report"/>"><spring:message code="isp_report"/></a></li>
</ul>
<div class="tab-content table-responsive">
<div id="tabTablePrint" class="tab-content table-responsive">
<div id="lwhh" class="tab-pane fade
<c:if test="${bean.reportBusinessType eq 'lwhh_report' or bean.reportBusinessType ==null}">
in active

View File

@@ -72,40 +72,65 @@
dataType:"json",
success:function(data){
if(data !=null){
var thData=$('#contentTable thead tr th');
var userTableStr='';
userTableStr +='<table style="word-wrap:break-word; word-break:break-all;" class="table table-striped table-bordered table-condensed ">';
userTableStr +='<table id="printTable" style="word-wrap:break-word; word-break:break-all;" class="table table-striped table-bordered table-condensed ">';
userTableStr += '<thead>';
userTableStr += '<tr>';
userTableStr += '<th class="sort-column "><spring:message code="url"/></td>';
userTableStr += '<th class="sort-column "><spring:message code="ip_count"/></td>';
userTableStr += '<th class="sort-column "><spring:message code="counnection_count"/></td>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='url'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="url"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="ip_count"/></td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='counnection_count'/>") {
userTableStr += '<td class="sort-column print-title"><spring:message code="counnection_count"/></td>';
}
}
userTableStr += '</tr>';
userTableStr += '</thead>';
userTableStr += '<tbody>';
for(var j=0;j<data.length;j++){
userTableStr += '<tr>';
userTableStr += '<td style="width:700px;">';
userTableStr += data[j].url;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].ipCount;
userTableStr += '</td>';
userTableStr += '<td>';
userTableStr += data[j].connCount;
userTableStr += '</td>';
userTableStr += '<tr>';
for (var i = 0; i < thData.length; i++) {
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='url'/>") {
userTableStr += '<td style="width:700px;">';
userTableStr += data[j].url;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='ip_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].ipCount;
userTableStr += '</td>';
}
if (thData[i].style.display !="none" && thData[i].innerHTML=="<spring:message code='counnection_count'/>") {
userTableStr += '<td>';
userTableStr += data[j].connCount;
userTableStr += '</td>';
}
}
userTableStr += '</tr>';
}
userTableStr +='</tbody>';
userTableStr +='</table>';
$("#contentPrintTable").html(userTableStr);
//为某一列或者 某一行 添加样式
addPrintTableCss(data.length,0,"printTable","print-title");
}
}
});
//为某一列或者 某一行 添加样式
// addPrintTableCss(4,2,"printTable","print-title");
var title='<h3 style="text-align: center;font-weight:bold;" ><spring:message code="https_url_report"/></h3>';
title+='<div style="text-align:center;font-weight:bold;"><spring:message code="begin_date"/>:'+$('[name="searchReportStartTime"]').val()+'&nbsp;&nbsp;&nbsp;&nbsp;';
title+='<spring:message code="end_date"/>:'+$('[name="searchReportEndTime"]').val()+'</div>';
$("#contentPrintTable").css('display','block');
$("#contentPrintTable").print({
globalStyles: true,
iframe: true,
append: null
append: null,
prepend: title
});
$("#contentPrintTable").css('display','none');
}

View File

@@ -94,4 +94,8 @@ margin-top: 20px;
/* <20><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>,<2C><>ӡ<EFBFBD><D3A1>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʾ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
.css-print{
display: none;
}
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD> */
.print-title{
font-weight:bold;
}

File diff suppressed because it is too large Load Diff

View File

@@ -85,6 +85,7 @@
ipMaskSole:"IP already exists.",
noStrategyCheck:"No effective spoofing IP configuration",
keywordLength:"Please enter a value between 4 and 1024 characters long.",
arbitrary:"Arbitrarily"
arbitrary:"Arbitrarily",
log_trend:"Log Trend"
});
}(jQuery));

View File

@@ -85,6 +85,7 @@
ipMaskSole:"IP уже существует.",
noStrategyCheck:"No effective spoofing IP configuration",
keywordLength:"Введите между 4 и 1024 символов длинной.",
arbitrary:"Любой"
arbitrary:"Любой",
log_trend:"Журнал Тенденция"
});
}(jQuery));

View File

@@ -85,6 +85,7 @@
ipMaskSole:"IP已存在",
noStrategyCheck:"策略组下无有效的欺骗IP配置",
keywordLength:"请输入一个长度介于4 和1024 之间的字符串",
arbitrary:"任意"
arbitrary:"任意",
log_trend:"日志趋势"
});
}(jQuery));

View File

@@ -0,0 +1,90 @@
$(function(){
$('.asnNo').selectpicker({
deselectAllText: $("#deselectAll").text(),
selectAllText: $("#selectAll").text()
});
initAsnOrganazation();
$(".organization").on("change",function(){
getASNNo(this,$(this).val(),$(this).find("option:selected").text().trim());
});
$(".organization").each(function(){
$(this).change();
});
});
/**
* 异步获取ASN组织
*/
var initAsnOrganazation=function(){
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.lastIndexOf("/nis")+4);
$.ajax({
type:'post',
url:pathName+'/basics/asnGroup/ajaxGetAsnOrg',
data:{"groupType":4},
dataType:'json',
async:false,
success:function (data,textStatus){
if(textStatus=="success"){
$(".organization").each(function(){
$(this).find("option[value!='']").remove();
for(var i in data) {
$(this).append("<option value='"+data[i].groupId+"'>"+data[i].groupName+"</option>");
}
$(this).selectpicker('refresh');
});
}
}
});
/***设定数据库值***/
$(".organization").each(function(){
if($(this).attr("name") != null && $(this).attr("name") != 'undefined'){
var asnObjName = ($(this).attr("name")).split("userRegion1")[0]+"organizationGroupId";
$(this).selectpicker('val',$("input[name='"+asnObjName+"']").val());
$(this).change();
}
});
}
/**
* ASN组织级联获取ASN NO
*/
var getASNNo=function(obj,orgGroupId,orgName){
if($(obj).attr("name") != null && $(obj).attr("name") != 'undefined'){
var asnObjName = ($(obj).attr("name")).split("userRegion1")[0]+"cfgKeywords";
$("select[name='"+asnObjName+"']").find("option").remove();
$("select[name='"+asnObjName+"']").selectpicker('refresh');
if(orgGroupId != ''){
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.lastIndexOf("/nis")+4);
$.ajax({
type:'post',
url:pathName+'/basics/asnGroup/ajaxGetAsnNo',
data:{"organization":orgName},
dataType:'json',
async:false,
success:function (data,textStatus){
if(textStatus=="success"){
for(var i in data) {
$("select[name='"+asnObjName+"']").append("<option value='"+data[i].asnId+"'>"+data[i].asnId+"</option>");
}
}
}
});
}
/***设定数据库值***/
$("select[name='"+asnObjName+"']").selectpicker('refresh');
var asnNoObjName = ($(obj).attr("name")).split("userRegion1")[0]+"asnNo";
if($("input[name='"+asnNoObjName+"']").val() == ''
|| $("input[name='"+asnNoObjName+"']").val() == null ){
$("select[name='"+asnObjName+"']").selectpicker('selectAll');
}else{
if($("input[name='"+asnNoObjName+"']").attr("used") == 'false' ){
$("select[name='"+asnObjName+"']").selectpicker('val',($("input[name='"+asnNoObjName+"']").val()).split(","));
}else{
$("select[name='"+asnObjName+"']").selectpicker('selectAll');
}
$("input[name='"+asnNoObjName+"']").attr("used",true);
}
}
}

View File

@@ -399,7 +399,9 @@ $(function(){
options = $("select[name='"+objNamePrefix+"matchMethod']").find("option[value!=0]");
}
//表单中如果有关键字内容可能输入多个关键字的情况,根据输入关键字个数确定表达式选中情况,不允许手动选中
$("input:radio[name='"+objNamePrefix+"exprType']").attr("disabled",true);
if($("select[name='"+objNamePrefix+"district']").val()!="Payload"){//如果是app 的payload特征可选择表达式
$("input:radio[name='"+objNamePrefix+"exprType']").attr("disabled",true);
}
tagsInputSettings = tagsInputSettings+",#"+tagsId;
}
@@ -412,9 +414,9 @@ $(function(){
onAddTag:function(tag,size){
var reg = new RegExp(/\t|\r|\n/);
if (tag.match(reg)) {
$(this).parents(".col-md-6").next("div").html("<label class='error'>"+$.validator.messages.hasInvisibleChar.replace("{0}","'"+tag+"'")+"</label>");
$(this).parent(".col-md-6").next("div").html("<label class='error'>"+$.validator.messages.hasInvisibleChar.replace("{0}","'"+tag+"'")+"</label>");
}else{
$(this).parents(".col-md-6").next("div").html("");
$(this).parent(".col-md-6").next("div").html("");
}
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
@@ -425,7 +427,7 @@ $(function(){
exprTypeChecked(objNamePrefix,size,options);
},
onRemoveTag:function(tag,size){
$(this).parents(".col-md-6").next("div").html("");
$(this).parent(".col-md-6").next("div").html("");
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
/*$("span[class='tag']").each(function(){
@@ -1679,4 +1681,23 @@ function heightDiv(type){
}
}
window.onresize=heightDiv;
/* 打印时,为列表的某一行或者某一列添加CSS样式
* 例子如果不用添加样式就把行数和列数设置为0
* var rowValue=3; 行数
* var cellValue=2; 列数
* var tableIdValue="printTable"; table的ID的值
* var cssName="print-title print-background-color"; 要添加的class样式的名字
* */
function addPrintTableCss(rowValue,cellValue,tableIdValue,cssName){
var rows=document.getElementById(""+tableIdValue).rows;
for (var i = 0; i < rows.length; i++) {
for (var k = 0; k <rows[i].cells.length ; k++) {
if (rowValue >0 && rowValue <rows.length && rowValue== i) {
rows[i].cells[k].className=cssName;
}
if (cellValue>0 && cellValue<=rows[0].cells.length&& (cellValue-1)==k && i !=0) {
rows[i].cells[k].className=cssName;
}
}
}
}

View File

@@ -112,11 +112,15 @@ var getTotalLog=function(){
data.compileIds=[];
data.serviceIds=[];
data.objs=[];
// data.url=null;
$("td[compileId]").each(function(){
var audit=$(this).attr("audit");
var compileId=$(this).attr("compileId");
var serviceId=$(this).attr("serviceId");
var functionId=$(this).attr("functionId");
/* if(data.url==null){
data.url=$(this).attr("url");
}*/
if(audit&&compileId&&functionId&&serviceId){
if(audit != 0){
var has=false;
@@ -168,8 +172,10 @@ var GetLogTotal=function(_data){
var hasLog=false;
for(var i=0;i<data.length;i++){
if($(this).attr("compileId")==data[i].compileId){
var serviceId= $(this).attr("serviceId");
$(this).attr("id",i+"logTotal");
$(this).html(data[i].sum);
//$(this).html(data[i].sum);
$(this).html("<a href='javascript:;' onclick='logSearch(\""+data[i].compileId+"\",\""+serviceId+"\")'>"+data[i].sum+"<a>");
$(this).parent("tr").find("td:eq(1)").html("<a href='javascript:;' onclick='toLogSearch("+i+")'>"+data[i].compileId+"<a>");
hasLog=true;
}
@@ -519,8 +525,8 @@ function setEndTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,forma
}
var startTimeVal=$(startTimeSelector).val();
var endTimeVal=$(endTimeSelector).val();
alert(startTimeVal);
alert(endTimeVal);
//alert(startTimeVal);
//alert(endTimeVal);
//alert(startTimeVal.substr(0,formatParm.length-1);
var startTime;
var endTime;
@@ -646,4 +652,22 @@ function setStartTimeByFormat(startTimeSelector,endTimeSelector,granule,unit,for
$(startTimeSelector).val(dateFtt(formatParm,startTime)+endStr);
$(endTimeSelector).val(dateFtt(formatParm,endTime)+endStr);
}
function logSearch(cfgId,serviceId){
var title=$.validator.messages.log_trend;
var url=$("#jbox_cfg_url",parent.document).val();
url=url+"?cfgId="+cfgId+"&serviceId="+serviceId;
top.$.jBox("iframe:"+url, {
title: title,
width: $(document).width()*0.8,
height: $(document).height()*0.8,
buttons: { close : true },
loaded : function(h) { //隐藏滚动条
$(".jbox-content", top.document).css( "overflow-y", "hidden");
}
});
//alert(cfgId+'======'+url);
}
/*======================新增按照需求指定时间范围如取到天、小时等end=====================================*/

View File

@@ -1327,7 +1327,8 @@ function echart_topic_domain(rs){
var data=[{
'id': '0.0',
// 'parent': '',
'name': 'Service'
'name': 'Service',
color:'#265197'
}];
var unit="bytes";
$(rs).each(function(i,d){
@@ -1342,6 +1343,7 @@ function echart_topic_domain(rs){
if(inoctetsNum>0){
/****主题中的子域名*******/
var topicData=0;
$(d.domainData).each(function(j,t){
var domainNum=t.byteCount;
var domainNumK=domainNum/1024;
@@ -1373,14 +1375,13 @@ function echart_topic_domain(rs){
plotBorderWidth:null,
plotShadow:false,
marginTop:50,
marginBottom:10,
marginBottom:10
},
/* navigation: {
buttonOptions: {
x:-5,
y:15,
}
},*/
noData:{
style: {//设置字体颜色
color: '#fff',
},
},
exporting: {
allowHTML:true,
filename:'Service'+addDateName(),
@@ -1399,18 +1400,9 @@ function echart_topic_domain(rs){
},
buttons: exportingButton('#6e6379')
},
//colors:[ '#44A9A8', '#f36f8a','#25f3e6','#ffff43','#964CEC','#32B0ED','#2b6ed7','#7278DD','#2DA9D8','#C66FE6','#0099cc','#cc0033','#ff6633','#99cccc','#d9f9d0'],
// colors:['#003078','#004bbc', '#015bb1', '#2f74b5', '#4186c1', '#0058e1','#066aff', '#5597cd', '#5c9dff', '#67a7de', '#77b5dc', '#98cde7','#89b9ff','#78adff'],
// colors:['#008ef9','#0594ff', '#002540', '#004679', '#025ba1', '#026fc0','#0279d5'],
// colors:['#002540','#004679','#025ba1', '#026fc0', '#0279d5', '#0086e9', '#008ef9','#0594ff', '#25a2ff', '#63bbff', '#88cbff'],
colors:[ '#1C4573','#275A9C', '#306EB9', '#3579CE', '#3C85E1', '#3E8EF1','#4294F7', '#4294F7', '#98CBFA'],
// colors:colors,
noData:{
style: {//设置字体颜色
color: '#fff',
},
},
title: {
// colors:[ '#1C4573','#275A9C', '#306EB9', '#3579CE', '#3C85E1', '#3E8EF1','#4294F7', '#4294F7', '#98CBFA'],
colors:['#013fa2', '#014ecb', '#015ef4', '#01378e', '#014abd','#0156df','#0b68fe'],
title: {
text: null
},
credits:{//是否有highcharts水印
@@ -1421,19 +1413,19 @@ function echart_topic_domain(rs){
data: data,
allowDrillToNode: true,
cursor: 'pointer',
colorByPoint: true,
//colorByPoint: true,
dataLabels: {
//format: '{point.name}',
/*formatter: function(){
formatter: function(){
this.point.value = this.point.value.toFixed(2);
this.series.name = this.point.name;
console.info(this);
},*/
filter: {
},
filter: {
property: 'innerArcLength',
operator: '>',
value: 16
}
}
},
levels: [{
level: 1,
@@ -1470,7 +1462,8 @@ function echart_topic_domain(rs){
}],
plotOptions: {
sunburst: {
borderColor: "",
borderColor: "#ffffff",
borderWidth:0.2,
dataLabels: {
enabled: true,
style: {//设置字体颜色
@@ -1480,7 +1473,7 @@ function echart_topic_domain(rs){
textOutline:'none',
fontWeight:'normal'
},
format: '{point.name}',
format: '{point.name}'
}
}
},
@@ -1488,7 +1481,53 @@ function echart_topic_domain(rs){
headerFormat: "",
pointFormat: '<b>{point.name}</b> : <b>{point.value:.2f}<b> ' +unit
}
});
}/*{
chart: {
backgroundColor: 'rgba(255, 255, 255, 0)',
plotBackgroundColor:null,
plotBorderWidth:null,
plotShadow:false,
marginTop:50,
marginBottom:10
},
title: {
text: '2017 世界人口分布'
},
subtitle: {
text: '数据来源: <href="https://en.wikipedia.org/wiki/List_of_countries_by_population_(United_Nations)">Wikipedia</a>'
},
series: [{
type: "sunburst",
data: data,
allowDrillToNode: true,
cursor: 'pointer',
dataLabels: {
*//**
* A custom formatter that returns the name only if the inner arc
* is longer than a certain pixel size, so the shape has place for
* the label.
*//*
},
levels: [{
level: 2,
colorByPoint: true,
dataLabels: {
rotationMode: 'parallel'
}
},
{
level: 3,
colorVariation: {
key: 'brightness',
to: -0.5
}
}]
}],
tooltip: {
headerFormat: "",
pointFormat: '<b>{point.name}</b>的人口数量是:<b>{point.value}</b>'
}
}*/);
}
function exportingButton(color) {

View File

@@ -16,7 +16,7 @@ var home = function () {
//顶部导航顶级菜单事件
$(".mega-menu li a").click(function(e){
top.$.jBox.close(true);
var $this = $(this);
var next_ul = $this.next("ul");
var prev_ul = $this.parents("ul");
@@ -72,7 +72,6 @@ var home = function () {
}*/
})

View File

@@ -95,7 +95,7 @@
}
}
}
if(current + opts.count < pageCount && current >= 1 && pageCount > opts.count){
if(current + opts.count < pageCount && current >= 1 && pageCount > opts.count && end!=5){// 先暂时定5 防止5页的时候显示
var end = opts.coping && opts.endPage ? opts.endPage : pageCount;
html += opts.coping ? '<span class="dian-dian">...</span><a href="javascript:;" data-page="'+pageCount+'">'+end+'</a>' : '';
}