voip ip日志隐藏文件相关属性,国际化俄文提交

This commit is contained in:
段冬梅
2018-12-11 09:36:47 +08:00
parent e7bb1920f3
commit f4a28d2c75
3 changed files with 412 additions and 410 deletions

View File

@@ -1351,8 +1351,8 @@ traffic=Traffic
ip_info=IP Info
original_dest_ip=Original destination address
original_dest_port=Original destination port
translated_dest_ip=Post-translational destination address
translated_dest_port=Post-translational destination port
translated_dest_ip=Translated destination address
translated_dest_port=Translated destination port
show_ips=View all IP
show_available_ips=View available IP
log_search_http_monit=HTTP Monitor

View File

@@ -1344,19 +1344,21 @@ crl_file=\u0424\u0430\u0439\u043B Crl
equal_password=\u041D\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043F\u0430\u0440\u043E\u043B\u0438!
cgi_failed=CGL \u0441\u0435\u0440\u0432\u0435\u0440
ip_check=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441
user_type=User Type
policy_vpn_user=VPN access user name
policy_sipv4_user=Three tier access to IP(IPv4)
policy_sipv6_user=Three tier access to IP(IPv6)
policy_vpn_user=\u0418\u043C\u044F \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F VPN \u0414\u043E\u0441\u0442\u0443\u043F\u0430
policy_sipv4_user=\u0422\u0440\u0435\u0445\u0443\u0440\u043E\u0432\u043D\u0435\u0432\u044B\u0439 \u0414\u043E\u0441\u0442\u0443\u043F \u043A IP (IPv4)
policy_sipv6_user=\u0422\u0440\u0435\u0445\u0443\u0440\u043E\u0432\u043D\u0435\u0432\u044B\u0439 \u0414\u043E\u0441\u0442\u0443\u043F \u043A IP (IPv6)
creat_time=\u0412\u0440\u0435\u043C\u044F \u0421\u043E\u0437\u0434\u0430\u043D\u0438\u044F
close_time=\u0412\u0440\u0435\u043C\u044F \u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F
nat_ip=\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u044B\u0439 \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441
traffic=\u0422\u0440\u0430\u0444\u0438\u043A
ip_info=IP Info
original_dest_ip=Original destination address
original_dest_port=Original destination port
translated_dest_ip=Post-translational destination address
translated_dest_port=Post-translational destination port
show_ips=View all IP
show_available_ips=View available IP
log_search_http_monit=HTTP Monitor
log_search_http_reject=HTTP Block
log_search_keyword_monit=Keyword Monitor
log_search_keyword_reject=Keyword Block
ip_info=IP \u0418\u043D\u0444\u043E
original_dest_ip=\u041E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u044C\u043D\u044B\u0439 \u0410\u0434\u0440\u0435\u0441 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
original_dest_port=\u041E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u044C\u043D\u044B\u0439 \u041F\u043E\u0440\u0442 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
translated_dest_ip=\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 \u0410\u0434\u0440\u0435\u0441 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
translated_dest_port=\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043D\u043D\u044B\u0439 \u041F\u043E\u0440\u0442 \u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F
show_ips=\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0412\u0441\u0435 IP
show_available_ips=\u041F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 IP
log_search_http_monit=HTTP \u041C\u043E\u043D\u0438\u0442\u043E\u0440\u0438\u043D\u0433
log_search_http_reject=HTTP \u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435
log_search_keyword_monit=\u041C\u043E\u043D\u0438\u0442\u043E\u0440\u0438\u043D\u0433 \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0421\u043B\u043E\u0432
log_search_keyword_reject=\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0445 \u0421\u043B\u043E\u0432

View File

