Merge branch 'develop' of http://10.0.6.99/gwall/gwall.git into develop

This commit is contained in:
duandongmei
2018-08-30 19:07:11 +08:00
22 changed files with 199 additions and 54 deletions

View File

@@ -31,6 +31,7 @@ public class TagController extends BaseController {
model.addAttribute("title", request.getParameter("title"));//根节点替换文本 model.addAttribute("title", request.getParameter("title"));//根节点替换文本
model.addAttribute("enableAddBtn", request.getParameter("enableAddBtn"));//节点是否可编辑 model.addAttribute("enableAddBtn", request.getParameter("enableAddBtn"));//节点是否可编辑
model.addAttribute("userId", UserUtils.getUser().getId());//如果启用了addBtn,则使用userId判断是否是用户自己创建的用户自己创建的节点可删除 model.addAttribute("userId", UserUtils.getUser().getId());//如果启用了addBtn,则使用userId判断是否是用户自己创建的用户自己创建的节点可删除
model.addAttribute("enableSearch", request.getParameter("enableSearch"));//是否允许搜索
return "/sys/tagTreeselect"; return "/sys/tagTreeselect";
} }

View File

@@ -60,7 +60,6 @@ public class NtcDestIpReportController extends BaseController {
}else if(bean.getReportType()==Constants.REPORT_TYPE_MONTH){ }else if(bean.getReportType()==Constants.REPORT_TYPE_MONTH){
bean.setSearchBusinessType("4"); bean.setSearchBusinessType("4");
} }
// 调用服务接口... // 调用服务接口...
bean.setPageSize(-1); bean.setPageSize(-1);
@@ -70,6 +69,7 @@ public class NtcDestIpReportController extends BaseController {
} catch (ParseException e1) { } catch (ParseException e1) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e1.printStackTrace(); e1.printStackTrace();
} }
List<String> titles=this.getDateTitiles(bean); List<String> titles=this.getDateTitiles(bean);
model.addAttribute("titles", titles); model.addAttribute("titles", titles);
@@ -91,7 +91,11 @@ public class NtcDestIpReportController extends BaseController {
trimStr=report.getDestCountry().trim()+Constants.REPORT_TRIM_CONNECTOR+ trimStr=report.getDestCountry().trim()+Constants.REPORT_TRIM_CONNECTOR+
report.getReportTime().substring(0,7); report.getReportTime().substring(0,7);
} }
trimData.put(trimStr, report.getSum().longValue()); if(trimData.containsKey(trimStr)){
trimData.put(trimStr, trimData.get(trimStr)+report.getSum().longValue());
}else{
trimData.put(trimStr, report.getSum().longValue());
}
} }
HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
@@ -115,7 +119,8 @@ public class NtcDestIpReportController extends BaseController {
model.addAttribute("datas", showData); model.addAttribute("datas", showData);
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 // HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
// List<Long> line= new ArrayList<Long>(); // List<Long> line= new ArrayList<Long>();

View File

@@ -32,9 +32,7 @@ import net.sf.json.JsonConfig;
public class NtcEntranceReportController extends BaseController { public class NtcEntranceReportController extends BaseController {
@RequestMapping("/ajaxNtcIspReport") @RequestMapping("/ajaxNtcIspReport")
public String list(@ModelAttribute("bean") SearchReport bean,Model model, HttpServletRequest request, HttpServletResponse response) { public String list(@ModelAttribute("bean") SearchReport bean,Model model, HttpServletRequest request, HttpServletResponse response) {
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(bean.getFunctionId()); List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(bean.getFunctionId());
if(bean.getAction()!=null){ if(bean.getAction()!=null){
for(FunctionServiceDict service:serviceList){ for(FunctionServiceDict service:serviceList){
if(service.getAction().intValue()==bean.getAction().intValue()){ if(service.getAction().intValue()==bean.getAction().intValue()){
@@ -91,7 +89,11 @@ public class NtcEntranceReportController extends BaseController {
trimStr=report.getEntranceId().intValue()+Constants.REPORT_TRIM_CONNECTOR+ trimStr=report.getEntranceId().intValue()+Constants.REPORT_TRIM_CONNECTOR+
report.getReportTime().substring(0,7); report.getReportTime().substring(0,7);
} }
trimData.put(trimStr, report.getSum().longValue()); if(trimData.containsKey(trimStr)){
trimData.put(trimStr, trimData.get(trimStr)+report.getSum().longValue());
}else{
trimData.put(trimStr, report.getSum().longValue());
}
} }
HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
for(Entry<String, Long> counrty:trimData.entrySet()){ for(Entry<String, Long> counrty:trimData.entrySet()){
@@ -114,7 +116,8 @@ public class NtcEntranceReportController extends BaseController {
model.addAttribute("datas", showData); model.addAttribute("datas", showData);
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 // HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
// List<Long> line= new ArrayList<Long>(); // List<Long> line= new ArrayList<Long>();

View File

@@ -21,6 +21,7 @@ import com.nis.domain.report.NtcLwhhReport;
import com.nis.util.ConfigServiceUtil; import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants; import com.nis.util.Constants;
import com.nis.util.DictUtils; import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
@@ -89,7 +90,11 @@ public class NtcLwhhReportController extends BaseController {
trimStr=report.getLwhh().intValue()+Constants.REPORT_TRIM_CONNECTOR+ trimStr=report.getLwhh().intValue()+Constants.REPORT_TRIM_CONNECTOR+
report.getReportTime().substring(0,7); report.getReportTime().substring(0,7);
} }
trimData.put(trimStr, report.getSum().longValue()); if(trimData.containsKey(trimStr)){
trimData.put(trimStr, trimData.get(trimStr)+report.getSum().longValue());
}else{
trimData.put(trimStr, report.getSum().longValue());
}
} }
HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
for(RequestInfo requestInfo:requestInfos){ for(RequestInfo requestInfo:requestInfos){
@@ -111,7 +116,8 @@ public class NtcLwhhReportController extends BaseController {
model.addAttribute("datas", showData); model.addAttribute("datas", showData);
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 // HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
// for(RequestInfo requestInfo:requestInfos){ // for(RequestInfo requestInfo:requestInfos){

View File

@@ -122,7 +122,8 @@ public class NtcPzReportController extends BaseController{
model.addAttribute("datas", getList(json)); model.addAttribute("datas", getList(json));
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
return "/report/pz"; return "/report/pz";
} }

View File

@@ -42,7 +42,7 @@ public class NtcServiceReportController extends BaseController {
serviceId.append(bean.getServices()); serviceId.append(bean.getServices());
}else{ }else{
for(int i=0;i<serviceList.size();i++){ for(int i=0;i<serviceList.size();i++){
if(i==0){ if(i==0){
serviceId.append(serviceList.get(i).getServiceId().toString()); serviceId.append(serviceList.get(i).getServiceId().toString());
}else{ }else{
serviceId.append(","+serviceList.get(i).getServiceId().toString()); serviceId.append(","+serviceList.get(i).getServiceId().toString());
@@ -67,12 +67,15 @@ public class NtcServiceReportController extends BaseController {
} }
StringBuffer url=new StringBuffer(Constants.LOG_BASE_URL+Constants.NTC_SERVICE_REPORT); StringBuffer url=new StringBuffer(Constants.LOG_BASE_URL+Constants.NTC_SERVICE_REPORT);
try { try {
//bean.setSearchReportEndTime("2018-08-27 00:00:00");
String json=ConfigServiceUtil.getReport(url.toString(), bean); String json=ConfigServiceUtil.getReport(url.toString(), bean);
List<NtcServiceReport> data=getList(json); List<NtcServiceReport> data=getList(json);
Map<Integer, Long> dataMap=new HashMap<>(); Map<Integer, Long> dataMap=new HashMap<>();
for(NtcServiceReport report:data){ for(NtcServiceReport report:data){
dataMap.put(report.getService(),report.getSum().longValue()); if(dataMap.containsKey(report.getService())){
dataMap.put(report.getService(), dataMap.get(report.getService())+report.getSum().longValue());
}else{
dataMap.put(report.getService(),report.getSum().longValue());
}
} }
for(Entry<Integer, Long> e:dataMap.entrySet()) { for(Entry<Integer, Long> e:dataMap.entrySet()) {
Map<String, Object> _data=new HashMap<>(); Map<String, Object> _data=new HashMap<>();
@@ -82,7 +85,8 @@ public class NtcServiceReportController extends BaseController {
} }
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// if(bean.getAction()!=null){ // if(bean.getAction()!=null){
// data.put(bean.getAction().toString(), 66666666l); // data.put(bean.getAction().toString(), 66666666l);

View File

@@ -127,7 +127,11 @@ public class NtcSrcipDomesticReportController extends BaseController {
report.getSrcCity().trim()+Constants.REPORT_TRIM_CONNECTOR+ report.getSrcCity().trim()+Constants.REPORT_TRIM_CONNECTOR+
report.getReportTime().substring(0,7); report.getReportTime().substring(0,7);
} }
trimData.put(trimStr, report.getSum().longValue()); if(trimData.containsKey(trimStr)){
trimData.put(trimStr, trimData.get(trimStr)+report.getSum().longValue());
}else{
trimData.put(trimStr, report.getSum().longValue());
}
} }
HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
for(String key:trimData.keySet()){ for(String key:trimData.keySet()){
@@ -152,7 +156,8 @@ public class NtcSrcipDomesticReportController extends BaseController {
model.addAttribute("datas", showData); model.addAttribute("datas", showData);
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 // HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
// long total=0; // long total=0;

View File

@@ -90,7 +90,11 @@ public class NtcTagReportController extends BaseController {
trimStr=report.getTag().intValue()+Constants.REPORT_TRIM_CONNECTOR+ trimStr=report.getTag().intValue()+Constants.REPORT_TRIM_CONNECTOR+
report.getReportTime().substring(0,7); report.getReportTime().substring(0,7);
} }
if(trimData.containsKey(trimStr)){
trimData.put(trimStr, trimData.get(trimStr)+report.getSum().longValue());
}else{
trimData.put(trimStr, report.getSum().longValue()); trimData.put(trimStr, report.getSum().longValue());
}
} }
HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
for(ServiceDictInfo label:labels){ for(ServiceDictInfo label:labels){
@@ -112,7 +116,8 @@ public class NtcTagReportController extends BaseController {
model.addAttribute("datas", showData); model.addAttribute("datas", showData);
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 // HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
// for(ServiceDictInfo label:labels){ // for(ServiceDictInfo label:labels){

View File

@@ -95,7 +95,11 @@ public class NtcXzReportController extends BaseController {
trimStr=report.getAttrType().intValue()+Constants.REPORT_TRIM_CONNECTOR+ trimStr=report.getAttrType().intValue()+Constants.REPORT_TRIM_CONNECTOR+
report.getReportTime().substring(0,7); report.getReportTime().substring(0,7);
} }
if(trimData.containsKey(trimStr)){
trimData.put(trimStr, trimData.get(trimStr)+report.getSum().longValue());
}else{
trimData.put(trimStr, report.getSum().longValue()); trimData.put(trimStr, report.getSum().longValue());
}
} }
HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
for(ServiceDictInfo xz:xzs){ for(ServiceDictInfo xz:xzs){
@@ -117,7 +121,8 @@ public class NtcXzReportController extends BaseController {
model.addAttribute("datas", showData); model.addAttribute("datas", showData);
} catch (Exception e) { } catch (Exception e) {
// TODO: handle exception // TODO: handle exception
e.printStackTrace(); logger.error("查询失败", e);
addMessageLog(model, null);
} }
// HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合 // HashMap<String,List<Long>> showData=new LinkedHashMap<>();//构造数据展示集合
// for(ServiceDictInfo xz:xzs){ // for(ServiceDictInfo xz:xzs){

View File

@@ -1,5 +1,7 @@
package com.nis.web.controller.specific; package com.nis.web.controller.specific;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
@@ -73,6 +75,9 @@ public class SpecificServiceCfgController extends BaseController {
searchType = "groupId"; searchType = "groupId";
searchContent = specificServiceCfg.getGroupId().toString(); searchContent = specificServiceCfg.getGroupId().toString();
} }
if(specificServiceCfg.getCfgType()==null){
specificServiceCfg.setCfgType(1);
}
model.addAttribute("searchType", searchType); model.addAttribute("searchType", searchType);
model.addAttribute("searchContent", searchContent); model.addAttribute("searchContent", searchContent);
@@ -163,7 +168,7 @@ public class SpecificServiceCfgController extends BaseController {
e.printStackTrace(); e.printStackTrace();
addMessage(redirectAttributes, "save_failed"); addMessage(redirectAttributes, "save_failed");
} }
return "redirect:" + adminPath + "/specific/specificServiceCfg/list"; return "redirect:" + adminPath + "/specific/specificServiceCfg/list?cfgType="+specificServiceCfg.getCfgType();
} }
/** /**
@@ -218,6 +223,16 @@ public class SpecificServiceCfgController extends BaseController {
businessTypeList=DictUtils.getDictList("APP_BUSINESS_TYPE"); businessTypeList=DictUtils.getDictList("APP_BUSINESS_TYPE");
} }
List<Map<String, Object>> businessList = Lists.newArrayList(); List<Map<String, Object>> businessList = Lists.newArrayList();
//对业务分类进行排序
Collections.sort(businessTypeList, new Comparator<SysDataDictionaryItem>() {
@Override
public int compare(SysDataDictionaryItem o1, SysDataDictionaryItem o2) {
// TODO Auto-generated method stub
Integer o1Code=new Integer(o1.getItemCode());
Integer o2Code=new Integer(o2.getItemCode());
return o2Code.compareTo(o1Code);
}
});
for(SysDataDictionaryItem dict:businessTypeList) { for(SysDataDictionaryItem dict:businessTypeList) {
Map<String, Object> map = Maps.newHashMap(); Map<String, Object> map = Maps.newHashMap();
map.put("id", "businessType"+dict.getItemCode()); map.put("id", "businessType"+dict.getItemCode());
@@ -239,6 +254,7 @@ public class SpecificServiceCfgController extends BaseController {
continue; continue;
} }
if(businessTypeList.size()>0) { if(businessTypeList.size()>0) {
boolean hasBusinessType=false;
for(SysDataDictionaryItem business:businessTypeList) { for(SysDataDictionaryItem business:businessTypeList) {
if(String.valueOf(business.getItemCode()).equals(specificServiceCfg.getBusinessType())) { if(String.valueOf(business.getItemCode()).equals(specificServiceCfg.getBusinessType())) {
Map<String, Object> map = Maps.newHashMap(); Map<String, Object> map = Maps.newHashMap();
@@ -253,9 +269,24 @@ public class SpecificServiceCfgController extends BaseController {
map.put("user",specificServiceCfg.getAddFlag()); map.put("user",specificServiceCfg.getAddFlag());
} }
mapList.add(map); mapList.add(map);
hasBusinessType=true;
break; break;
} }
} }
if(!hasBusinessType) {//没有对应的业务类别
Map<String, Object> map = Maps.newHashMap();
map.put("id", specificServiceCfg.getSpecServiceId());
map.put("pId", specificServiceCfg.getParent().getSpecServiceId());
map.put("name",specificServiceCfg.getSpecServiceName());
map.put("serviceType",specificServiceCfg.getCfgType());
map.put("serviceCode",specificServiceCfg.getSpecServiceCode());
map.put("businessType",specificServiceCfg.getBusinessType());
map.put("groupId",specificServiceCfg.getGroupId());
if(specificServiceCfg.getAddFlag()!=null) {
map.put("user",specificServiceCfg.getAddFlag());
}
mapList.add(map);
}
}else { }else {
Map<String, Object> map = Maps.newHashMap(); Map<String, Object> map = Maps.newHashMap();
map.put("id", specificServiceCfg.getSpecServiceId()); map.put("id", specificServiceCfg.getSpecServiceId());

View File

@@ -531,7 +531,7 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
// 修改域配置审核状态 // 修改域配置审核状态
if((entity.getNtcSubscribeIdCfgList() != null) && (entity.getNtcSubscribeIdCfgList().size() > 0)) { if((entity.getNtcSubscribeIdCfgList() != null) && (entity.getNtcSubscribeIdCfgList().size() > 0)) {
NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg(); NtcSubscribeIdCfg cfg = new NtcSubscribeIdCfg();
BeanUtils.copyProperties(entity, cfg, new String[] {"cfgId"}); BeanUtils.copyProperties(entity, cfg, new String[] {"cfgId","cfgType"});
stringCfgDao.updateSubscribeIdCfg(cfg); stringCfgDao.updateSubscribeIdCfg(cfg);
} }
@@ -565,6 +565,12 @@ public class FileTransferCfgService extends CrudService<FileTransferCfgDao,CfgIn
if(map.get("numRegionList")!=null){ if(map.get("numRegionList")!=null){
numRegionList.addAll(map.get("numRegionList")); numRegionList.addAll(map.get("numRegionList"));
} }
// 审核通过:添加各子域配置
if((entity.getNtcSubscribeIdCfgList() != null) && (entity.getNtcSubscribeIdCfgList().size() > 0)) {
Map<String,List> subIdMap = cfgConvert(strRegionList,entity.getNtcSubscribeIdCfgList(),2,entity,groupRelationList);
groupRelationList=subIdMap.get("groupList");
strRegionList=subIdMap.get("dstList");
}
if(areaIpCfgList != null && areaIpCfgList.size() >0){ if(areaIpCfgList != null && areaIpCfgList.size() >0){
Map<String,List> areaMap = cfgConvert(areaIpRegionList,areaIpCfgList,1,entity,groupRelationList); Map<String,List> areaMap = cfgConvert(areaIpRegionList,areaIpCfgList,1,entity,groupRelationList);

View File

@@ -1127,4 +1127,6 @@ limit_rate_type=\u9650\u901F\u65B9\u5F0F
business_type=\u4E1A\u52A1\u5206\u7C7B business_type=\u4E1A\u52A1\u5206\u7C7B
topic=\u4E3B\u9898 topic=\u4E3B\u9898
website_server=\u7F51\u7AD9 website_server=\u7F51\u7AD9
domain_existed=\u57DF\u540D\u5DF2\u7ECF\u5B58\u5728 domain_existed=\u57DF\u540D\u5DF2\u7ECF\u5B58\u5728
app_ssl_cert_feature_monit=APP SSL\u8BC1\u4E66\u7279\u5F81\u76D1\u6D4B
app_header_feature_monit=APP\u5C42\u5934\u7279\u5F81\u76D1\u6D4B

View File

@@ -27,6 +27,7 @@
<%@ attribute name="checkedPS" type="java.lang.String" required="false" description="复选框选中时是否关联父子节点ps关联父子p关联父s关联子,都不关联为空"%> <%@ attribute name="checkedPS" type="java.lang.String" required="false" description="复选框选中时是否关联父子节点ps关联父子p关联父s关联子,都不关联为空"%>
<%@ attribute name="unCheckedPS" type="java.lang.String" required="false" description="复选框取消选中时是否关联父子节点ps关联父子p关联父s关联子,都不关联为空"%> <%@ attribute name="unCheckedPS" type="java.lang.String" required="false" description="复选框取消选中时是否关联父子节点ps关联父子p关联父s关联子,都不关联为空"%>
<%@ attribute name="enableAddBtn" type="java.lang.Boolean" required="false" description="节点是否可编辑"%> <%@ attribute name="enableAddBtn" type="java.lang.Boolean" required="false" description="节点是否可编辑"%>
<%@ attribute name="enableSearch" type="java.lang.Boolean" required="false" description="是否开启节点搜索功能"%>
<div class="input-group"> <div class="input-group">
<input id="${id}Id" name="${name}" class="${cssClass} singleClass" type="hidden" value="${value}" /> <input id="${id}Id" name="${name}" class="${cssClass} singleClass" type="hidden" value="${value}" />
<input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'} type="text" value="<spring:message code='${empty value?"":labelValue}'/>" data-msg-required="${dataMsgRequired}" placeholder="${empty value?labelValue:value}" <input id="${id}Name" name="${labelName}" ${allowInput?'':'readonly="readonly"'} type="text" value="<spring:message code='${empty value?"":labelValue}'/>" data-msg-required="${dataMsgRequired}" placeholder="${empty value?labelValue:value}"
@@ -46,7 +47,7 @@
return true; return true;
} }
// 正常打开 // 正常打开
top.$.jBox.open("iframe:${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&selectIds="+$("#${id}Id").val()+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}&title=${title}&enableAddBtn=${enableAddBtn}", "<spring:message code='choose'/> <spring:message code='${title}'/>", 320, 420, { top.$.jBox.open("iframe:${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&selectIds="+$("#${id}Id").val()+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}&title=${title}&enableAddBtn=${enableAddBtn}&enableSearch=${enableSearch}", "<spring:message code='choose'/> <spring:message code='${title}'/>", 320, 420, {
ajaxData:{selectIds: $("#${id}Id").val()},buttons:{"<spring:message code='ok'/>":"ok", "<spring:message code='clear'/>":"clear","<spring:message code='close'/>":true}, submit:function(v, h, f){ ajaxData:{selectIds: $("#${id}Id").val()},buttons:{"<spring:message code='ok'/>":"ok", "<spring:message code='clear'/>":"clear","<spring:message code='close'/>":true}, submit:function(v, h, f){
if (v == "ok"){ if (v == "ok"){
var tree = h.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents(); var tree = h.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents();

View File

@@ -177,7 +177,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="basic_protocol"/></label> <label class="control-label col-md-3"><font color="red">*</font><spring:message code="basic_protocol"/></label>
<div class="col-md-6"> <div class="col-md-6">
<sys:treeselect id="specServiceId" name="specServiceId" value="${_cfg.specServiceId}" <sys:treeselect id="specServiceId" name="specServiceId" value="${_cfg.specServiceId}"
labelName="parent.specServiceName" labelName="parent.specServiceName" notAllowSelectParent="true"
labelValue="${empty _cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(_cfg.specServiceId).specServiceName}" labelValue="${empty _cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(_cfg.specServiceId).specServiceName}"
title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${app}" extId="0" title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${app}" extId="0"
notAllowSelectRoot="true" cssClass="form-control required"/> notAllowSelectRoot="true" cssClass="form-control required"/>

View File

@@ -135,7 +135,7 @@
<div class="pull-left"> <div class="pull-left">
<c:set var="spec_service_id"><spring:message code="basic_protocol"/></c:set> <c:set var="spec_service_id"><spring:message code="basic_protocol"/></c:set>
<sys:treeselect id="specServiceId" name="specServiceId" value="${cfg.specServiceId}" <sys:treeselect id="specServiceId" name="specServiceId" value="${cfg.specServiceId}"
labelName="parent.specServiceName" labelName="parent.specServiceName" notAllowSelectParent="true" notAllowSelectRoot="true"
labelValue="${empty cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(cfg.specServiceId).specServiceName}" labelValue="${empty cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(cfg.specServiceId).specServiceName}"
title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${app}" extId="" title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${app}" extId=""
cssClass="form-control input-small"/> cssClass="form-control input-small"/>

View File

@@ -135,7 +135,7 @@
<div class="pull-left"> <div class="pull-left">
<c:set var="spec_service_id"><spring:message code="encrypted_tunnel_behavior"/></c:set> <c:set var="spec_service_id"><spring:message code="encrypted_tunnel_behavior"/></c:set>
<sys:treeselect id="specServiceId" name="specServiceId" value="${cfg.specServiceId}" <sys:treeselect id="specServiceId" name="specServiceId" value="${cfg.specServiceId}"
labelName="parent.specServiceName" labelName="parent.specServiceName" notAllowSelectRoot="true"
labelValue="${empty cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(cfg.specServiceId).specServiceName}" labelValue="${empty cfg.specServiceId?spec_service_id:fns:getBySpecServiceId(cfg.specServiceId).specServiceName}"
title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${app}" extId="" title="${spec_service_id}" url="/specific/specificServiceCfg/treeData?isLeafShow=false&cfgType=${app}" extId=""
cssClass="form-control input-small"/> cssClass="form-control input-small"/>

View File

@@ -56,9 +56,9 @@
}); */ }); */
if(flag){ if(flag){
//将disable属性的元素删除 //将disable属性的元素删除
/* $(".disabled").each(function(){ $(".disabled").each(function(){
$(this).remove(); $(this).remove();
}); */ });
$("input[name$='exprType']").attr("disabled",false); $("input[name$='exprType']").attr("disabled",false);
/* if($("[name='behavCode']")&&$("[name='behavCode']").val()!=""){ /* if($("[name='behavCode']")&&$("[name='behavCode']").val()!=""){
$("input[name$='exprType']").val(1); $("input[name$='exprType']").val(1);
@@ -130,10 +130,10 @@
<!-- 配置域类型 --> <!-- 配置域类型 -->
<c:forEach items="${regionList}" var="region"> <c:forEach items="${regionList}" var="region">
<c:if test="${_cfg.functionId eq region.functionId}"> <c:if test="${_cfg.functionId eq region.functionId}">
<input type="hidden" name="cfgType" <c:if test="${region.configServiceType ne 'subscribe_id'}">
value="${region.configRegionValue}"> <input type="hidden" name="cfgType" value="${region.configRegionValue}">
<input type="hidden" name="cfgRegionCode" <input type="hidden" name="cfgRegionCode" value="${region.configRegionCode}">
value="${region.configRegionCode}"> </c:if>
</c:if> </c:if>
</c:forEach> </c:forEach>
<div class="form-body"> <div class="form-body">

View File

@@ -159,7 +159,8 @@ var ajaxReport=function(url,target){
data:{ data:{
"action":$('[name="action"]').val(), "action":$('[name="action"]').val(),
"reportType":$('[name="reportType"]').val(), "reportType":$('[name="reportType"]').val(),
"reportTime":$('[name="reportTime"]').val() "reportTime":$('[name="reportTime"]').val(),
"functionId":$('[name="functionId"]').val()
}, },
dataType:"html", dataType:"html",
success:function(data){ success:function(data){
@@ -215,13 +216,26 @@ function customColumnClick(){
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="action"> <c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="action">
<c:forEach items="${serviceList}" var="service" varStatus="status"> <c:forEach items="${serviceList}" var="service" varStatus="status">
<c:if test="${service.functionId eq bean.functionId and action.itemCode eq service.action}"> <c:if test="${service.functionId eq bean.functionId and action.itemCode eq service.action}">
<div data-service="${service.serviceId}" class="service btn <c:if test="${service.serviceId ne 5}">
<c:if test="${status.index%2==0}">btn-primary</c:if> <c:if test="${(service.action ne 128) && (service.action ne 32)}" >
<c:if test="${status.index%2!=0}">btn-default</c:if>"> <div data-service="${service.serviceId}" class="service btn
<spring:message code="${action.itemValue}"/> <c:if test="${status.index%2==0}">btn-primary</c:if>
<spring:message code="log_total"/> <c:if test="${status.index%2!=0}">btn-default</c:if>">
<span>0</span> <spring:message code="${action.itemValue}"/>
</div> <spring:message code="log_total"/>
<span>0</span>
</div>
</c:if>
</c:if>
<c:if test="${service.serviceId eq 5}">
<div data-service="${service.serviceId}" class="service btn
<c:if test="${status.index%2==0}">btn-primary</c:if>
<c:if test="${status.index%2!=0}">btn-default</c:if>">
<spring:message code="${action.itemValue}"/>
<spring:message code="log_total"/>
<span>0</span>
</div>
</c:if>
</c:if> </c:if>
</c:forEach> </c:forEach>
</c:forEach> </c:forEach>
@@ -253,7 +267,14 @@ function customColumnClick(){
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="action" > <c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="action" >
<c:forEach items="${serviceList}" var="service" > <c:forEach items="${serviceList}" var="service" >
<c:if test="${service.functionId eq bean.functionId and action.itemCode eq service.action}"> <c:if test="${service.functionId eq bean.functionId and action.itemCode eq service.action}">
<form:option value="${action.itemCode}" ><spring:message code="${action.itemValue}"/></form:option> <c:if test="${service.serviceId ne 5}">
<c:if test="${(service.action ne 128) && (service.action ne 32)}" >
<form:option value="${action.itemCode}" ><spring:message code="${action.itemValue}"/></form:option>
</c:if>
</c:if>
<c:if test="${service.serviceId eq 5}">
<form:option value="${action.itemCode}" ><spring:message code="${action.itemValue}"/></form:option>
</c:if>
</c:if> </c:if>
</c:forEach> </c:forEach>
</c:forEach> </c:forEach>

View File

@@ -250,7 +250,7 @@
<c:if test="${dict.itemCode==1}"> <c:if test="${dict.itemCode==1}">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="app_business_type"/>:</label> <label class="col-md-3 control-label"><font color="red">*</font><spring:message code="app_business_type"/>:</label>
<div class="col-md-4"> <div class="col-md-4">
<select id="businessType1" name="businessType" class="form-control required" data-live-search="true" data-live-search-placeholder="search"> <select id="businessType1" name="businessType" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option> <option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('APP_BUSINESS_TYPE')}" var="dict"> <c:forEach items="${fns:getDictList('APP_BUSINESS_TYPE')}" var="dict">
<option value="${dict.itemCode}" <option value="${dict.itemCode}"
@@ -263,7 +263,7 @@
<c:if test="${dict.itemCode==3}"> <c:if test="${dict.itemCode==3}">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="basic_protocol_business_type"/>:</label> <label class="col-md-3 control-label"><font color="red">*</font><spring:message code="basic_protocol_business_type"/>:</label>
<div class="col-md-4"> <div class="col-md-4">
<select id="businessType3" name="businessType" class="form-control required" data-live-search="true" data-live-search-placeholder="search"> <select id="businessType3" name="businessType" class="selectpicker form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option> <option value=""><spring:message code="select"/></option>
<c:forEach items="${fns:getDictList('APP_BUSINESS_TYPE')}" var="dict"> <c:forEach items="${fns:getDictList('APP_BUSINESS_TYPE')}" var="dict">
<option value="${dict.itemCode}" <option value="${dict.itemCode}"

View File

@@ -158,7 +158,7 @@
<div class="col-md-12"> <div class="col-md-12">
<div class="pull-left"> <div class="pull-left">
<form:select path="cfgType" class="selectpicker select2 input-middle" > <form:select path="cfgType" class="selectpicker select2 input-middle" >
<form:option value=""><spring:message code='cfg_type'/></form:option> <%-- <form:option value=""><spring:message code='cfg_type'/></form:option> --%>
<c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict"> <c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict">
<form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}'/></form:option> <form:option value="${dict.itemCode}"><spring:message code='${dict.itemValue}'/></form:option>
</c:forEach> </c:forEach>
@@ -168,7 +168,16 @@
<div class="input-group"> <div class="input-group">
<div class="input-group-btn"> <div class="input-group-btn">
<select id="seltype" class="selectpicker select2 input-middle" > <select id="seltype" class="selectpicker select2 input-middle" >
<option value="specServiceName"><spring:message code="protocol_name"/></option> <c:if test="${specificServiceCfg.cfgType==1}">
<option value="specServiceName"><spring:message code="app_name"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==3}">
<option value="specServiceName"><spring:message code="protocol_name"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==2}">
<option value="specServiceName"><spring:message code="tunnel_name"/>
</c:if>
</option>
</select> </select>
</div> </div>
<input id="intype" class="form-control input-medium" placeholder="<spring:message code='input_protocol_name'/>" type="text" onchange="casec()" maxlength="60"> <input id="intype" class="form-control input-medium" placeholder="<spring:message code='input_protocol_name'/>" type="text" onchange="casec()" maxlength="60">
@@ -270,9 +279,39 @@
<th><input type="checkbox" class="ckboxs" id="selAll" onclick="selectAll()"></th> <th><input type="checkbox" class="ckboxs" id="selAll" onclick="selectAll()"></th>
<!-- <th>序号</th> --> <!-- <th>序号</th> -->
<th><spring:message code="business_type"/></th> <th><spring:message code="business_type"/></th>
<th><spring:message code="protocol_code"/></th> <th>
<th><spring:message code="protocol_name"/></th> <c:if test="${specificServiceCfg.cfgType==1}">
<th><spring:message code="protocol_desc"/></th> <spring:message code="app_code"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==2}">
<spring:message code="tunnel_code"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==3}">
<spring:message code="protocol_code"/>
</c:if>
</th>
<th>
<c:if test="${specificServiceCfg.cfgType==1}">
<spring:message code="app_name"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==2}">
<spring:message code="tunnel_name"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==3}">
<spring:message code="protocol_name"/>
</c:if>
</th>
<th>
<c:if test="${specificServiceCfg.cfgType==1}">
<spring:message code="app_desc"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==2}">
<spring:message code="tunnel_desc"/>
</c:if>
<c:if test="${specificServiceCfg.cfgType==3}">
<spring:message code="protoco_desc"/>
</c:if>
</th>
<%-- <th><spring:message code="group_id"/></th> --%> <%-- <th><spring:message code="group_id"/></th> --%>
<th><spring:message code="is_leaf"/></th> <th><spring:message code="is_leaf"/></th>
<th><spring:message code="cfg_type"/></th> <th><spring:message code="cfg_type"/></th>

View File

@@ -91,6 +91,14 @@
var nodes = tree.getNodesByParam("level", 1); var nodes = tree.getNodesByParam("level", 1);
for(var i=0; i<nodes.length; i++) { for(var i=0; i<nodes.length; i++) {
tree.expandNode(nodes[i], true, false, false); tree.expandNode(nodes[i], true, false, false);
var nodeId=nodes[i].id;
//处理特定服务业务类型的图标
if(typeof nodeId=='string'&&nodeId.indexOf("businessType")==0){
if(!nodes[i].isParent){//强制改变没有子节点的特定服务业务类型为父节点,让其改变样式
nodes[i].isParent=true;
tree.updateNode(nodes[i],false);
}
}
} }
nodes=tree.getNodesByParam("level", 0); nodes=tree.getNodesByParam("level", 0);
for(var i=0; i<nodes.length; i++) { for(var i=0; i<nodes.length; i++) {
@@ -217,8 +225,8 @@
// 开始搜索 // 开始搜索
function search() { function search() {
$("#search").slideToggle(200); //$("#search").slideToggle(200);
$("#txt").toggle(); //$("#txt").toggle();
$("#key").focus(); $("#key").focus();
} }
function beforeEditName(treeId, treeNode) { function beforeEditName(treeId, treeNode) {
@@ -362,10 +370,12 @@
<div style="position:absolute;right:8px;top:5px;cursor:pointer;" onclick="search();"> <div style="position:absolute;right:8px;top:5px;cursor:pointer;" onclick="search();">
<i class="icon-search"></i><label id="txt">搜索</label> <i class="icon-search"></i><label id="txt">搜索</label>
</div> --> </div> -->
<div id="search" class="form-search hide" style="padding:10px 0 0 13px;"> <c:if test="${enableSearch ne null and enableSearch==true}">
<label for="key" class="control-label" style="padding:5px 5px 3px 0;">关键字:</label> <div id="search" class="form-search input-group" style="padding:10px 0 0 13px;">
<input type="text" class="empty" id="key" name="key" maxlength="50" style="width:110px;"> <label for="key" class="control-label" style="padding:5px 5px 3px 0;"><spring:message code="keywords"/>:</label>
<button class="btn" id="btn" onclick="searchNode()"> <i class="icon-search"></i> &nbsp;搜索 </button> <input type="text" class="empty input-small" id="key" name="key" maxlength="50" style="width:170px;" placeholder="<spring:message code='search'/>...">
<!-- <button class="btn" id="btn" onclick="searchNode()"> <i class="icon-search"></i> &nbsp;搜索 </button> -->
</div> </div>
</c:if>
<div id="tree" class="ztree" style="padding:15px 20px;"></div> <div id="tree" class="ztree" style="padding:15px 20px;"></div>
</body> </body>

View File

@@ -215,7 +215,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) {
var ipv4_ip_subnet_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\/(3[0-2]|[1-2][0-9]|[0-9])$/; var ipv4_ip_subnet_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\/(3[0-2]|[1-2][0-9]|[0-9])$/;
var ipv6_ip_subnet_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))\/(0|2|4|8|16|32|64|128)$/; var ipv6_ip_subnet_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))\/(0|2|4|8|16|32|64|128)$/;
var ipv4_ip_range_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)-(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/; var ipv4_ip_range_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)-(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/;
var ipv6_ip_range_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/; var ipv6_ip_range_regexp= /^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))\-((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/;
var ipv4_ip_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/; var ipv4_ip_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/;
var ipv6_ip_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/; var ipv6_ip_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/;