$(function(){
//全选及取消
$("#checkAll").change(function(){
if($("#checkAll").prop("checked")){
$("input.i-checks").prop("checked",true);
}else{
$("input.i-checks").prop("checked",false);
}
});
$("select[name$='ipType']").each(function(){
switchIpInfo(this);
})
$("select[name$='ipType']").on("change",function(){
switchIpInfo(this);
});
$("select[name$='ipPattern']").on("change",function(){
switchIpInfo(this);
});
$("select[name$='portPattern']").on("change",function(){
switchIpInfo(this);
});
$(".glyphicon-plus").on("click",function(){
var obj=$(this).parents(".form-section").next(".container-fluid").clone();
var len=$(this).parents("div").find(".container-fluid:visible").size();
if($(this).parent().parent().parent().attr("id")=="areaIp"){
obj.find("[id^='_areaCfg']").each(function(){
var name=$(this).attr("id").replace("_areaCfg.","");
$(this).removeAttr("id");
$(this).attr("name","areaCfg["+len+"]."+name);
$(this).parents(".form-group").find("div[for^='_areaCfg']").attr("for","areaCfg["+len+"]."+name);
$(this).selectpicker("refresh");
});
obj.removeClass("hidden");
switchIpInfo(obj.find("select[name$='ipType']"));
obj.find("select[name$='ipType']").on("change",function(){
switchIpInfo($(this));
});
obj.find("select[name$='ipPattern']").on("change",function(){
switchIpInfo($(this));
});
obj.appendTo("#areaIp");
$("#areaIsp").find(".container-fluid").each(function(){
if(!$(this).hasClass("hidden")) $(this).remove();
});
if(len==0){
$("#areaIp").find(".container-fluid:visible").eq(0).find("span[title=remove]").addClass("hidden");
}
}else if($(this).parent().parent().parent().attr("id")=="areaIsp"){
obj.find("[name^='areaCode']").each(function(){
$(this).attr("name","areaIsp["+len+"].area");
$(this).parents(".form-group").find("div[for^='areaCode']").attr("for","areaIsp["+len+"].area");
$(this).selectpicker("refresh");
});
obj.find("[name^='ispCode']").each(function(){
$(this).attr("name","areaIsp["+len+"].isp");
$(this).selectpicker("refresh");
});
obj.removeClass("hidden");
obj.appendTo("#areaIsp");
$("#areaIp").find(".container-fluid").each(function(){
if(!$(this).hasClass("hidden")) $(this).remove();
});
if(len==0){
$("#areaIsp").find(".container-fluid:visible").eq(0).find("span[title=remove]").addClass("hidden");
}
}
});
$("input[name='areaType']").on('change',function(){
var val=$(this).val();
if($(this).is(":visible")){
if(val==0){
$("#areaIp").removeClass("hidden");
$("#areaIsp").addClass("hidden");
if($("#areaIp").find(".container-fluid:visible").size() <1){
$("#areaIp").find(".glyphicon-plus").click();
}
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}else{
$("#areaIsp").removeClass("hidden");
$("#areaIp").addClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click();
}
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
}else{
$("#areaIsp").addClass("hidden");
$("#areaIp").addClass("hidden");
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
});
$("input[name='isAreaEffective']").on('change',function(){
var val=$(this).val();
if(val==1){
$(".areaType").find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
});
$(".areaType").removeClass("hidden");
if($("input[name='areaType']:checked").val()==1){//areaISP
$("#areaIsp").removeClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click();
}
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}else if($("input[name='areaType']:checked").val()==0){//areaIp
$("#areaIp").removeClass("hidden");
if($("#areaIp").find(".container-fluid:visible").size() <1){
$("#areaIp").find(".glyphicon-plus").click();
}
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}else{
$(".areaType").find("[value='1']").prop("checked",true);
$("#areaIsp").removeClass("hidden");
if($("#areaIsp").find(".container-fluid:visible").size() <1){
$("#areaIsp").find(".glyphicon-plus").click();
}
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).removeAttr("disabled");
$(this).removeClass("disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
}else{
$(".areaType").addClass("hidden");
$("#areaIp").addClass("hidden");
$("#areaIsp").addClass("hidden");
$(".areaType").find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
});
$("#areaIsp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
$("#areaIp").find(".container-fluid").each(function(){
$(this).find("input,select,div,button").each(function(){
$(this).attr("disabled","disabled");
})
});
}
});
areaControlInit();
/*=====关键字与表达式处理 开始=====*/
var tagsInputSettings="#tags";
$("input[name$='cfgKeywords']").each(function(){
var tagsId = $(this).attr("id");
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
var isTags = $(this).hasClass("tags");//有tags样式的关键字输入框才需处理
if(typeof(tagsId)!=='undefined' && tagsId.indexOf("tags_")!=-1 && isTags){
//表单中如果有关键字内容可能输入多个关键字的情况,根据输入关键字个数确定表达式选中情况,不允许手动选中
$("input:radio[name='"+objNamePrefix+"exprType']").attr("disabled",true);
tagsInputSettings = tagsInputSettings+",#"+tagsId;
}
});
$(tagsInputSettings).tagsInput({
width:$(".form-control").width(),
defaultText:'please input keywords',
onAddTag:function(tag,size){
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
/*$("span[class='tag']").each(function(){
keywordValue = keywordValue+"***iie***"+$(this).find("span").text().trim();
});
$(this).prev("input[name$='cfgKeywords']").val(keywordValue);*/
exprTypeChecked(objNamePrefix,size);
},
onRemoveTag:function(tag,size){
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
/*$("span[class='tag']").each(function(){
keywordValue = keywordValue+"***iie***"+$(this).find("span").text().trim();
});
$(this).prev("input[name$='cfgKeywords']").val(keywordValue);*/
exprTypeChecked(objNamePrefix,size);
}
});
$(".tagsinput").popover({
animation:true,
container:'body',
placement:'right',
html:true,
trigger:"hover",
title:"",
content:function(){
var content = "可同时输入多条关键字,请以英文逗号或者回车键隔开。";
return content;
}
});
/*=====关键字与表达式处理 结束=====*/
/*$("input[name$='cfgKeywords']").each(function(){
if($(this).hasClass("tags")){
if($(this).val()==''){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("");
flag = false;
return;
}
}
})*/
});
var switchIpType=function(obj){
var type=$(obj).val();
var row=$(obj).parents('.row');
var ipPattern=row.siblings().find("input[name$='ipPattern']");
var portPattern=row.siblings().find("input[name$='portPattern']");
var srcIp=row.siblings().find("input[name$='srcIpAddress']");
var dstIp=row.siblings().find("input[name$='destIpAddress']");
var srcPort=row.siblings().find("input[name$='srcPort']");
var dstPort=row.siblings().find("input[name$='destPort']");
if(4==type){
if(!$(srcIp).val()){
$(srcIp).val("0.0.0.0");
}else if($(srcIp).val()=="::"){
$(srcIp).val("0.0.0.0");
}
if(!$(dstIp).val()){
$(dstIp).val("0.0.0.0");
}else if($(dstIp).val()=="::"){
$(dstIp).val("0.0.0.0");
}
if(!$(srcPort).val()){
$(srcPort).val("0");
}
if(!$(dstPort).val()){
$(dstPort).val("0");
}
}
if(6==type){
if(!$(srcIp).val()){
$(srcIp).val("::");
}else if($(srcIp).val()=="0.0.0.0"){
$(srcIp).val("::");
}
if(!$(dstIp).val()){
$(dstIp).val("::");
}else if($(dstIp).val()=="0.0.0.0"){
$(dstIp).val("::");
}
if(!$(srcPort).val()){
$(srcPort).val("0");
}
if(!$(dstPort).val()){
$(dstPort).val("0");
}
}
}
//ipType、ipPattern、portPattern选项变化时调用此方法,添加默认值
var switchIpInfo=function(obj){
var ipType="";
var ipPattern="";
var portPattern="";
var row=$(obj).parents('.row').parent('.row');
ipType=row.find("select[name$='ipType']").val();
ipPattern=row.find("select[name$='ipPattern']").val();
portPattern=row.find("select[name$='portPattern']").val();
var srcIp=row.find("input[name$='srcIpAddress']");
var destIp=row.find("input[name$='destIpAddress']");
var srcPort=row.find("input[name$='srcPort']");
var destPort=row.find("input[name$='destPort']");
var ipV4Default=new Array();
ipV4Default[0]="0.0.0.0/8"; //subnet
ipV4Default[1]="0.0.0.0-1.1.1.1";//ip_range
ipV4Default[2]="0.0.0.0"; //ip
var ipV6Default=new Array();
ipV6Default[0]="::/64"; //subnet
ipV6Default[1]="::-::";//ip_range
ipV6Default[2]="::"; //ip
var portDefault=new Array();
portDefault[0]="0";//port
portDefault[1]="0/0";//port_mask
//IPv4设置默认值
if(4==ipType){
if(!$(srcIp).val()){
if(ipPattern==1){
$(srcIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV4Default[2]);
}
}else{
if($.inArray($(srcIp).val(),ipV4Default) > -1 || $.inArray($(srcIp).val(),ipV6Default) > -1){ //是ipV4的默认值其中一个
if(ipPattern==1){
$(srcIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV4Default[2]);
}
}
}
if(!$(destIp).val()){
if(ipPattern==1){
$(destIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV4Default[2]);
}
}else{
if($.inArray($(destIp).val(),ipV4Default) > -1 || $.inArray($(destIp).val(),ipV6Default) > -1){ //是ipV4的默认值其中一个
if(ipPattern==1){
$(destIp).val(ipV4Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV4Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV4Default[2]);
}
}
}
}
if(6==ipType){
if(!$(srcIp).val()){
if(ipPattern==1){
$(srcIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV6Default[2]);
}
}else{
if($.inArray($(srcIp).val(),ipV4Default) > -1 || $.inArray($(srcIp).val(),ipV6Default) > -1){ //是ipV6的默认值其中一个
if(ipPattern==1){
$(srcIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(srcIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(srcIp).val(ipV6Default[2]);
}
}
}
if(!$(destIp).val()){
if(ipPattern==1){
$(destIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV6Default[2]);
}
}else{
if($.inArray($(destIp).val(),ipV4Default) > -1 || $.inArray($(destIp).val(),ipV6Default) > -1){ //是ipV6的默认值其中一个
if(ipPattern==1){
$(destIp).val(ipV6Default[0]);
}else if(ipPattern==2){
$(destIp).val(ipV6Default[1]);
}else if(ipPattern==3){
$(destIp).val(ipV6Default[2]);
}
}
}
}
//设置源端口默认值
if(!$(srcPort).val()){
if(portPattern==1){
$(srcPort).val(portDefault[0]);
}else if(portPattern==2){
$(srcPort).val(portDefault[1]);
}
}else{
if($.inArray($(srcPort).val(),portDefault) > -1){ //是ipV4的默认值其中一个
if(portPattern==1){
$(srcPort).val(portDefault[0]);
}else if(portPattern==2){
$(srcPort).val(portDefault[1]);
}
}
}
//设置目的端口默认值
if(!$(destPort).val()){
if(portPattern==1){
$(destPort).val(portDefault[0]);
}else if(portPattern==2){
$(destPort).val(portDefault[1]);
}
}else{
if($.inArray($(destPort).val(),portDefault) > -1){ //是port的默认值其中一个
if(portPattern==1){
$(destPort).val(portDefault[0]);
}else if(portPattern==2){
$(destPort).val(portDefault[1]);
}
}
}
}
var areaControlInit=function(){
if($("input[name='isAreaEffective']:checked").val()==1){
$(".areaType").removeClass("hidden");
if($("input[name='areaEffectiveIds']").val()){
$(".areaType").find("[value='1']").prop("checked",true);
$("#areaIsp").removeClass("hidden");
$("#areaIp").addClass("hidden");
}else{
$(".areaType").find("[value='0']").prop("checked",true);
$("#areaIp").removeClass("hidden");
$("#areaIsp").addClass("hidden");
}
}else{
$("input[name='areaEffectiveIds']").val("");
$("input[name='isAreaEffective']").eq(1).prop("checked",true);
}
}
//查询
var page=function(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").submit();
return false;
}
//show more 添加更多属性
var more=function(obj){
var clickTimes=$(obj).data("click-times");
if(clickTimes==0){
$(".port").removeClass("hidden").removeClass("disabled");
$(obj).data("click-times",clickTimes+1);
}
if(clickTimes==1){
$(".destPort").removeClass("hidden").removeClass("disabled");
$(obj).data("click-times",clickTimes+1);
}
if(clickTimes==2){
$(".protocol").removeClass("hidden").removeClass("disabled");
$(obj).data("click-times",clickTimes+1);
}
var rows=$(obj).parent(".row").siblings(".row:hidden");
if(rows.size()==0){
$(obj).addClass("hidden");
}
}
var viewAreaInfo=function(path,areaEffectiveIds,compileId){
$.ajax({
type:'post',
url:path+'/ntc/av/area/ajaxAreaEffictiveInfo',
data:{"areaEffectiveIds":areaEffectiveIds,"compileId":compileId},
dataType:'json',
async:false,
success:function(data,textStatus){
if(textStatus=="success"){
var html = "";
var title="";
if(data.areaIsps.length > 0){
title=$.validator.messages.area+" "+$.validator.messages.isp;
html+="
";
html+="";
html+="| "+$.validator.messages.area+" | " +
""+$.validator.messages.isp+" | ";
html+="";
html+="";
for(i=0;i";
html+=""+data.areaIsps[i].areaName;
html+=" | ";
html+=""+data.areaIsps[i].ispName;
html+=" | ";
html+="";
}
html+="";
html+="
";
}
if(data.areaIps.length > 0){
title=$.validator.messages.area+" ip";
html+="";
html+="";
html+="| "+$.validator.messages.ip_type+" | " +
""+$.validator.messages.ip_pattern+" | " +
""+$.validator.messages.client_ip+" | ";
html+="";
html+="";
for(i=0;i";
html+="";
if(data.areaIps[i].ipType==4){
html+=$.validator.messages.ipv4;
}
if(data.areaIps[i].ipType==6){
html+=$.validator.messages.ipv6;
}
if(data.areaIps[i].ipType==46){
html+=$.validator.messages.over4;
}
if(data.areaIps[i].ipType==64){
html+=$.validator.messages.over6;
}
if(data.areaIps[i].ipType==10){
html+=$.validator.messages.all;
}
html+=" | ";
html+="";
if(data.areaIps[i].ipPattern==1){
html+=$.validator.messages.ip_subnet;
}
if(data.areaIps[i].ipPattern==2){
html+=$.validator.messages.ip_range;
}
if(data.areaIps[i].ipPattern==3){
html+="IP";
}
html+=" | ";
html+=""+data.areaIps[i].srcIpAddress;
html+=" | ";
html+="";
}
html+="";
html+="
";
}
top.$.jBox(html,{width: $(document).width()*0.4,height: 400,title:title, buttons:false});
}
}
});
}
//删除区域IP
function delAreaIp(obj){
var thisObj=$(obj);
thisObj.parents(".container-fluid").remove();
var len=$("#areaIp").find(".container-fluid:visible").size();
//调整角标
if(len>0){
len--;
$("#areaIp").find(".container-fluid:visible").each(function(){
$(this).find("[name^='areaCfg']").each(function(){
var name=$(this).attr("name");
name=name.substring(name.lastIndexOf(".")+1,name.length);
$(this).attr("name","areaCfg["+len+"]."+name);
$(this).parents(".form-group").find("div[for^='areaCfg']").attr("for","areaCfg["+len+"]."+name);
});
len--;
});
}
}
//删除区域ISP
function delAreaIsp(obj){
var thisObj=$(obj);
thisObj.parents(".container-fluid").remove();
var len=$("#areaIsp").find(".container-fluid:visible").size();
if(len>0){
len--;
$("#areaIsp").find(".container-fluid:visible").each(function(){
$(this).find("[name^='areaIsp']").each(function(){
var name=$(this).attr("name");
name=name.substring(name.lastIndexOf(".")+1,name.length);
$(this).attr("name","areaIsp["+len+"]."+name);
$(this).parents(".form-group").find("div[for^='areaIsp']").attr("for","areaIsp["+len+"]."+name);
});
len--;
});
}
}
//切换配置列表中显示子配置的选项卡样式
function switchSubCfgTabInfo(flag,index){
$("div[name='subCfg"+index+"']").hide();
$("div[id='"+flag+"Info"+index+"']").show();
$("div[name='tabTitle"+index+"']").removeClass("badge-info");
$("div[id='"+flag+"Title"+index+"']").addClass("badge-info");
$("i[name='tabFlag"+index+"']").addClass("fa-angle-double-up");
$("i[name='tabFlag"+index+"']").removeClass("fa-angle-double-down");
$("i[id='"+flag+index+"']").addClass("fa-angle-double-down");
$("i[id='"+flag+index+"']").removeClass("fa-angle-double-up");
}
function isLicit(str,regStr) {//判断是否为合格字符 //s 包括空格回车等特殊字符
regStr = App.isEmpty(regStr)?"^[_0-9a-zA-Z\u4e00-\u9fa5\.@&]*$":regStr;
var re = new RegExp(regStr);
//var re = "^[_0-9a-zA-Z\.@]*$";
return re.test(str);
}
function exprTypeChecked(objNamePrefix,size){
if(size>1) {
$("input:radio[name='"+objNamePrefix+"exprType'][value=1]").prop("checked",true); //选中是
}else {
$("input:radio[name='"+objNamePrefix+"exprType'][value=0]").prop("checked",true); //选中否
}
}
function validateDataIsLicit(){
var fdfz = $.trim($("#tags_1").val()).replace(/,/g,"");
return isLicit(fdfz);
}