RuleEdit.jsp 12.7 KB
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.templetecheck.CheckUtil" %>
<%@ page import="weaver.templetecheck.transmethod.RuleTrans" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %> 
<%@ include file="/systeminfo/init_wev8.jsp" %>
<HTML>
<HEAD>
<LINK href="/css/Weaver_wev8.css" type=text/css rel=STYLESHEET>
<SCRIPT language="javascript" src="/js/weaver_wev8.js"></script>
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea"%>
<link rel="stylesheet" href="/wui/theme/ecology8/weaveredittable/css/WeaverEditTable_wev8.css">
<script  src="/wui/theme/ecology8/weaveredittable/js/WeaverEditTable_wev8.js"></script>
<link rel="stylesheet" href="/css/ecology8/request/requestTopMenu_wev8.css" type="text/css" />
<script language="javascript" src="/wui/theme/ecology8/jquery/js/zDialog_wev8.js"></script>
<script language="javascript" src="/wui/theme/ecology8/jquery/js/zDrag_wev8.js"></script>
<link rel="stylesheet" href="/wui/theme/ecology8/jquery/js/zDialog_e8_wev8.css" type="text/css" />
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<%!
//替换nbsp;否则会有乱码
public String changenbsp(String content){
	if(content!=null) {
		content  = content.replace("&nbsp;"," ");
	}
	return content;
}
%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String testxpath = basePath+"templetecheck/CheckXpath.jsp";
//判断只有管理员才有权限
int userid = user.getUID();
if(userid!=1) {
	response.sendRedirect("/notice/noright.jsp");
  return;
}

String imagefilename = "/images/hdHRMCard_wev8.gif";
String titlename = "";
String needfav ="1";
String needhelp ="";
String ruletype="";
String contenttype="";
String name = "";
String description = "";
String flageid = "";
String content = "";
String replacecontent = "";
String version  = "";
String method = "add";
String checktype = "";

String rulefrom = Util.null2String(request.getParameter("rulefrom"));
flageid = Util.null2String(request.getParameter("flageid"));
if(!"".equals(flageid)) {
	if("specialfilecheck".equalsIgnoreCase(rulefrom)){
		rs.executeSql("select * from upgradecheckrule where id ="+flageid);
	}else if("mode".equalsIgnoreCase(rulefrom)){
		rs.executeSql("select * from upgradecheckmoderule where id ="+flageid);
	}else if("mobilemode".equalsIgnoreCase(rulefrom)){
		rs.executeSql("select * from checkmobilemoderule where id ="+flageid);
	} else {
		rs.executeSql("select * from upgradecheckworkflowrule where id ="+flageid);
	}
	if(rs.next()) {
		name =RuleTrans.changeStr3(Util.null2String(rs.getString("rulename")));
		description = RuleTrans.changeStr3(Util.null2String(rs.getString("ruledesc")));
		ruletype = rs.getString("ruletype");
		checktype = rs.getString("checktype");
		content = RuleTrans.changeStr3(Util.null2String(rs.getString("content")));
		replacecontent = RuleTrans.changeStr3(Util.null2String(rs.getString("replacecontent")));
		version = rs.getString("version");
		if("mode".equalsIgnoreCase(rulefrom)||"mobilemode".equalsIgnoreCase(rulefrom)){
			contenttype = rs.getString("contenttype");
		}
	}
}


boolean selectCanUse = true;
if(!"".equals(flageid)) {
	selectCanUse = false;
	method = "edit";
}

if(replacecontent!=null) {
//	replacecontent = replacecontent.replaceAll("\\\\n","\\\n");//做一次转换,否则显示的不换行的内容
}
String note = "根据配置输入对应的版本号,如果是KB补丁包请输入补丁包版本,如:KB81001508;如果是非KB补丁包,请输入版本号,如:8.100.0531。";
String note2 = "请输入XPath;XPath的指向的元素,必须是配置项的根节点\n如:/web-app/servlet/servlet-name[text()=&apos;InitServer&apos;]/parent::*;";
note2 = note2 +"\n查询servlet-name=InitServerd的servlet元素。";
note2 = note2 +"\n如果配置项包含多个同层级的元素,指定其中一个元素即可。";
note2 = note2 +"\n如:配置项包含servlet和servlet-mapping,xpath指定到servlet元素即可。";

%>
<script type="text/javascript">

var parentWin = null;
var dialog = null;
var method = null;
try{
	parentWin = parent.getParentWindow(window);
	dialog = parent.getDialog(window);
}catch(e){}
$(document).ready(function(){
	
	method = "<%=method%>";
	if("1"=="<%=ruletype%>"){
		$("#class-rule-tip").show();
	}else{
		$("#class-rule-tip").hide();
	}
});

