(1)IP类通用导入配置功能增加,针对同一个菜单不同action发往不同maattable进行了处理。格式验证在后面会加上。
(2)IP通用页面,域名通用页面表单提交遮罩层增加。
This commit is contained in:
@@ -30,27 +30,72 @@ public class IpCfgTemplate {
|
||||
|
||||
|
||||
private Long cfgId;
|
||||
private Integer ipType;
|
||||
private Integer ipPattern;
|
||||
private String srcIpAddress;
|
||||
private String destIpAddress;
|
||||
private Integer portPattern;
|
||||
private String srcPort;
|
||||
private String destPort;
|
||||
private Integer protocol;
|
||||
protected Integer direction ;
|
||||
private String cfgDesc;
|
||||
private Integer requestId;
|
||||
private String requestName;
|
||||
private Integer isAreaEffective;
|
||||
private String classify;
|
||||
private String attribute;
|
||||
private String lable;
|
||||
private String classifyName;
|
||||
private String attributeName;
|
||||
private String lableName;
|
||||
private String areaEffectiveIds ;
|
||||
private Integer ipType;//1
|
||||
private Integer ipPattern;//2
|
||||
private String srcIpAddress; //3
|
||||
private String destIpAddress; //4
|
||||
private Integer portPattern; //5
|
||||
private String srcPort; //6
|
||||
private String destPort;//7
|
||||
private Integer protocol;//8
|
||||
protected Integer direction;//9
|
||||
private String cfgDesc;//10
|
||||
private Integer requestId;//11
|
||||
private String requestName;//12
|
||||
private Integer isAreaEffective;//13
|
||||
private String classify;//14
|
||||
private String attribute;//15
|
||||
private String lable;//16
|
||||
private String classifyName;//17
|
||||
private String attributeName;//18
|
||||
private String lableName;//19
|
||||
private String areaEffectiveIds;//20
|
||||
private Integer ratelimit;//21
|
||||
private Integer dnsStrategyId;//22
|
||||
private Integer irType;//23
|
||||
|
||||
/**
|
||||
* ratelimit
|
||||
* @return ratelimit
|
||||
*/
|
||||
@ExcelField(title="ratelimit",align=2,sort=74)
|
||||
public Integer getRatelimit() {
|
||||
return ratelimit;
|
||||
}
|
||||
/**
|
||||
* @param ratelimit the ratelimit to set
|
||||
*/
|
||||
public void setRatelimit(Integer ratelimit) {
|
||||
this.ratelimit = ratelimit;
|
||||
}
|
||||
/**
|
||||
* irType
|
||||
* @return irType
|
||||
*/
|
||||
@ExcelField(title="ir_type",align=2,sort=76)
|
||||
public Integer getIrType() {
|
||||
return irType;
|
||||
}
|
||||
/**
|
||||
* @param irType the irType to set
|
||||
*/
|
||||
public void setIrType(Integer irType) {
|
||||
this.irType = irType;
|
||||
}
|
||||
/**
|
||||
* dnsStrategyId
|
||||
* @return dnsStrategyId
|
||||
*/
|
||||
@ExcelField(title="dns_strategy_id",align=2,sort=75)
|
||||
public Integer getDnsStrategyId() {
|
||||
return dnsStrategyId;
|
||||
}
|
||||
/**
|
||||
* @param dnsStrategyId the dnsStrategyId to set
|
||||
*/
|
||||
public void setDnsStrategyId(Integer dnsStrategyId) {
|
||||
this.dnsStrategyId = dnsStrategyId;
|
||||
}
|
||||
@ExcelField(title="ip_type",align=2,sort=1)
|
||||
public Integer getIpType() {
|
||||
return ipType;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
package com.nis.web.controller.configuration;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -17,15 +18,20 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.configuration.HttpUrlCfg;
|
||||
import com.nis.domain.configuration.IpCfgTemplate;
|
||||
import com.nis.domain.configuration.IpPortCfg;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.util.excel.ImportExcel;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.dao.configuration.IpCfgDao;
|
||||
|
||||
/**
|
||||
* @ClassName: CommonController.java
|
||||
@@ -201,4 +207,34 @@ public class CommonController extends BaseController {
|
||||
addMessage(redirectAttributes, "audit_failed");
|
||||
}
|
||||
}
|
||||
public void _importIp(RedirectAttributes redirectAttributes,MultipartFile file,IpPortCfg ipCfg) {
|
||||
try {
|
||||
ImportExcel ei = new ImportExcel(file, 0, 0);
|
||||
List<IpCfgTemplate> list = ei.getDataList(IpCfgTemplate.class);
|
||||
List<BaseIpCfg> ipList = new ArrayList<>();
|
||||
Date date=new Date();
|
||||
for(IpCfgTemplate cfg : list){
|
||||
IpPortCfg ip = new IpPortCfg();
|
||||
BeanUtils.copyProperties(ipCfg, ip);
|
||||
BeanUtils.copyProperties(cfg, ip);
|
||||
ip.setTableName(IpPortCfg.getTablename());
|
||||
ip.setIsAreaEffective(0);
|
||||
ip.setIsValid(Constants.VALID_NO);
|
||||
ip.setIsAudit(Constants.AUDIT_NOT_YET);
|
||||
ip.setCreatorId(ipCfg.getCurrentUser().getId());
|
||||
ip.setCreateTime(date);
|
||||
ip.setCompileId(ipCfgService.getCompileId());
|
||||
ipList.add(ip);
|
||||
}
|
||||
ipCfgService.saveBatch(ipList, IpCfgDao.class);
|
||||
} catch (Exception e) {
|
||||
addMessage(redirectAttributes, e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@RequestMapping(value = "import/template")
|
||||
public void _importFileTemplate(HttpServletRequest request,HttpServletResponse response,
|
||||
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode) {
|
||||
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.SysDataDictionaryItem;
|
||||
@@ -87,4 +90,13 @@ public class IpMultiplexController extends CommonController {
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
|
||||
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
//ip配置导入
|
||||
@RequestMapping(value = "/importIp", method=RequestMethod.POST)
|
||||
public String importIp(RedirectAttributes redirectAttributes,
|
||||
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
|
||||
this._importIp(redirectAttributes, file,cfg);
|
||||
redirectAttributes.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
|
||||
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
@@ -108,4 +111,13 @@ public class RatelimitController extends CommonController {
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","domain:ratelimit");
|
||||
return "redirect:" + adminPath +"/manipulation/ratelimit/domain/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
//ip配置导入
|
||||
@RequestMapping(value = "/ip/importIp", method=RequestMethod.POST)
|
||||
public String importIp(RedirectAttributes redirectAttributes,
|
||||
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
|
||||
this._importIp(redirectAttributes, file,cfg);
|
||||
redirectAttributes.addAttribute("urlPrefix","/manipulation/ratelimit/ip");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:ratelimit");
|
||||
return "redirect:" + adminPath +"/manipulation/ratelimit/ip/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,22 @@
|
||||
package com.nis.web.controller.configuration.ntc;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.authz.annotation.Logical;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.Page;
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
import com.nis.domain.configuration.IpPortCfg;
|
||||
import com.nis.exceptions.MaatConvertException;
|
||||
import com.nis.util.Constants;
|
||||
import com.nis.web.controller.BaseController;
|
||||
import com.nis.web.controller.configuration.CommonController;
|
||||
|
||||
/**
|
||||
* IP相关配置控制类
|
||||
@@ -29,105 +25,51 @@ import com.nis.web.controller.BaseController;
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("${adminPath}/ntc/iplist")
|
||||
public class IpController extends BaseController{
|
||||
public class IpController extends CommonController{
|
||||
@RequestMapping(value = {"list"})
|
||||
@RequiresPermissions(value={"iplist:config","iplist:audit"},logical=Logical.OR)
|
||||
public String list(String cfgName,Model model,@ModelAttribute("cfg")IpPortCfg cfg,HttpServletRequest request,HttpServletResponse response) {
|
||||
model.addAttribute("cfgName", cfgName);
|
||||
cfg.setTableName(IpPortCfg.getTablename());
|
||||
Page<BaseIpCfg> searchPage=new Page<BaseIpCfg>(request,response,"r");
|
||||
Page<BaseIpCfg> page = ipCfgService.findPage(searchPage, cfg);
|
||||
model.addAttribute("page", page);
|
||||
initPageCondition(model,cfg);
|
||||
return "/cfg/iplist/list";
|
||||
this._ipList(cfgName, model, cfg, request, response);
|
||||
model.addAttribute("urlPrefix","/ntc/iplist");
|
||||
model.addAttribute("requiresPermissionPrefix","iplist");
|
||||
return "/cfg/common/ipList";
|
||||
}
|
||||
@RequestMapping(value = {"form"})
|
||||
@RequiresPermissions(value={"iplist:config"})
|
||||
public String form(String cfgName,Model model,String ids,Integer functionId,BaseIpCfg entity) {
|
||||
model.addAttribute("cfgName", cfgName);
|
||||
if(StringUtils.isNotBlank(ids)){
|
||||
entity = ipCfgService.getIpCfgById(IpPortCfg.getTablename(),Long.parseLong(ids));
|
||||
}
|
||||
if(entity.getCfgId()!=null){
|
||||
// List<BaseIpCfg> areaCfg=ipCfgService.getListByComileId(AreaIpCfg.getTablename(),functionId.intValue(), String.valueOf(entity.getCompileId()));
|
||||
// model.addAttribute("areaCfgs", areaCfg);
|
||||
model.addAttribute("_cfg", entity);
|
||||
initUpdateFormCondition(model,entity);
|
||||
}else{
|
||||
IpPortCfg cfg=new IpPortCfg();
|
||||
cfg.initDefaultValueImpl();
|
||||
cfg.setFunctionId(entity.getFunctionId());
|
||||
cfg.setProtocolId(entity.getProtocolId());
|
||||
model.addAttribute("_cfg", cfg);
|
||||
initFormCondition(model,entity);
|
||||
}
|
||||
|
||||
return "/cfg/iplist/form";
|
||||
this._ipForm(cfgName, model, ids, functionId, entity);
|
||||
model.addAttribute("urlPrefix","/ntc/iplist");
|
||||
model.addAttribute("requiresPermissionPrefix","iplist");
|
||||
return "/cfg/common/ipForm";
|
||||
}
|
||||
@RequestMapping(value = {"saveOrUpdate"})
|
||||
public String saveOrUpdate(String cfgName,RedirectAttributes model, IpPortCfg cfg) {
|
||||
model.addAttribute("cfgName", cfgName);
|
||||
Date date=new Date();
|
||||
cfg.setTableName(IpPortCfg.getTablename());
|
||||
logger.info("saveOrUpdateIp loaded");
|
||||
try{
|
||||
cfg.setIsValid(Constants.VALID_NO);
|
||||
cfg.setIsAudit(Constants.AUDIT_NOT_YET);
|
||||
if(cfg.getCfgId()==null){//新增
|
||||
cfg.setCreatorId(cfg.getCurrentUser().getId());
|
||||
cfg.setCreateTime(date);
|
||||
ipCfgService.addIpCfg(cfg);
|
||||
}else{//修改
|
||||
cfg.setEditorId(cfg.getCurrentUser().getId());
|
||||
cfg.setEditTime(new Date());
|
||||
ipCfgService.updateIpCfg(cfg);
|
||||
}
|
||||
addMessage(model,"save_success");
|
||||
}catch(Exception e){
|
||||
logger.error("保存失败",e);
|
||||
addMessage(model,"save_failed");
|
||||
}
|
||||
this._saveOrUpdateIp(cfgName, model, cfg);
|
||||
return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
@RequestMapping(value = {"delete"})
|
||||
@RequiresPermissions("iplist:config")
|
||||
public String delete(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
|
||||
model.addAttribute("cfgName", cfgName);
|
||||
try{
|
||||
ipCfgService.deleteIp(ids,compileIds,functionId.intValue());
|
||||
addMessage(model,"delete_success");
|
||||
}catch(Exception e){
|
||||
logger.error("删除失败", e);
|
||||
addMessage(model,"delete_failed");
|
||||
}
|
||||
this._deleteIp(cfgName, ids, compileIds, functionId, model);
|
||||
model.addAttribute("urlPrefix","/ntc/iplist");
|
||||
model.addAttribute("requiresPermissionPrefix","iplist");
|
||||
return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+functionId;
|
||||
}
|
||||
@RequestMapping(value = {"audit"})
|
||||
// @RequiresPermissions("iplist:audit")
|
||||
public String audit(String cfgName,String ids,IpPortCfg cfg,RedirectAttributes redirectAttributes) {
|
||||
redirectAttributes.addAttribute("cfgName", cfgName);
|
||||
try{
|
||||
for(String id:ids.split(",")){
|
||||
Long.parseLong(id);
|
||||
}
|
||||
List<BaseIpCfg> beans=ipCfgService.getListByCfgId(IpPortCfg.getTablename(),cfg.getFunctionId().intValue(),ids);
|
||||
Date date=new Date();
|
||||
for(BaseIpCfg bean:beans){
|
||||
bean.setTableName(IpPortCfg.getTablename());
|
||||
bean.setAuditorId(bean.getCurrentUser().getId());
|
||||
bean.setAuditTime(date);
|
||||
bean.setIsAudit(cfg.getIsAudit());
|
||||
bean.setIsValid(cfg.getIsValid());
|
||||
ipCfgService.audit(bean);
|
||||
}
|
||||
addMessage(redirectAttributes,"audit_success");
|
||||
}catch(MaatConvertException e){
|
||||
logger.error("审核失败", e);
|
||||
addMessage(redirectAttributes, e.getPrefix()+e.getResult().getReason());
|
||||
}catch(Exception e){
|
||||
logger.error("审核失败", e);
|
||||
addMessage(redirectAttributes, "audit_failed");
|
||||
}
|
||||
this._auditIp(cfgName, ids, cfg, redirectAttributes);
|
||||
redirectAttributes.addAttribute("urlPrefix","/ntc/iplist");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","iplist");
|
||||
return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
//ip配置导入
|
||||
@RequestMapping(value = "importIp", method=RequestMethod.POST)
|
||||
public String importIp(RedirectAttributes redirectAttributes,
|
||||
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
|
||||
redirectAttributes.addAttribute("urlPrefix","/ntc/iplist");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","iplist");
|
||||
this._importIp(redirectAttributes, file,cfg);
|
||||
return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,9 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
@@ -108,4 +111,13 @@ public class ControlController extends CommonController {
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","control:domain");
|
||||
return "redirect:" + adminPath +"/proxy/control/domain/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
//ip配置导入
|
||||
@RequestMapping(value = "/ip/importIp", method=RequestMethod.POST)
|
||||
public String importIp(RedirectAttributes redirectAttributes,
|
||||
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
|
||||
this._importIp(redirectAttributes, file,cfg);
|
||||
redirectAttributes.addAttribute("urlPrefix","/proxy/control/ip");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","control:ip");
|
||||
return "redirect:" + adminPath +"/proxy/control/ip/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,9 @@ import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
import com.nis.domain.configuration.BaseIpCfg;
|
||||
@@ -98,4 +101,13 @@ public class InterceptController extends CommonController{
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","intercept:domain");
|
||||
return "redirect:" + adminPath +"/proxy/intercept/domain/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
//ip配置导入
|
||||
@RequestMapping(value = "/ip/importIp", method=RequestMethod.POST)
|
||||
public String importIp(RedirectAttributes redirectAttributes,
|
||||
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
|
||||
this._importIp(redirectAttributes, file,cfg);
|
||||
redirectAttributes.addAttribute("urlPrefix","/proxy/intercept/ip");
|
||||
redirectAttributes.addAttribute("requiresPermissionPrefix","intercept:ip");
|
||||
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+cfg.getFunctionId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -419,4 +419,19 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
|
||||
public List<BaseIpCfg> getListByCfgId(String tableName,int functionId,String ids){
|
||||
return ipCfgDao.getListByCfgId(tableName,functionId,ids);
|
||||
}
|
||||
public Integer getCompileId(){
|
||||
//调用服务接口获取compileId
|
||||
Integer compileId = 0;
|
||||
try {
|
||||
List<Integer> compileIds = ConfigServiceUtil.getId(1,1);
|
||||
if(!StringUtil.isEmpty(compileIds)){
|
||||
compileId = compileIds.get(0);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
logger.info("获取编译ID出错");
|
||||
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+e.getMessage());
|
||||
}
|
||||
return compileId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -691,6 +691,7 @@ ip_ratelimit=ip ratelimit
|
||||
domain_ratelimit=domain ratelimit
|
||||
ratelimit=ratelimit scale
|
||||
ir_type=multiplex type
|
||||
dns_strategy_id=dns strategy id
|
||||
#=============about manipulation=========
|
||||
#=============about Maintenance=========
|
||||
ip_multiplex_pool_config=ip multiplex pool config
|
||||
|
||||
@@ -675,6 +675,7 @@ ip_ratelimit=ip ratelimit
|
||||
domain_ratelimit=domain ratelimit
|
||||
ratelimit=ratelimit scale
|
||||
ir_type=multiplex type
|
||||
dns_strategy_id=dns strategy id
|
||||
#=============about manipulation=========
|
||||
#=============about Maintenance=========
|
||||
ip_multiplex_pool_config=ip multiplex pool config
|
||||
|
||||
@@ -717,6 +717,7 @@ ip_ratelimit=ip\u9650\u6D41
|
||||
domain_ratelimit=\u57DF\u540D\u9650\u6D41
|
||||
ratelimit=\u9650\u901F\u6BD4\u4F8B
|
||||
ir_type=\u590D\u7528\u7C7B\u578B
|
||||
dns_strategy_id=dns\u7B56\u7565id
|
||||
#=============about manipulation=========
|
||||
#=============about app config===========
|
||||
domain=\u57DF\u540D
|
||||
|
||||
115
src/main/webapp/WEB-INF/include/excel/importIp.jsp
Normal file
115
src/main/webapp/WEB-INF/include/excel/importIp.jsp
Normal file
@@ -0,0 +1,115 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
conslole.log("调用须知:调用本页面函数在common.js里,并且需要配置字典MAAT_SERVICE中的项")
|
||||
});
|
||||
</script>
|
||||
<div class="modal fade" id="import_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<form id="importForm1" action="${ctx}${urlPrefix}/importIp"
|
||||
method="post" enctype="multipart/form-data" class="form-horizontal"
|
||||
onsubmit="loading('<spring:message code='loading'/>');">
|
||||
<input type="hidden" id="cfgRegionCode" name="cfgRegionCode" value="" />
|
||||
<input type="hidden" id="cfgType" name="cfgType" value=""/>
|
||||
<input type="hidden" id="serviceId" name="serviceId" value="">
|
||||
<input type="hidden" id="protocolId" name="protocolId" value="">
|
||||
<input type="hidden" id="functionId" name="functionId" value="${cfg.functionId}">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">
|
||||
<spring:message code="import" />
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-error hide">
|
||||
<button class="close" data-dismiss="alert"></button>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-3"> <spring:message
|
||||
code="action" />
|
||||
</label>
|
||||
<div class="col-md-6">
|
||||
<c:forEach items="${serviceList}" var="service"
|
||||
varStatus="satus">
|
||||
<label class="radio-inline">
|
||||
<c:if test="${cfg.functionId eq service.functionId}">
|
||||
<c:forEach items="${fns:getDictList('MAAT_SERVICE')}" var="serviceC">
|
||||
<c:if test="${service.serviceId==serviceC.itemCode}">
|
||||
<span class="${serviceC.itemValue}">
|
||||
<input type="radio" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }"
|
||||
value="${service.action }" disabled class="required action">
|
||||
<c:forEach items="${fns:getDictList('SERVICE_ACTION') }" var="dict">
|
||||
<c:if test="${dict.itemCode eq service.action}">
|
||||
<spring:message code="${dict.itemValue }"/>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</span>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</c:if>
|
||||
</label>
|
||||
</c:forEach>
|
||||
</div>
|
||||
<div for="action"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 control-label" style="margin-top:5px;"><spring:message
|
||||
code="chooseFile" />:</label>
|
||||
<div class="controls">
|
||||
|
||||
<div class="fileupload fileupload-new"
|
||||
data-provides="fileupload">
|
||||
|
||||
<div class="input-append">
|
||||
|
||||
<div class="uneditable-input">
|
||||
<i class="fa fa-fa fa-file"></i> <span
|
||||
class="fileupload-preview"></span>
|
||||
</div>
|
||||
<span class="btn btn-file ">
|
||||
<button type="button" class="btn fileupload-new">
|
||||
<spring:message code="add" />
|
||||
</button>
|
||||
<button type="button" class="btn fileupload-exists">
|
||||
<spring:message code="edit" />
|
||||
</button> <input type="file" class="default" id="uploadFile"
|
||||
name="file" /> <input type="hidden" name="flag"
|
||||
value="${flag }" />
|
||||
</span>
|
||||
<button type="button" class="btn red fileupload-exists"
|
||||
data-dismiss="fileupload" style="margin-left:-1px;">
|
||||
<spring:message code="remove" />
|
||||
</a>
|
||||
<button type="button" onclick="downLoadXLS()"
|
||||
class="btn black" style="margin-left:-1px">
|
||||
<spring:message code="download" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn red" onclick="importCfg()">
|
||||
<spring:message code="ok" />
|
||||
</button>
|
||||
<button type="button" class="btn" data-dismiss="modal">
|
||||
<spring:message code="close" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -38,19 +38,6 @@
|
||||
$("#searchForm")[0].reset();
|
||||
});
|
||||
});
|
||||
var edit=function(url){
|
||||
var cked = $('tbody tr td input.i-checks:checkbox:checked');
|
||||
if(cked.val()==1){
|
||||
top.$.jBox.tip("<spring:message code='has_approved'/>", "<spring:message code='info'/>");
|
||||
return;
|
||||
}
|
||||
if(cked.length==1){
|
||||
window.location = url+"&compileId="+cked.attr("id");
|
||||
}else{
|
||||
top.$.jBox.tip("<spring:message code='check_one'/>", "<spring:message code='info'/>");
|
||||
return;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
@@ -60,12 +47,28 @@
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
<div class="page-content">
|
||||
<!-- 模板导入,start -->
|
||||
<%@include file="/WEB-INF/include/excel/importIp.jsp" %>
|
||||
<!-- 模板导入,end -->
|
||||
<div class="theme-panel hidden-xs hidden-sm">
|
||||
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
|
||||
<button type="button" class="btn btn-primary"
|
||||
onClick="javascript:window.location='${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
|
||||
<i class="fa fa-plus"></i>
|
||||
<spring:message code="add"></spring:message></button>
|
||||
<!-- 导入功能按钮 -->
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-default dropdown-toggle green" data-toggle="dropdown">
|
||||
<i class="fa fa-wrench"></i> <spring:message code="import"></spring:message>
|
||||
<i class="fa fa-angle-down"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu pull-right">
|
||||
<c:forEach items="${regionList}" var="region" varStatus="status">
|
||||
<li><a href="javascript:;" onClick="toImport('${region.configRegionCode}','${region.configRegionValue}');">
|
||||
<i class="fa fa-upload"></i><spring:message code="${region.configRegionValue}"/></a></li>
|
||||
</c:forEach>
|
||||
</ul>
|
||||
</div>
|
||||
</shiro:hasPermission>
|
||||
</div>
|
||||
<h3 class="page-title">
|
||||
|
||||
@@ -311,6 +311,10 @@ $(function(){
|
||||
$(this).html("0");
|
||||
}
|
||||
});
|
||||
$(".action").on("change", function() {
|
||||
$("#serviceId").val($(this).attr("serviceId"));
|
||||
$("#protocolId").val($(this).attr("protocolId"));
|
||||
});
|
||||
});
|
||||
//与表达式时,只允许为子串匹配
|
||||
var setDefaultMatchMethod=function (obj){
|
||||
@@ -760,3 +764,54 @@ function validateDataIsLicit(){
|
||||
var fdfz = $.trim($("#tags_1").val()).replace(/,/g,"");
|
||||
return isLicit(fdfz);
|
||||
}
|
||||
//导入文件提示框
|
||||
var toImport=function (cfgRegionCode,cfgType){
|
||||
$("#cfgRegionCode").val(cfgRegionCode);
|
||||
$("#cfgType").val(cfgType);
|
||||
if(cfgType){//针对要下发到不同配置的处理
|
||||
$('.radio-inline').children('span').each(function(){
|
||||
if($(this).hasClass(cfgType)){
|
||||
$(this).find("input").removeAttr("disabled");
|
||||
if($('.radio-inline').children('span').size()==1){
|
||||
$(this).find("input").click();
|
||||
}
|
||||
}else{
|
||||
$(this).find("input").attr("disabled",true).attr("checked",false);
|
||||
}
|
||||
})
|
||||
}
|
||||
$("#import_modal").modal({
|
||||
backdrop:"static",
|
||||
keyboard:false,
|
||||
show:true
|
||||
});
|
||||
}
|
||||
//下载模板
|
||||
var downLoadXLS=function(){
|
||||
var pathName=window.document.location.pathname.substring(0,window.document.location.pathname.lastIndexOf("/"));
|
||||
window.location =pathName+"/import/template?functionId="+$("#functionId").val()+"&cfgRegionCode="+$("#cfgRegionCode").val();
|
||||
}
|
||||
//导入配置
|
||||
var importCfg=function(){
|
||||
if($("#serviceId").val()==""){
|
||||
alert("请选择action");
|
||||
return ;
|
||||
}
|
||||
var fileName = $(".fileupload-preview", $("#importForm1")).text();
|
||||
var $error = $('.alert-error', $("#importForm1"));
|
||||
if(fileName==""){
|
||||
|
||||
$("span",$error).html("请选择xls或者xlsx格式文件进行导入...");
|
||||
$error.removeClass("hide");
|
||||
$error.addClass("show");
|
||||
return false;
|
||||
|
||||
}else if(fileName.lastIndexOf("\.")==-1||fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xls' &&fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xlsx'){
|
||||
$("span",$error).html("导入的文件后缀,必须为xls或者xlsx...");
|
||||
$error.removeClass("hide");
|
||||
$error.addClass("show");
|
||||
return false;
|
||||
}
|
||||
$("#import_modal").modal('hide');//导入文件隐藏
|
||||
$("#importForm1").submit();
|
||||
}
|
||||
Reference in New Issue
Block a user