@@ -1,393 +1,393 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$(':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/av/ajaxVoipIpInfo',
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+"']").eq(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="av_voip_control"/>
</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/mmVoipIpLogs" 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 id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</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 id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</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">
<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="transport_layer_protocol"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<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="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="direction"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<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 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="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
<div class="col-md-2">
<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>
<!-- /筛选搜索内容栏 结束-->
</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" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<th class="sort-column duation"><spring:message code='duation'/></th>
<th class="sort-column voip_protocol"><spring:message code='voip_protocol'/></th>
<th class="sort-column calling_account"><spring:message code='calling_account'/></th>
<th class="sort-column called_account"><spring:message code='called_account'/></th>
<th class="sort-column calling_number" isVisible="false"><spring:message code='calling_number'/></th>
<th class="sort-column called_number" isVisible="false"><spring:message code='called_number'/></th>
<th><spring:message code='from_to_store_ip'/></th>
<th><spring:message code='from_to_store_url'/></th>
<th><spring:message code='to_from_store_ip'/></th>
<th><spring:message code='to_from_store_url'/></th>
<th class="sort-column pid" isVisible="false"><spring:message code='pid'/></th>
<th class="sort-column log_uri"><spring:message code='log_uri'/></th>
<th class="sort-column level" isVisible="false"><spring:message code='harm_level'/></th>
<th class="sort-column fd_type" isVisible="false"><spring:message code='fd_type'/></th>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="protocol_type"/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th class="sort-column encap_type"><spring:message code="encap_type"/></th>
<%-- <th class="sort-column direction"><spring:message code="direction"/></th> --%>
<th class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir"><spring:message code="stream_type"/></th>
<th class="sort-column addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-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"><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.duation}</td>
<td>${log.voipProtocol}</td>
<td>${log.callingAccount }</td>
<td>${log.calledAccount }</td>
<td>${log.callingNumber}</td>
<td>${log.calledNumber}</td>
<td>${log.fromToStoreIp}</td>
<td>${log.fromToStoreUrl}</td>
<td>${log.toFromStoreIp}</td>
<td>${log.toFromStoreUrl}</td>
<td>${log.pid}</td>
<td>
<c:if test="${fn:startsWith(log.logUri, 'http')}">
<a href="${log.logUri}" data-original-title="${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fn:substring(log.logUri,0,20) }
</a>
</c:if>
<c:if test="${!fn:startsWith(log.logUri, 'http') and !empty log.logUri}">
<a href="http://${log.logUri}" data-original-title="http://${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
http://${fn:substring(log.logUri,0,20) }
</a>
</c:if>
</td>
<td>${log.level}</td>
<!--0动态黑名单FD1静态配置FD2首次分析命中 -->
<td>
<c:if test="${log.fdType eq 0 }"><spring:message code="black_block_list"/></c:if>
<c:if test="${log.fdType eq 1 }"><spring:message code="static_cfg_block"/></c:if>
<c:if test="${log.fdType eq 2 }"><spring:message code="first_hit"/></c:if>
</td>
<td title="${log.capIp }">${fns:abbr(log.capIp, 42)}</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 title="${log.dIp }">${fns:abbr(log.dIp, 42)}</td>
<td title="${log.sIp }">${fns:abbr(log.sIp, 42)}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('LINK')}" var="link">
<c:if test="${link.itemCode eq log.linkId}"><spring:message code="${link.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}"><spring:message code="${encapType.itemValue}"/></c:if>
</c:forEach>
</td>
<%-- <td>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
</c:forEach>
</td> --%>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">${streamType.itemValue}</c:if>
</c:forEach>
</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>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$(':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/av/ajaxVoipIpInfo',
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+"']").eq(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="av_voip_control"/>
</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/mmVoipIpLogs" 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 id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</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 id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</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">
<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="transport_layer_protocol"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<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="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="direction"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<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 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="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
<div class="col-md-2">
<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>
<!-- /筛选搜索内容栏 结束-->
</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" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column duation"><spring:message code='duation'/></th></c:if>
<th class="sort-column voip_protocol"><spring:message code='voip_protocol'/></th>
<th class="sort-column calling_account"><spring:message code='calling_account'/></th>
<th class="sort-column called_account"><spring:message code='called_account'/></th>
<th class="sort-column calling_number" isVisible="false"><spring:message code='calling_number'/></th>
<th class="sort-column called_number" isVisible="false"><spring:message code='called_number'/></th>
<c:if test="${fns:getUser().isAdmin()}"><th><spring:message code='from_to_store_ip'/></th>
<th><spring:message code='from_to_store_url'/></th>
<th><spring:message code='to_from_store_ip'/></th>
<th><spring:message code='to_from_store_url'/></th></c:if>
<th class="sort-column pid" isVisible="false"><spring:message code='pid'/></th>
<%-- <th class="sort-column log_uri"><spring:message code='log_uri'/></th> --%>
<th class="sort-column level" isVisible="false"><spring:message code='harm_level'/></th>
<th class="sort-column fd_type" isVisible="false"><spring:message code='fd_type'/></th>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="protocol_type"/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th class="sort-column encap_type"><spring:message code="encap_type"/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column direction"><spring:message code="direction"/></th></c:if>
<th class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir"><spring:message code="stream_type"/></th>
<th class="sort-column addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-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"><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>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.duation}</td></c:if>
<td>${log.voipProtocol}</td>
<td>${log.callingAccount }</td>
<td>${log.calledAccount }</td>
<td>${log.callingNumber}</td>
<td>${log.calledNumber}</td>
<c:if test="${fns:getUser().isAdmin()}"><td>${log.fromToStoreIp}</td>
<td>${log.fromToStoreUrl}</td>
<td>${log.toFromStoreIp}</td>
<td>${log.toFromStoreUrl}</td></c:if>
<td>${log.pid}</td>
<c:if test="${fns:getUser().isAdmin()}"><td>
<c:if test="${fn:startsWith(log.logUri, 'http')}">
<a href="${log.logUri}" data-original-title="${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
${fn:substring(log.logUri,0,20) }
</a>
</c:if>
<c:if test="${!fn:startsWith(log.logUri, 'http') and !empty log.logUri}">
<a href="http://${log.logUri}" data-original-title="http://${log.logUri}" target="_blank"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
http://${fn:substring(log.logUri,0,20) }
</a>
</c:if>
</td></c:if>
<td>${log.level}</td>
<!--0动态黑名单FD1静态配置FD2首次分析命中 -->
<td>
<c:if test="${log.fdType eq 0 }"><spring:message code="black_block_list"/></c:if>
<c:if test="${log.fdType eq 1 }"><spring:message code="static_cfg_block"/></c:if>
<c:if test="${log.fdType eq 2 }"><spring:message code="first_hit"/></c:if>
</td>
<td title="${log.capIp }">${fns:abbr(log.capIp, 42)}</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 title="${log.dIp }">${fns:abbr(log.dIp, 42)}</td>
<td title="${log.sIp }">${fns:abbr(log.sIp, 42)}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('LINK')}" var="link">
<c:if test="${link.itemCode eq log.linkId}"><spring:message code="${link.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}"><spring:message code="${encapType.itemValue}"/></c:if>
</c:forEach>
</td>
<c:if test="${fns:getUser().isAdmin()}"><td>
<c:forEach items="${fns:getDictList('LOG_DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
</c:forEach>
</td></c:if>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">${streamType.itemValue}</c:if>
</c:forEach>
</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>