function submitData() {
    if (!check_form(frmMain, "name,description,content")) {
        return;
    }



    var content = $("#content").val();
    var ruletype = $("#ruletype").val();
    if (ruletype == 0 && content.indexOf("weaver.templetecheck.ruleinterface") >= 0) {
        var confirmResult = false;
        window.top.Dialog.confirm("警告:规则类型“正则”与输入的规则疑似不吻合!确定继续保存吗?", function () {
            confirmResult = true;
        });
        if (!confirmResult) return;
    }


    //保存之前先对正则校验

    $.ajax({
        url: 'RuleOperation.jsp',
        dataType: 'json',
        type: 'post',
        data: {
            'method': method,
            'name': $("#name").val(),
            'description': $("#description").val(),
            'content': encodeURI(($("#content").val())),
            'version': $("#version").val(),
            'replacecontent': encodeURI($("#replacecontent").val()),
            'ruletype': $("#ruletype").val(),
            'rulefrom': $("#rulefrom").val(),
			'contenttype':$("#contenttype").val(),
            'flageid': "<%=flageid%>"
        },
        success: function (data) {
            if (data) {
                //var res = eval("("+data+")").status;
                var res = data.status;
                if (res == "ok") {
                    parentWin._table.reLoad();//先刷新列表 否则IE先不会刷新
                    if (dialog) {
                        dialog.closeByHand();
                    } else {
                        parentWin.closeDialog();
                    }
                    //parentWin._table.reLoad();//先刷新列表 否则IE先不会刷新
                } else if (res == 'addNoCheck') {
                    top.Dialog.alert("新增失败:规则已存在!");
                    return;
                }else if (res == 'updateNoCheck') {
                    top.Dialog.alert("更新失败:规则已存在!");
                    return;
                }else if (res == 'addPse') {
                    top.Dialog.alert("新增失败:正则表达式不符合规范,请重新编辑!");
                    return;
                }else if (res == 'updatePse') {
                    top.Dialog.alert("更新失败:正则表达式不符合规范,请重新编辑!");
                    return;
                }  else if (res == "updateerror") {
                    top.Dialog.alert("更新失败!");
                    return;
                } else if (res == "adderror") {
                    top.Dialog.alert("新增失败!");
                    return;
                }
            }
        }
    });
}
//当选择接口类型的规则时,隐藏表单中“替换内容”,并修改规则前面的标题内容
function changeRuletype(ruletype){
	if(ruletype=='1'){
// 		hideEle("wea_replacecontent");
		$("#replacecontent").text("根据自定义规则接口替换")
		$("#wea_replacecontent_title").text("替换为(内容为空将不进行替换,如需替换请输入“根据自定义规则接口替换”)")
		
		$("#wea_content_title").text("规则(请输入接口名,如:weaver.templetecheck.ruleinterface.ExampleRule)");
		$("#class-rule-tip").show();
	}else if(ruletype=='0'){
		$("#replacecontent").text("");
		$("#wea_replacecontent_title").text("替换内容(内容为空将不进行替换,如果需要删除符合规则的内容可输入空格)");
// 		showEle("wea_replacecontent");
		$("#wea_content_title").text("规则(请输入正则表达式)");
		$("#class-rule-tip").hide();
	}
} 
</script>
</HEAD>
<BODY>
<div class="zDialog_div_content">
<%@ include file="/systeminfo/TopTitle_wev8.jsp" %>
<%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp" %>
<%
RCMenu += "{保存,javascript:submitData(),_self} " ;
RCMenuHeight += RCMenuHeightStep ;
%>	
<%@ include file="/systeminfo/RightClickMenu_wev8.jsp" %>
<jsp:include page="/systeminfo/commonTabHead.jsp">
   <jsp:param name="mouldID" value="check"/>
   <jsp:param name="navName" value=""/>
</jsp:include>
<table id="topTitle" cellpadding="0" cellspacing="0">
	<tr>
		<td></td>
		<td class="rightSearchSpan" style="text-align:right; width:500px!important">
			<input type="button" value="保存" class="e8_btn_top" onclick="submitData()"/>
			<span id="advancedSearch" class="advancedSearch" style='display:none;'>高级搜索</span>&nbsp;&nbsp;
			<span title="菜单" class="cornerMenu"></span>
		</td>
	</tr>
</table>
<div id="tabDiv" >
   <span style="font-size:14px;font-weight:bold;"></span> 
