Merge branch 'develop' of http://192.168.10.125/k18_web/NFS.git into develop

This commit is contained in:
DuanDongmei
2018-12-03 16:38:38 +08:00
20 changed files with 170 additions and 91 deletions

View File

@@ -7,7 +7,7 @@ public class IpAddrPool extends InlineIp{
@Expose
private Integer regionId;
@Expose
private Integer groupId;
private Long groupId;
@Expose
private Long addrPoolId;
@@ -19,11 +19,11 @@ public class IpAddrPool extends InlineIp{
this.regionId = regionId;
}
public Integer getGroupId() {
public Long getGroupId() {
return groupId;
}
public void setGroupId(Integer groupId) {
public void setGroupId(Long groupId) {
this.groupId = groupId;
}

View File

@@ -23,6 +23,7 @@ import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.SysDataDictionaryName;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.CacheUtils;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
@@ -85,7 +86,7 @@ public class ConfigSynchronizationController extends BaseController {
*/
@RequestMapping(value = {"send"})
public void send(Model model,HttpServletRequest request,HttpServletResponse response){
int status = 0;
int status = -2;
try {
configSynchronizationService.send(request,response,null);
status = 1;
@@ -99,10 +100,13 @@ public class ConfigSynchronizationController extends BaseController {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch(MaatConvertException e){
e.printStackTrace();
status = -1;
}catch (Exception e) {
e.printStackTrace();
}finally{
if(status==0){
if(status!=1){
SysDataDictionaryName sysDictName = new SysDataDictionaryName();
sysDictName.setMark("currrent_sync_status");
List<SysDataDictionaryName> dictList = dictService.findDicByName(sysDictName);
@@ -112,14 +116,14 @@ public class ConfigSynchronizationController extends BaseController {
if(!StringUtil.isEmpty(itemList)){
SysDataDictionaryItem item = itemList.get(0);
item.setDictionaryId(dict.getId().intValue());
item.setItemValue("-2");//界面组织数据失败
item.setItemValue(String.valueOf(status));//-2界面组织数据失败-1服务端返回的失败
dictService.updateDictItem(item);
//删除字典缓存
CacheUtils.remove(Constants.CACHE_DICT_MAP);
}
}
Map<String,Integer> map = new HashMap();
map.put("syncStatus", 1);
map.put("syncStatus", 0);
JSONObject result = ConfigServiceUtil.configSyncCmd(BaseService.gsonToJson(map));//取消同步
}else{

View File

@@ -73,8 +73,8 @@ public class TrafficStatisticsInfoController extends BaseController {
inoctetsNum = (Double) map.get("inoctets");
outoctetsNum = (Double) map.get("outoctets");
//单位换算 byte->bit/s
inoctetsNum=(inoctetsNum*8)/(5*60*60);
outoctetsNum=(outoctetsNum*8)/(5*60*60);
inoctetsNum=(inoctetsNum*8)/(5*60);
outoctetsNum=(outoctetsNum*8)/(5*60);
}
bandwidth=inoctetsNum+outoctetsNum;

View File

@@ -14,7 +14,6 @@ public interface IpMultiplexDao extends CrudDao<IpMultiplexDao>{
List<IpReusePolicyCfg> findPage(IpReusePolicyCfg entity);
List<IpReusePolicyCfg> findList(@Param("cfgId")Long cfgId
,@Param("isAudit")Integer isAudit
,@Param("isValid")Integer isValid);
void savePolicyCfg(IpReusePolicyCfg entity);

View File

@@ -9,6 +9,7 @@
<result column="user_id" property="userId" jdbcType="INTEGER"/>
<result column="user_type" property="userType" jdbcType="VARCHAR"/>
<result column="do_log" property="doLog" jdbcType="INTEGER" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
<result column="is_audit" property="isAudit" jdbcType="INTEGER" />
<result column="cfg_region_code" property="cfgRegionCode" jdbcType="INTEGER" />
@@ -38,7 +39,7 @@
<sql id="policyColumns">
r.CFG_ID,r.CFG_DESC,r.ADDR_POOL_ID,r.USER_ID,r.USER_TYPE,
r.ACTION,r.IS_VALID,r.IS_AUDIT,r.CFG_REGION_CODE,r.CFG_TYPE,r.FUNCTION_ID,
r.ACTION,r.DO_LOG,r.IS_VALID,r.IS_AUDIT,r.CFG_REGION_CODE,r.CFG_TYPE,r.FUNCTION_ID,
r.SERVICE_ID,r.COMPILE_ID,r.REQUEST_ID,r.CLASSIFY,r.ATTRIBUTE,r.LABLE,
r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME,
r.CANCEL_REQUEST_ID,r.IS_AREA_EFFECTIVE,r.AREA_EFFECTIVE_IDS,
@@ -162,9 +163,6 @@
<if test="isValid ==null">
AND r.is_valid != -1
</if>
<if test="isAudit !=null">
AND r.is_audit = #{isAudit,jdbcType=INTEGER}
</if>
</where>
ORDER BY r.cfg_id
</select>
@@ -176,6 +174,7 @@
user_id,
user_type,
action,
do_log,
is_valid,
is_audit,
cfg_type,
@@ -206,6 +205,7 @@
#{userId,jdbcType=INTEGER},
#{userType,jdbcType=VARCHAR},
#{action,jdbcType=INTEGER},
#{doLog,jdbcType=INTEGER},
0,
0,
#{cfgType,jdbcType=VARCHAR},
@@ -261,6 +261,9 @@
<if test="userId != null" >
user_id = #{userId,jdbcType=INTEGER},
</if>
<if test="doLog != null" >
do_log = #{doLog,jdbcType=INTEGER},
</if>
<if test="isValid != null" >
is_valid = #{isValid,jdbcType=INTEGER},
</if>

View File

@@ -176,9 +176,9 @@ public class IpAddrPoolCfgService extends BaseService{
}
IpCfg c = cfgs.get(0);
ip.setRegionId(ipcfg.getCompileId());
//ip.setGroupId(ipcfg.getCompileId());
ip.setGroupId(cfg.getCfgId());
ip.setAddrType(ipcfg.getIpType());
ip.setSrcIp(c.getSrcIp());
ip.setMaskSrcIp(c.getSrcIpMask());
ip.setSrcPort(c.getSrcPort());
@@ -190,13 +190,12 @@ public class IpAddrPoolCfgService extends BaseService{
ip.setProtocol(ipcfg.getProtocol());
ip.setDirection(ipcfg.getDirection());
ip.setAddrPoolId(cfg.getCfgId());
ip.setIsValid(cfg.getIsValid());
ip.setAction(ipcfg.getAction());
ip.setService(ipcfg.getServiceId());
ip.setAddrPoolId(cfg.getCfgId());
ip.setAreaEffectiveIds(cfg.getAreaEffectiveIds());//添加区域管控
ip.setOpTime(auditTime);
//ip.setAreaEffectiveIds(cfg.getAreaEffectiveIds());//添加区域管控
resStrategyList.add(ip);
}
//调用服务接口下发配置数据
@@ -224,7 +223,9 @@ public class IpAddrPoolCfgService extends BaseService{
}
IpCfg c = cfgs.get(0);
ip.setRegionId(ipcfg.getCompileId());
ip.setGroupId(cfg.getCfgId());
ip.setAddrType(ipcfg.getIpType());
ip.setSrcIp(c.getSrcIp());
ip.setMaskSrcIp(c.getSrcIpMask());
ip.setSrcPort(c.getSrcPort());
@@ -235,12 +236,13 @@ public class IpAddrPoolCfgService extends BaseService{
ip.setMaskDstPort(c.getDstPortMask());
ip.setProtocol(ipcfg.getProtocol());
ip.setDirection(ipcfg.getDirection());
ip.setAddrPoolId(cfg.getCfgId());
ip.setIsValid(cfg.getIsValid());
ip.setAction(ipcfg.getAction());
ip.setService(ipcfg.getServiceId());
ip.setAddrPoolId(cfg.getCfgId());
ip.setAreaEffectiveIds(cfg.getAreaEffectiveIds());
ip.setOpTime(auditTime);
//ip.setAreaEffectiveIds(cfg.getAreaEffectiveIds());
resStrategyList.add(ip);
}
//调用服务接口取消配置

View File

@@ -40,7 +40,7 @@ public class IpMultiplexService extends BaseService{
}
public IpReusePolicyCfg getPolicyCfg(Long cfgId, Integer isValid) {
List<IpReusePolicyCfg> list=ipMultiplexDao.findList(cfgId,isValid,null);
List<IpReusePolicyCfg> list=ipMultiplexDao.findList(cfgId,isValid);
IpReusePolicyCfg policyCfg=null;
if(list != null && list.size()>0){
policyCfg=list.get(0);
@@ -119,6 +119,7 @@ public class IpMultiplexService extends BaseService{
cfg.setIsAudit(isAudit);
cfg.setAuditorId(UserUtils.getUser().getId());
cfg.setAuditTime(auditTime);
cfg.setDoLog(null);;
ipMultiplexDao.updatePolicyCfg(cfg);
SysDictInfoService sysDictInfoService = SpringContextHolder.getBean(SysDictInfoService.class);
@@ -126,16 +127,20 @@ public class IpMultiplexService extends BaseService{
cfg = this.getPolicyCfg(cfg.getCfgId(), null);
String json="";
if(cfg.getIsAudit() == Constants.AUDIT_YES){
String areaEffectiveIds = cfg.getIsAreaEffective() == 1?sysDictInfoService.setEffectiveRange(cfg.getAreaEffectiveIds()):"0";
Map<String, Object> params = new HashMap<String,Object>();
params.put("configId", cfg.getCompileId());
params.put("addrPoolId", cfg.getAddrPoolId());
params.put("userType", cfg.getUserType());
params.put("userId", cfg.getUserId());
params.put("doLog", cfg.getDoLog());
params.put("action", cfg.getAction());
params.put("service", cfg.getServiceId());
params.put("isValid", 1);
params.put("opTime", auditTime);
if(cfg.getIsAreaEffective() == 1){
params.put("effectiveRange", sysDictInfoService.setEffectiveRange(cfg.getAreaEffectiveIds()));
}
params.put("translateParam", "byconn=10");
params.put("effectiveRange", areaEffectiveIds);
List list = Lists.newArrayList();
list.add(params);
//调用服务接口下发配置数据
@@ -153,16 +158,20 @@ public class IpMultiplexService extends BaseService{
}
}else if(cfg.getIsAudit() == Constants.AUDIT_NOT_YES){
String areaEffectiveIds = cfg.getIsAreaEffective() == 1?sysDictInfoService.setEffectiveRange(cfg.getAreaEffectiveIds()):"0";
Map<String, Object> params = new HashMap<String,Object>();
params.put("configId", cfg.getCompileId());
params.put("addrPoolId", cfg.getAddrPoolId());
params.put("userType", cfg.getUserType());
params.put("userId", cfg.getUserId());
params.put("doLog", cfg.getDoLog());
params.put("action", cfg.getAction());
params.put("service", cfg.getServiceId());
params.put("isValid", 0);
params.put("opTime", auditTime);
if(cfg.getIsAreaEffective() == 1){
params.put("effectiveRange", sysDictInfoService.setEffectiveRange(cfg.getAreaEffectiveIds()));
}
params.put("translateParam", "byconn=10");
params.put("effectiveRange", areaEffectiveIds);
List list = Lists.newArrayList();
list.add(params);
//调用服务接口取消配置

View File

@@ -1334,4 +1334,5 @@ address_pool_id=Address Pool ID
log_to_cfg=Config
address_pool_is_used=Address pool is used and cannot perform this operation!
cgi_service_failed=Request CGI server failed
available_ip=Available IP
available_ip=Available IP
config_sync=Configuration Synchronization

View File

@@ -220,7 +220,7 @@ export_confirm_message=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u0
fill_loginName=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043B\u043E\u0433\u0438\u043D
fill_loginPassWord=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C
loginName_error=\u041B\u043E\u0433\u0438\u043D \u0438\u043B\u0438 \u043F\u0430\u0440\u043E\u043B\u044C \u043D\u0435\u0432\u0435\u0440\u043D\u044B, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437.
system_error=\u0412 \u0441\u0438\u0441\u0442\u0435\u043C\u0435 \u0432\u043E\u0437\u043D\u0438\u043A\u043B\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435!
system_error=\u0412 \u0441\u0438\u0441\u0442\u0435\u043C\u0435 \u0432\u043E\u0437\u043D\u0438\u043A\u043B\u0430 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u043F\u043E\u0437\u0436\u0435\!
save_success=\u0423\u0441\u043F\u0435\u0448\u043D\u043E\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435
save_failed=\u041D\u0435\u0443\u0434\u0430\u0447\u043D\u043E\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435
update_success=\u041D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u043E\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435
@@ -231,7 +231,7 @@ delete_failed_admin=\u041D\u0435\u0443\u0434\u0430\u0447\u043D\u043E\u0435 \u044
audit_success=\u0423\u0441\u043F\u0435\u0448\u043D\u043E\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435
audit_failed=\u041D\u0435\u0443\u0434\u0430\u0447\u043D\u043E\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435
turning_page=\u041F\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044F URL
login_timeout=\u041D\u0435\u0442 \u043B\u043E\u0433\u0438\u043D\u0430 \u0438\u043B\u0438 \u0442\u0430\u0439\u043C\u0430\u0443\u0442 \u0432\u0445\u043E\u0434\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u043E\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0441\u043D\u043E\u0432\u0430. \u0421\u043F\u0430\u0441\u0438\u0431\u043E!
login_timeout=\u041D\u0435\u0442 \u043B\u043E\u0433\u0438\u043D\u0430 \u0438\u043B\u0438 \u0442\u0430\u0439\u043C\u0430\u0443\u0442 \u0432\u0445\u043E\u0434\u0430, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u043E\u0439\u0434\u0438\u0442\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0441\u043D\u043E\u0432\u0430. \u0421\u043F\u0430\u0441\u0438\u0431\u043E\!
captcha_error=\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F
enter_captcha=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u043E\u0434 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F
input=\u0412\u0432\u0435\u0434\u0438\u0442\u0435
@@ -241,17 +241,17 @@ filter=\u0424\u0438\u043B\u044C\u0442\u0440
to=\u0414\u043E
reset=\u0421\u0431\u043E\u0440\u0441
info=\u0418\u043D\u0444\u043E.
has_approved=\u0415\u0441\u043B\u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u044B, \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430!
hasnot_approved=\u041D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0435\u043D\u0430, \u044D\u0442\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430!
check_one=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445!
one_more=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0438\u043D\u0438\u043C\u0443\u043C!
one_more_area=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 ISP!
has_approved=\u0415\u0441\u043B\u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u044B, \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430\!
hasnot_approved=\u041D\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0435\u043D\u0430, \u044D\u0442\u0430 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0430\!
check_one=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445\!
one_more=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0447\u0430\u0441\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0438\u043D\u0438\u043C\u0443\u043C\!
one_more_area=\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 ISP\!
custom_columns=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0435 \u043F\u043E\u043B\u044F \u0441\u0442\u043E\u043B\u0431\u0446\u043E\u0432
maxlength_64=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 64 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432!
maxlength_128=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 128 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432!
maxlength_256=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 256 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432!
maxlength_512=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 512 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432!
maxlength_4000=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 4000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432!
maxlength_64=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 64 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\!
maxlength_128=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 128 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\!
maxlength_256=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 256 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\!
maxlength_512=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 512 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\!
maxlength_4000=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0435 \u0431\u043E\u043B\u0435\u0435 4000 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\!
ok=OK
clear=\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C
close=\u0417\u0430\u043A\u0440\u044B\u0442\u044C
@@ -266,7 +266,7 @@ sendind_org=\u041E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F \
no_node=\u041D\u0435\u043B\u044C\u0437\u044F \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0443\u0437\u0435\u043B
select_icon=\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0437\u043D\u0430\u0447\u043E\u043A
nothing=\u041D\u0438\u0447\u0435\u0433\u043E
noneData=\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445!
noneData=\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\!
all=\u0412\u0441\u0435
act=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435
block=\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435
@@ -391,12 +391,12 @@ success=\u0423\u0441\u043F\u0435\u0448\u043D\u043E
password=\u041F\u0430\u0440\u043E\u043B\u044C
nochange_blank=\u0415\u0441\u043B\u0438 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C, \u043E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0435\u0433\u043E \u043F\u0443\u0441\u0442\u044B\u043C.
confirm_password=\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0430\u0440\u043E\u043B\u044F
manager_info=\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u0434\u043E\u043B\u0436\u0435\u043D \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043B\u0438\u0447\u043D\u043E\u0441\u0442\u044C \u043A\u0430\u043A "\u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440", \u0438\u043D\u0430\u0447\u0435 \u044D\u0442\u043E \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u0430\u0443\u0434\u0438\u0442\u043E\u0440\u0430!
manager_info=\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u0434\u043E\u043B\u0436\u0435\u043D \u0443\u043A\u0430\u0437\u0430\u0442\u044C \u043B\u0438\u0447\u043D\u043E\u0441\u0442\u044C \u043A\u0430\u043A "\u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440", \u0438\u043D\u0430\u0447\u0435 \u044D\u0442\u043E \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u0430\u0443\u0434\u0438\u0442\u043E\u0440\u0430\!
name_existed=\u041B\u043E\u0433\u0438\u043D \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
parent_org=\u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u0430\u044F \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u044F
is_useable=\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E?
address=\u0410\u0434\u0440\u0435\u0441
nochange=\u041D\u0435\u0442 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F!
nochange=\u041D\u0435\u0442 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\!
module_name=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043C\u043E\u0434\u0443\u043B\u044F
dict_mark=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0441\u043B\u043E\u0432\u0430\u0440\u044F
run_state=\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0440\u0430\u0431\u043E\u0442\u044B
@@ -410,10 +410,10 @@ edit_record=\u0417\u0430\u043F\u0438\u0441\u044C \u0440\u0435\u0434\u0430\u043A\
edit_record_view=\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0437\u0430\u043F\u0438\u0441\u0438 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F
dict_edit_info=\u0421\u043B\u043E\u0432\u0430\u0440\u044C \u043E\u0447\u0435\u043D\u044C \u0432\u0430\u0436\u0435\u043D \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0435. \u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C?
dict_delete_info=\u0421\u043B\u043E\u0432\u0430\u0440\u044C \u043E\u0447\u0435\u043D\u044C \u0432\u0430\u0436\u0435\u043D \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0435. \u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C?
dict_saveitem_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442!
dict_saveitem_nullerror=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C, \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u043C\u0438!
submit_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043C!
form_validate=\u0424\u043E\u0440\u043C\u0430 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0443\u0441\u043F\u0435\u0448\u043D\u043E!
dict_saveitem_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\!
dict_saveitem_nullerror=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u043C, \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u043C\u0438\!
submit_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0441 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043C\!
form_validate=\u0424\u043E\u0440\u043C\u0430 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0443\u0441\u043F\u0435\u0448\u043D\u043E\!
entry=\u0417\u0430\u043F\u0438\u0441\u044C
add_entry=\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u0438\u0441\u044C
click_add_entry=\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0438
@@ -434,13 +434,13 @@ menu=\u041C\u0435\u043D\u044E
parent_menu=\u0420\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u0441\u043A\u043E\u0435 \u043C\u0435\u043D\u044E
aim=\u0426\u0435\u043B\u044C
click_menu_turn=\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043C\u0435\u043D\u044E, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u044D\u0442\u0443 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443
link_window_info=\u0426\u0435\u043B\u0435\u0432\u043E\u0435 \u043E\u043A\u043D\u043E, \u043E\u0442\u043A\u0440\u044B\u0442\u043E\u043A \u043F\u043E URL-\u0430\u0434\u0440\u0435\u0441\u0443, \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: mainframe
link_window_info=\u0426\u0435\u043B\u0435\u0432\u043E\u0435 \u043E\u043A\u043D\u043E, \u043E\u0442\u043A\u0440\u044B\u0442\u043E\u043A \u043F\u043E URL-\u0430\u0434\u0440\u0435\u0441\u0443, \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E\: mainframe
is_top_menu=\u041C\u0435\u043D\u044E \u0432\u0435\u0440\u0445\u043D\u0435\u0433\u043E \u0443\u0440\u043E\u0432\u043D\u044F
icon=\u0418\u043A\u043E\u043D\u043A\u0430
is_top_menu_info=\u042F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u043B\u0438 \u044D\u0442\u043E \u043C\u0435\u043D\u044E \u0432\u0435\u0440\u0445\u043D\u0438\u043C \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u043C \u043C\u0435\u043D\u044E
sort_info=\u041F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043F\u043E \u0432\u043E\u0437\u0440\u0430\u0441\u0442\u0430\u043D\u0438\u044E.
is_show_sysmenu=\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044F \u043B\u0438 \u044D\u0442\u043E \u043C\u0435\u043D\u044E \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u043C \u043C\u0435\u043D\u044E
control_permission_info=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0435 \u0432 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440: @requirespermissions ("\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F")
control_permission_info=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F, \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0435 \u0432 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0435, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440\: @requirespermissions ("\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F")
role_name=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0440\u043E\u043B\u044F
data_range=\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0434\u0430\u043D\u043D\u044B\u0445
allot=\u0420\u0430\u0441\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C
@@ -455,7 +455,7 @@ system_prompt=\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0430 \u0441\u043
old_password=\u0421\u0442\u0430\u0440\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C
new_password=\u041D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C
sure_new_password=\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u043F\u0430\u0440\u043E\u043B\u044C
cancel_clear=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C!
cancel_clear=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\!
sure_clear=\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u043E\u0447\u0438\u0441\u0442\u043A\u0438
role_unique=\u0418\u043C\u044F \u0440\u043E\u043B\u0438 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
role_error_info=\u0412\u0432\u043E\u0434 \u043D\u0435\u0432\u0435\u0440\u0435\u043D, \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u0438\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435.
@@ -504,7 +504,7 @@ sample_file=\u041F\u0440\u0438\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430
sample_sign=\u041F\u0440\u0438\u043C\u0435\u0440 \u0437\u043D\u0430\u043A\u0430
off=\u0417\u0430\u043A\u0440\u044B\u0442\u044C
on=\u041E\u0442\u043A\u0440\u044B\u0442\u044C
click_detail=\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0443 "\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438", \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0441\u043B\u0430\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0443 \u0441\u0438\u0441\u0442\u0435\u043C\u044B. \u0421\u043F\u0430\u0441\u0438\u0431\u043E!
click_detail=\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u043A\u043D\u043E\u043F\u043A\u0443 "\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438", \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0441\u043B\u0430\u0442\u044C \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043E\u0431 \u043E\u0448\u0438\u0431\u043A\u0430\u0445 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0443 \u0441\u0438\u0441\u0442\u0435\u043C\u044B. \u0421\u043F\u0430\u0441\u0438\u0431\u043E\!
return_lastpage=\u0412\u0435\u0440\u043D\u0443\u0442\u044C \u043D\u0430 \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443
show_detail=\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438
hidden_detail=\u0421\u043A\u0440\u044B\u0442\u044C \u0434\u0435\u0442\u0430\u043B\u0438
@@ -574,8 +574,8 @@ chooseFile=\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B
download=\u0428\u0430\u0431\u043B\u043E\u043D \u0441\u043A\u0430\u0447\u0430\u0442\u044C
import_success=\u0423\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u043C\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043B\u0438
import_error=\u0418\u043C\u043F\u043E\u0440\u0442 \u0441 \u043E\u0448\u0438\u0431\u043A\u043E\u0439
import_failed=\u041D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u043C\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043B\u0438!
import_template_failed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D! \u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E\u0431 \u044D\u0442\u043E\u043C:
import_failed=\u041D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u043C\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043B\u0438\!
import_template_failed=\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\! \u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E\u0431 \u044D\u0442\u043E\u043C\:
the_line_of=\u0421\u0442\u0440\u043E\u043A\u0430 rownum
val_protocol_id=\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u0430 \u043F\u0443\u0441\u0442\u043E \u0438\u043B\u0438 \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
val_ip_type=\u0422\u0438\u043F IP \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u043C \u0438 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C 4 (ipv4) \u0438\u043B\u0438 6 (ipv6)
@@ -824,10 +824,10 @@ userregion2=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u
userregion3=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0440\u0435\u0433\u0438\u043E\u043D 3
userregion4=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0440\u0435\u0433\u0438\u043E\u043D 4
userregion5=\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0440\u0435\u0433\u0438\u043E\u043D 5
single_file_upload_size_error=\u0420\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430 %s \u0440\u0430\u0432\u0435\u043D %s, \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C %s!
total_file_upload_size_error=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 - %s, \u043E\u0431\u0449\u0438\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043D\u043E\u0433\u043E \u043A \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435 - %s!
file_upload_type_error=%s \u0442\u0438\u043F \u0444\u0430\u0439\u043B\u0430 \u043D\u0435\u0432\u0435\u0440\u0435\u043D, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0442\u0438\u043F \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 %s!
file_upload_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0444\u0430\u0439\u043B\u0430!
single_file_upload_size_error=\u0420\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430 %s \u0440\u0430\u0432\u0435\u043D %s, \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043E\u0434\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C %s\!
total_file_upload_size_error=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 - %s, \u043E\u0431\u0449\u0438\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u043D\u043E\u0433\u043E \u043A \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435 - %s\!
file_upload_type_error=%s \u0442\u0438\u043F \u0444\u0430\u0439\u043B\u0430 \u043D\u0435\u0432\u0435\u0440\u0435\u043D, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0442\u0438\u043F \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043C\u044B\u0445 \u0444\u0430\u0439\u043B\u043E\u0432 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 %s\!
file_upload_error=\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u0444\u0430\u0439\u043B\u0430\!
audio_sample_reject=\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0431\u0440\u0430\u0437\u0446\u043E\u0432 \u0430\u0443\u0434\u0438\u043E
audio_sample_monit=\u041C\u043E\u043D\u0438\u0442\u043E\u0440\u0438\u043D\u0433 \u043E\u0431\u0440\u0430\u0437\u0446\u043E\u0432 \u0430\u0443\u0434\u0438\u043E
video_sample_reject=\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0431\u0440\u0430\u0437\u0446\u043E\u0432 \u0432\u0438\u0434\u0435\u043E
@@ -1104,9 +1104,9 @@ APP_SSL=\u041F\u0440\u0438\u0437\u043D\u0430\u043A\u0438 SSL \u043F\u0440\u0438\
APP_IP_RANGE=\u0414\u0438\u0430\u043F\u0430\u0437\u043E\u043D IP \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F
APP_DK=\u041F\u0440\u0438\u0437\u043D\u0430\u043A\u0438 DK \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F
MM_SUBSCRIBE_ID=\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u043F\u043E\u0434\u043F\u0438\u0441\u0447\u0438\u043A\u0430
mail_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 SMTP, POP3, IMAP.
av_content_url_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 RTSP,RTMP,MMS.
protocol_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 SIP, RTCP, RTP.
mail_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\: \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 SMTP, POP3, IMAP.
av_content_url_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\: \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 RTSP,RTMP,MMS.
protocol_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\: \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 SIP, RTCP, RTP.
snat_multiplex=\u041F\u0443\u043B \u0430\u0434\u0440\u0435\u0441\u043E\u0432 SNAT
dnat_multiplex=\u041F\u0443\u043B \u0430\u0434\u0440\u0435\u0441\u043E\u0432 NAT
asn_reject=\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 ASN
@@ -1226,7 +1226,7 @@ cfg_operation_log=\u0416\u0443\u0440\u043D\u0430\u043B \u043E\u043F\u0435\u0440\
function_name=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 \u043C\u043E\u0434\u0443\u043B\u044C
config_service_statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438
ruleLimitTip=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u044D\u0444\u0444\u0435\u043A\u0442\u0438\u0432\u043D\u044B\u0445 \u043F\u0440\u0430\u0432\u0438\u043B \u0434\u043E\u0441\u0442\u0438\u0433\u043B\u043E \u043F\u0440\u0435\u0434\u0435\u043B\u0430 (% s).
av_protocol_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435: \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 RTSP, RTMP.
av_protocol_note=\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435\: \u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u0432\u0430\u0435\u043C\u044B\u0435 \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u044B \u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0442 RTSP, RTMP.
ip_range_in_the_same=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u043A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 IP-\u0430\u0434\u0440\u0435\u0441 \u0432 \u043E\u0434\u043D\u043E\u0439 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u043E\u0432 \u0434\u043E\u043B\u0436\u043D\u044B \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u044C\u0441\u044F \u0432 \u043E\u0434\u043D\u043E\u0439 \u043F\u043E\u0434\u0441\u0435\u0442\u0438
log_to_url=\u0414\u043E HTTP URL
source_compile_id=\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438
@@ -1255,7 +1255,7 @@ ip_behavior_data=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 IP
p2p_eMule_keywords=\u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0441\u043B\u043E\u0432\u0430 \u043F\u043E\u0438\u0441\u043A\u0430 emule
p2p_hash_keywords=\u041A\u043B\u044E\u0447\u0435\u0432\u044B\u0435 \u0441\u043B\u043E\u0432\u0430 \u0434\u043B\u044F \u043C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432
not_valid_domain=% s \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u043C \u0434\u043E\u043C\u0435\u043D\u043E\u043C
cert_not_match_domain=\u0414\u0430\u043D\u043D\u044B\u0435 \u0434\u043E\u043C\u0435\u043D\u0430 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430 \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442!
cert_not_match_domain=\u0414\u0430\u043D\u043D\u044B\u0435 \u0434\u043E\u043C\u0435\u043D\u0430 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430 \u043D\u0435 \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u044E\u0442\!
certificate_file_error=\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430 \u0444\u0430\u0439\u043B\u0430
PXY_OBJ_TRUSTED_CA_CERT=\u0414\u043E\u0432\u0435\u0440\u0435\u043D\u043D\u044B\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442
crl_file_error=\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0444\u043E\u0440\u043C\u0430\u0442 \u0444\u0430\u0439\u043B\u0430 CRL
@@ -1333,4 +1333,5 @@ available_ip_total=Available IP Total
address_pool_id=Address Pool ID
log_to_cfg=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
address_pool_is_used=Address pool is used and cannot perform this operation!
available_ip=Available IP
available_ip=Available IP
config_sync=Configuration Synchronization

View File

@@ -1332,4 +1332,5 @@ address_pool_id=\u5730\u5740\u6C60ID
log_to_cfg=\u914D\u7F6E
address_pool_is_used=\u5730\u5740\u6C60\u5DF2\u88AB\u4F7F\u7528\uFF0C\u65E0\u6CD5\u6267\u884C\u8BE5\u64CD\u4F5C\uFF01
cgi_service_failed=\u8BF7\u6C42CGI\u670D\u52A1\u63A5\u53E3\u5931\u8D25
available_ip=\u53EF\u7528IP\u5730\u5740
available_ip=\u53EF\u7528IP\u5730\u5740
config_sync=\u914D\u7F6E\u540C\u6B65

View File

@@ -515,7 +515,7 @@ INSERT INTO `code_app_dic` VALUES ('476', 'orbit', 'orbit', '200440', '', '', '0
INSERT INTO `code_app_dic` VALUES ('477', 'ourworld', 'ourworld', '200441', '', '', '0', '0000000009', '', 'GAMING');
INSERT INTO `code_app_dic` VALUES ('478', 'overwatch', 'overwatch', '200442', '', '', '0', '0000000009', '', 'GAMING');
INSERT INTO `code_app_dic` VALUES ('479', 'diablo3', 'diablo3', '200443', '', '', '0', '0000000009', '', 'GAMING');
INSERT INTO `code_app_dic` VALUES ('480', 'dianping', 'dianping', 'Dueling', '', '', '0', '0000000027', '', 'MOBILE_APP');
INSERT INTO `code_app_dic` VALUES ('480', 'dianping', 'dianping', '200444', '', '', '0', '0000000027', '', 'MOBILE_APP');
INSERT INTO `code_app_dic` VALUES ('481', 'dianshijia', 'dianshijia', '200445', '', '', '0', '0000000010', '', 'P2PTV');
INSERT INTO `code_app_dic` VALUES ('482', 'discord', 'discord', '200446', '', '', '0', '0000000021', '', 'VOIP');
INSERT INTO `code_app_dic` VALUES ('483', 'dogecoin', 'dogecoin', '200447', '', '', '0', '0000000001', '', 'ECOMMERCE');

View File

@@ -0,0 +1,10 @@
-- 地址池
UPDATE function_service_dict SET service_id = 834 WHERE dict_id = 142 AND function_id = 633;
-- SNAT策略
UPDATE function_service_dict SET service_id = 835,`action` = 80 WHERE dict_id = 80 AND function_id = 300;
-- DNAT策略
UPDATE function_service_dict SET service_id = 836,`action` = 80 WHERE dict_id = 143 AND function_id = 304;
ALTER TABLE ip_reuse_policy_cfg ADD do_log INT(11) COMMENT '是否记录结构化日志1是 2否';

View File

@@ -45,6 +45,7 @@ $(function(){
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input name="isAreaEffective" type="hidden" value="0">
<c:if test="${fn:length(serviceList)==1}">
<c:forEach items="${serviceList}" var="service">
<input type="hidden" name="action" serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode}" value="${service.action }">
@@ -83,20 +84,30 @@ $(function(){
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="user"/></label>
<div class="col-md-6">
<select name="userId" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${users }" var="user">
<option value="${user.id}" <c:if test="${_cfg.userId eq user.id }">selected</c:if>><spring:message code="${user.userName}"/></option>
</c:forEach>
</select>
</div>
<div for="userId"></div>
</div>
</div>
<!-- dolog begin-->
<!-- <div class="row doLog"> -->
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><spring:message code="do_log" /></label>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:choose>
<c:when test="${dict.itemCode eq _cfg.doLog}">
<label class="radio-inline">
<input type="radio" name="doLog" checked value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:when>
<c:otherwise>
<label class="radio-inline">
<input type="radio" name="doLog" value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/>
</label>
</c:otherwise>
</c:choose>
</c:forEach>
</div>
</div>
<!-- </div> -->
<!-- dolog end-->
<c:if test="${fn:length(serviceList)>1}">
<div class="col-md-6">
<div class="form-group">
@@ -127,6 +138,20 @@ $(function(){
</c:if>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="user"/></label>
<div class="col-md-6">
<select name="userId" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search">
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${users }" var="user">
<option value="${user.id}" <c:if test="${_cfg.userId eq user.id }">selected</c:if>><spring:message code="${user.userName}"/></option>
</c:forEach>
</select>
</div>
<div for="userId"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="address_pool"/></label>
@@ -159,8 +184,7 @@ $(function(){
</div>
</div>
</div>
<br>
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%>
<%-- <br><%@include file="/WEB-INF/include/form/areaInfo.jsp"%> --%>
<br>
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</div>

View File

@@ -293,7 +293,8 @@
<th class="sort-column a.action"><spring:message code="block_type"/></th>
<th class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="do_log"/></th>
<%-- <th><spring:message code="whether_area_block"/></th> --%>
<th><spring:message code="letter"/></th>
<th><spring:message code="classification"/></th>
<th><spring:message code="attribute"/></th>
@@ -350,13 +351,20 @@
</c:choose>
</td>
<td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog }">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
<%-- <td>
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if>
<c:if test="${indexCfg.isAreaEffective==1}">
<a href="javascript:viewAreaInfo('${ctx}','${indexCfg.areaEffectiveIds }','${indexCfg.compileId }')" >
<spring:message code="selective"/>
</a>
</c:if>
</td>
</td> --%>
<td>${indexCfg.requestName }</td>
<td>
<c:set var="classify"></c:set>

View File

@@ -56,7 +56,15 @@
<c:forEach var="entry" items="${ipActiveList }" varStatus="status">
<tr>
<td>${entry.ipAddr }</td>
<td>${entry.areaId }</td>
<td>
<c:forEach items="${fns:getDictList('AREA_NAME')}" var="dic">
<c:choose>
<c:when test="${dic.itemCode eq entry.areaId}">
<spring:message code="${dic.itemValue}"/>
</c:when>
</c:choose>
</c:forEach>
</td>
<td>${entry.linkNum }</td>
<td>${entry.c2sPktNum }</td>
<td>${entry.s2cPktNum }</td>

View File

@@ -78,6 +78,7 @@
netAddress:"The class C type of IP addresses must has the same network number bit field",
addrPoolUnique:"Address Pool already exists.",
asnNoUnique:"ASN already exists.",
areaUnique:"Area already exists."
areaUnique:"Area already exists.",
config_sync_tip:"The system is being maintained and temporarily inaccessible."
});
}(jQuery));

View File

@@ -78,6 +78,7 @@
netAddress:"Тип IP-адресов класса C должен иметь один и тот же номер сети бит поля.",
addrPoolUnique:"Address Pool уже существует.",
asnNoUnique:"ASN уже существует.",
areaUnique:"Регион уже существует."
areaUnique:"Регион уже существует.",
config_sync_tip:"Система находится под техническим обслуживанием и временно недоступна."
});
}(jQuery));

View File

@@ -78,6 +78,7 @@
netAddress:"C类IP地址网络位必须相同",
addrPoolUnique:"地址池已存在",
asnNoUnique:"ASN号已存在",
areaUnique:"该区域已存在"
areaUnique:"该区域已存在",
config_sync_tip:"系统正在维护中,暂时不可访问!"
});
}(jQuery));

View File

@@ -101,6 +101,11 @@
rcMap[ir + i][ic] = 1
}
}
// 当文字过长有省略时取title导出
var titleText=$(val).text();
if($(val).attr("title")!=null&&$(val).attr("title")!=""){
titleText=$(val).attr("title");
}
if (rcMap[ir]) {
var threshold = ic + 1,
total = 0,
@@ -112,13 +117,14 @@
break;
}
}
return new Array(total).concat({
v: TableExport.prototype.formatValue(isTrimWhitespace, $(val).text()),
v: TableExport.prototype.formatValue(isTrimWhitespace, titleText),
t: TableExport.prototype.getType($(val).attr('class'))
});
}
return {
v: TableExport.prototype.formatValue(isTrimWhitespace, $(val).text()),
v: TableExport.prototype.formatValue(isTrimWhitespace, titleText),
t: TableExport.prototype.getType($(val).attr('class'))
};
}).get()];

View File

@@ -1560,7 +1560,7 @@ function getConfigSyncStatus(){
id:'syncStatusTip',
zIndex: 9999
};
var tipId = top.$.jBox.tip("The system is being maintained and temporarily inaccessible.",'loading',{opacity:0.5,persistent:true});
var tipId = top.$.jBox.tip($.validator.messages.config_sync_tip,'loading',{opacity:0.5,persistent:true});
var t1 = setInterval(function() {
currentStatus = getSyncStatus();
if(currentStatus==3 || currentStatus==-1 || currentStatus==-2){//3表示同步完成-1表示服务端同步失败-2表示界面端同步失败