</div>
<div class="cornerMenuDiv"></div>
<div class="advancedSearchDiv" id="advancedSearchDiv" style='display:none;'></div>
<FORM id=weaver name=frmMain action="ruleoperation.jsp" method=post>
<input type="hidden" name="method" id="method" value="<%=method%>">
<input type="hidden" name="rulefrom" id="rulefrom" value="<%=rulefrom%>">
<wea:layout>
	<wea:group context="基本信息">
		<wea:item>规则类型</wea:item>
		<wea:item>
			<select name="ruletype" id="ruletype" onChange="changeRuletype(this.value)" size="1" <% if(!selectCanUse) {%>disabled="disabled"<%} %> notBeauty=true>
				<option value="0" <%if("0".equals(ruletype)){ %>selected<%} %>>正则</option>
				<option value="1" <%if("1".equals(ruletype)){ %>selected<%} %>>Java接口</option>
			</select>
		</wea:item>
		<wea:item>检查类型</wea:item>
		<wea:item>
			<select name="contenttype" id="contenttype" notBeauty=true>
				<option value="0" <%if("0".equals(contenttype)){ %>selected<%} %>>Html</option>
				<option value="1" <%if("1".equals(contenttype)){ %>selected<%} %>>Sql脚本</option>
<%--				<option value="2" <%if("2".equals(contenttype)){ %>selected<%} %>>Java接口</option>--%>
			</select>
		</wea:item>
		<wea:item>名称</wea:item>
		<wea:item><wea:required id="nameimage" required="true" value="<%=name %>">
			<input class=inputstyle type="text" style="width:90%" name="name" id="name" value="<%=name%>" onchange='checkinput("name","nameimage")'></input>
		</wea:required></wea:item>
		<wea:item>描述</wea:item>
		<wea:item><wea:required id="descriptionimage" required="true" value="<%=description %>">
			<input class=inputstyle type="text" style="width:90%" name="description" id="description" value="<%=description %>" onchange='checkinput("description","descriptionimage")'></input>
		</wea:required></wea:item>

		 <%if("1".equals(ruletype)){ %>
			<wea:item><span id="wea_content_title">规则(请输入接口名,如:weaver.templetecheck.ruleinterface)</span></wea:item>
		<%} else{%>
			<wea:item><span id="wea_content_title">规则(请输入正则表达式)</span></wea:item>
		<%}%>
		<wea:item >
			<wea:required id="contentimage" required="true" value="<%=content %>">
			<textarea class=inputstyle style="width:90%" rows='6' id="content" onchange='checkinput("content","contentimage")'><%=content %></textarea>
			</wea:required>
		</wea:item>
		 <%if("1".equals(ruletype)){ %>
			<wea:item attributes="{'samePair':'wea_replacecontent'}"><span id="wea_replacecontent_title">替换内容(内容为空将不进行替换,如需替换请输入“根据自定义规则接口替换”)</span></wea:item>
		<%} else{%>
			<wea:item attributes="{'samePair':'wea_replacecontent'}"><span id="wea_replacecontent_title">替换内容(内容为空将不进行替换,如果需要删除符合规则的内容可输入空格)</span></wea:item>
		<%}%>
		<wea:item attributes="{'samePair':'wea_replacecontent'}"><textarea class=inputstyle style="width:90%" rows='6' id="replacecontent"><%=replacecontent %></textarea>
		<input class=inputstyle style="width:90%" name="version" id="version" type="hidden"></input></wea:item>
	</wea:group>
</wea:layout>
<span id="class-rule-tip">
            &nbsp;&nbsp;&nbsp;&nbsp;<font><b>说明:</b></font> <br/>
			&nbsp;&nbsp;&nbsp;&nbsp;1.使用自定义接口规则,需要输入接口名,如:weaver.templetecheck.ruleinterface.ExampleRule<br/>
			&nbsp;&nbsp;&nbsp;&nbsp;2.输入的“标识”和“规则”中如有空格,保存时系统会进行自动去空格处理<br/>
			&nbsp;&nbsp;&nbsp;&nbsp;3.该自定义接口类必须实现weaver.templetecheck.ruleinterface.CheckRuleInterface接口  <br/>
			&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;中的checkRule(String contentStr)方法和replaceRule(String contentStr)方法 <br/>
			&nbsp;&nbsp;&nbsp;&nbsp;4.replaceRule(String contentStr)方法只需对传入路径的对应文件做修改替换保存即可
</span>

</FORM>
</div>
</BODY>
<script type="text/javascript">
$(document).ready(function(){
	$("#objName").html("规则");
});
</script>
</HTML>