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

This commit is contained in:
chenjinsong
2018-03-22 14:41:33 +08:00
79 changed files with 5111 additions and 2093 deletions

View File

@@ -11,7 +11,7 @@
<div for="cfgDesc"></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="match_area"/></label>
@@ -20,10 +20,8 @@
</div>
<div for="district"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
</div> --%>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="key_word"/></label>
<div class="col-md-6">
@@ -32,42 +30,6 @@
<div for="keywords"></div>
</div>
</div>
<%-- <div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3">管控类型</label>
<div class="col-md-6">
<select name="action" class="selectpicker select2 form-control" readonly="readonly">
<option value="1" <c:if test="${_cfg.action==1}">selected</c:if><c:if test="${_cfg.action!=1}">disabled="disabled"</c:if> >阻断</option>
<option value="2" <c:if test="${_cfg.action==2}">selected</c:if><c:if test="${_cfg.action!=2}">disabled="disabled"</c:if> >监测</option>
<option value="5" <c:if test="${_cfg.action==5}">selected</c:if><c:if test="${_cfg.action!=5}">disabled="disabled"</c:if> >封堵白名单</option>
<option value="6" <c:if test="${_cfg.action==6}">selected</c:if><c:if test="${_cfg.action!=6}">disabled="disabled"</c:if> >监测白名单</option>
<option value="7" <c:if test="${_cfg.action==7}">selected</c:if><c:if test="${_cfg.action!=7}">disabled="disabled"</c:if> >封堵监测都白名单</option>
<option value="8" <c:if test="${_cfg.action==8}">selected</c:if><c:if test="${_cfg.action!=8}">disabled="disabled"</c:if> >灰名单</option>
</select>
<input class="form-control" type="hidden" name="action" value="${_cfg.action}">
</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="whether_area_block"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="1"
<c:if test="${_cfg.isAreaEffective==1}">checked</c:if>
><spring:message code="yes"/>
</label>
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="0"
<c:if test="${_cfg.isAreaEffective==0}">checked</c:if>
><spring:message code="no"/>
</label>
<%-- <input class="form-control" type="text" name="isAreaEffective" value="${_cfg.isAreaEffective}"> --%>
</div>
<div for="isAreaEffective"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
@@ -116,6 +78,27 @@
</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="whether_area_block"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="1"
<c:if test="${_cfg.isAreaEffective==1}">checked</c:if>
><spring:message code="yes"/>
</label>
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="0"
<c:if test="${_cfg.isAreaEffective==0}">checked</c:if>
><spring:message code="no"/>
</label>
<%-- <input class="form-control" type="text" name="isAreaEffective" value="${_cfg.isAreaEffective}"> --%>
</div>
<div for="isAreaEffective"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="area_effect_id"></spring:message></label>

View File

@@ -105,89 +105,103 @@
</div>
</div>
</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="direction"/></label>
<div class="col-md-6">
<select name="direction" class="selectpicker show-tick form-control" title=<spring:message code="select"/>>
<option value="0" <c:if test="${_cfg.direction==0}">selected</c:if>>0</option>
<option value="1" <c:if test="${_cfg.direction==1}">selected</c:if>>1</option>
</select>
<%-- <input class="form-control" type="text" name="direction" value="${_cfg.direction}"> --%>
</div>
<div for="direction"></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="protocol"/></label>
<div class="col-md-6">
<select name="protocol" class="selectpicker show-tick form-control" title=<spring:message code="select"/>>
<option value="6" <c:if test="${_cfg.protocol==6}">selected</c:if>>TCP</option>
<option value="17" <c:if test="${_cfg.protocol==17}">selected</c:if>>UDP</option>
<option value="0" <c:if test="${_cfg.protocol==0}">selected</c:if>><spring:message code="arbitrary"/></option>
</select>
<%-- <input class="form-control" type="text" name="protocol" value="${_cfg.protocol}"> --%>
</div>
<div for="protocol"></div>
</div>
</div>
</div>
<%-- <div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3">协议ID</label>
<div class="col-md-6">
<input class="form-control" type="text" name="protocolId" value="${_cfg.protocolId}" readonly="readonly">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3">管控类型</div>
<div class="col-md-6">
<select name="action" class="selectpicker select2 form-control" readonly="readonly">
<option value="1" <c:if test="${_cfg.action==1}">selected</c:if><c:if test="${_cfg.action!=1}">disabled="disabled"</c:if> >阻断</option>
<option value="2" <c:if test="${_cfg.action==2}">selected</c:if><c:if test="${_cfg.action!=2}">disabled="disabled"</c:if> >监测</option>
<option value="5" <c:if test="${_cfg.action==5}">selected</c:if><c:if test="${_cfg.action!=5}">disabled="disabled"</c:if> >封堵白名单</option>
<option value="6" <c:if test="${_cfg.action==6}">selected</c:if><c:if test="${_cfg.action!=6}">disabled="disabled"</c:if> >监测白名单</option>
<option value="7" <c:if test="${_cfg.action==7}">selected</c:if><c:if test="${_cfg.action!=7}">disabled="disabled"</c:if> >封堵监测都白名单</option>
<option value="8" <c:if test="${_cfg.action==8}">selected</c:if><c:if test="${_cfg.action!=8}">disabled="disabled"</c:if> >灰名单</option>
</select>
<input class="form-control" type="hidden" name="action" value="${_cfg.action}">
</div>
</div>
</div>
</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="whether_area_block"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="1"
<c:if test="${_cfg.isAreaEffective==1}">checked</c:if>
><spring:message code="yes"/>
</label>
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="0"
<c:if test="${_cfg.isAreaEffective==0}">checked</c:if>
><spring:message code="no"/>
</label>
<%-- <input class="form-control" type="text" name="isAreaEffective" value="${_cfg.isAreaEffective}"> --%>
</div>
<div for="isAreaEffective"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="area_effect_id"/></label>
<div class="col-md-6">
<input class="form-control" type="text" name="areaEffectiveIds" value="${_cfg.areaEffectiveIds}">
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
<c:choose>
<c:when test="${action==5}">
<input type="hidden" name="protocol" value="0">
<input type="hidden" name="direction" value="0">
<input type="hidden" name="isAreaEffective" value="0">
</c:when>
<c:when test="${action==8}">
<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="direction"/></label>
<div class="col-md-6">
<select name="direction" class="selectpicker show-tick form-control" title=<spring:message code="select"/>>
<option value="0" <c:if test="${_cfg.direction==0}">selected</c:if>><spring:message code="twoway"/></option>
<option value="1" <c:if test="${_cfg.direction==1}">selected</c:if>><spring:message code="oneway"/></option>
</select>
</div>
<div for="direction"></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="protocol"/></label>
<div class="col-md-6">
<select name="protocol" class="selectpicker show-tick form-control" title=<spring:message code="select"/>>
<option value="6" <c:if test="${_cfg.protocol==6}">selected</c:if>>TCP</option>
<option value="17" <c:if test="${_cfg.protocol==17}">selected</c:if>>UDP</option>
<option value="0" <c:if test="${_cfg.protocol==0}">selected</c:if>><spring:message code="arbitrary"/></option>
</select>
<%-- <input class="form-control" type="text" name="protocol" value="${_cfg.protocol}"> --%>
</div>
<div for="protocol"></div>
</div>
</div>
</div>
<input type="hidden" name="isAreaEffective" value="0">
<input type="hidden" name="areaEffectiveIds" value="">
</c:when>
<c:otherwise>
<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="protocol"/></label>
<div class="col-md-6">
<select name="protocol" class="selectpicker show-tick form-control" title=<spring:message code="select"/>>
<option value="6" <c:if test="${_cfg.protocol==6}">selected</c:if>>TCP</option>
<option value="17" <c:if test="${_cfg.protocol==17}">selected</c:if>>UDP</option>
<option value="0" <c:if test="${_cfg.protocol==0}">selected</c:if>><spring:message code="arbitrary"/></option>
</select>
<%-- <input class="form-control" type="text" name="protocol" value="${_cfg.protocol}"> --%>
</div>
<div for="protocol"></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="direction"/></label>
<div class="col-md-6">
<select name="direction" class="selectpicker show-tick form-control" title=<spring:message code="select"/>>
<option value="0" <c:if test="${_cfg.direction==0}">selected</c:if>><spring:message code="twoway"/></option>
<option value="1" <c:if test="${_cfg.direction==1}">selected</c:if>><spring:message code="oneway"/></option>
</select>
</div>
<div for="direction"></div>
</div>
</div>
</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="whether_area_block"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="1"
<c:if test="${_cfg.isAreaEffective==1}">checked</c:if>
><spring:message code="yes"/>
</label>
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="0"
<c:if test="${_cfg.isAreaEffective==0}">checked</c:if>
><spring:message code="no"/>
</label>
<%-- <input class="form-control" type="text" name="isAreaEffective" value="${_cfg.isAreaEffective}"> --%>
</div>
<div for="isAreaEffective"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="area_effect_id"/></label>
<div class="col-md-6">
<input class="form-control" type="text" name="areaEffectiveIds" value="${_cfg.areaEffectiveIds}">
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
</c:otherwise>
</c:choose>
<!--/row-->

View File

@@ -21,101 +21,93 @@
</div>
</div>
</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="block_type"/></label>
<div class="col-md-6">
<select name="action" class="selectpicker select2 form-control" readonly="readonly">
<option value="1" <c:if test="${_cfg.action==1}">selected</c:if><c:if test="${_cfg.action!=1}">disabled="disabled"</c:if> ><spring:message code="block"/></option>
<option value="2" <c:if test="${_cfg.action==2}">selected</c:if><c:if test="${_cfg.action!=2}">disabled="disabled"</c:if> ><spring:message code="monitor"/></option>
<option value="5" <c:if test="${_cfg.action==5}">selected</c:if><c:if test="${_cfg.action!=5}">disabled="disabled"</c:if> ><spring:message code="block_white_list"/></option>
<option value="6" <c:if test="${_cfg.action==6}">selected</c:if><c:if test="${_cfg.action!=6}">disabled="disabled"</c:if> ><spring:message code="monitor_white_list"/></option>
<option value="7" <c:if test="${_cfg.action==7}">selected</c:if><c:if test="${_cfg.action!=7}">disabled="disabled"</c:if> ><spring:message code="block_monitor_white_list"/></option>
<option value="8" <c:if test="${_cfg.action==8}">selected</c:if><c:if test="${_cfg.action!=8}">disabled="disabled"</c:if> ><spring:message code="grey_list"/></option>
</select>
<%-- <input class="form-control" type="hidden" name="action" value="${_cfg.action}"> --%>
</div>
<div for="action"></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="whether_area_block"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="1"
<c:if test="${_cfg.isAreaEffective==1}">checked</c:if>
><spring:message code="yes"/>
</label>
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="0"
<c:if test="${_cfg.isAreaEffective==0}">checked</c:if>
><spring:message code="no"/>
</label>
<%-- <input class="form-control" type="text" name="isAreaEffective" value="${_cfg.isAreaEffective}"> --%>
</div>
<div for="isAreaEffective"></div>
</div>
</div>
</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="expression_type"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="exprType" value="1"
<c:if test="${_cfg.exprType==1}">checked</c:if>
><spring:message code="and"/>
</label>
<label class="radio-inline">
<input type="radio" name="exprType" value="0"
<c:if test="${_cfg.exprType==0}">checked</c:if>
><spring:message code="null"/>
</label>
</div>
<div for="exprType"></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="match_method"/></label>
<div class="col-md-6">
<select name="matchMethod" class="selectpicker select2 form-control" title="--请选择--" >
<option value="0" <c:if test="${_cfg.matchMethod==0 }">selected</c:if>><spring:message code="substring_match"></spring:message></option>
<option value="1" <c:if test="${_cfg.matchMethod==1 }">selected</c:if>><spring:message code="right_match"></spring:message></option>
<option value="2" <c:if test="${_cfg.matchMethod==2 }">selected</c:if>><spring:message code="left_match"></spring:message></option>
<option value="3" <c:if test="${_cfg.matchMethod==3 }">selected</c:if>><spring:message code="exactly_match"></spring:message></option>
</select>
</div>
<div for="matchMethod"></div>
</div>
</div>
</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="whether_hexbinary"/></label>
<div class="col-md-6">
<select name="isHexbin" class="selectpicker select2 form-control" title=<spring:message code="select"/> >
<option value="0" <c:if test="${_cfg.isHexbin==0 }">selected</c:if>><spring:message code="case_insensitive_nohex"></spring:message></option>
<option value="1" <c:if test="${_cfg.isHexbin==1 }">selected</c:if>><spring:message code="hex_binary"></spring:message></option>
<option value="2" <c:if test="${_cfg.isHexbin==2 }">selected</c:if>><spring:message code="case_sensitive_nohex"></spring:message></option>
</select>
</div>
<div for="isHexbin"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="area_effect_id"></spring:message></label>
<div class="col-md-6">
<input class="form-control" type="text" name="areaEffectiveIds" value="${_cfg.areaEffectiveIds}">
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
<c:choose>
<c:when test="${action ==5}">
<input type="hidden" name="isAreaEffective" value="0">
<input type="hidden" name="exprType" value="0">
<input type="hidden" name="matchMethod" value="0">
<input type="hidden" name="isHexbin" value="0">
</c:when>
<c:otherwise>
<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="expression_type"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="exprType" value="1"
<c:if test="${_cfg.exprType==1}">checked</c:if>
><spring:message code="and"/>
</label>
<label class="radio-inline">
<input type="radio" name="exprType" value="0"
<c:if test="${_cfg.exprType==0}">checked</c:if>
><spring:message code="null"/>
</label>
</div>
<div for="exprType"></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="match_method"/></label>
<div class="col-md-6">
<select name="matchMethod" class="selectpicker select2 form-control" title="--请选择--" >
<option value="0" <c:if test="${_cfg.matchMethod==0 }">selected</c:if>><spring:message code="substring_match"></spring:message></option>
<option value="1" <c:if test="${_cfg.matchMethod==1 }">selected</c:if>><spring:message code="right_match"></spring:message></option>
<option value="2" <c:if test="${_cfg.matchMethod==2 }">selected</c:if>><spring:message code="left_match"></spring:message></option>
<option value="3" <c:if test="${_cfg.matchMethod==3 }">selected</c:if>><spring:message code="exactly_match"></spring:message></option>
</select>
</div>
<div for="matchMethod"></div>
</div>
</div>
</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="whether_hexbinary"/></label>
<div class="col-md-6">
<select name="isHexbin" class="selectpicker select2 form-control" title=<spring:message code="select"/> >
<option value="0" <c:if test="${_cfg.isHexbin==0 }">selected</c:if>><spring:message code="case_insensitive_nohex"></spring:message></option>
<option value="1" <c:if test="${_cfg.isHexbin==1 }">selected</c:if>><spring:message code="hex_binary"></spring:message></option>
<option value="2" <c:if test="${_cfg.isHexbin==2 }">selected</c:if>><spring:message code="case_sensitive_nohex"></spring:message></option>
</select>
</div>
<div for="isHexbin"></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="whether_area_block"/></label>
<div class="col-md-6">
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="1"
<c:if test="${_cfg.isAreaEffective==1}">checked</c:if>
><spring:message code="yes"/>
</label>
<label class="radio-inline">
<input type="radio" name="isAreaEffective" value="0"
<c:if test="${_cfg.isAreaEffective==0}">checked</c:if>
><spring:message code="no"/>
</label>
<%-- <input class="form-control" type="text" name="isAreaEffective" value="${_cfg.isAreaEffective}"> --%>
</div>
<div for="isAreaEffective"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="area_effect_id"></spring:message></label>
<div class="col-md-6">
<input class="form-control" type="text" name="areaEffectiveIds" value="${_cfg.areaEffectiveIds}">
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
</c:otherwise>
</c:choose>
<!--/row-->

View File

@@ -1,3 +1,4 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
@@ -47,6 +48,10 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/jquery-jbox/2.3/jquery.jBox-2.3.src.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-typeahead/bootstrap3-typeahead.min.js" type="text/javascript"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/unicodes.js" type="text/javascript"></script>
<!-- END CORE PLUGINS -->
@@ -62,4 +67,17 @@
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>

View File

@@ -7,16 +7,17 @@
<c:forEach items="${fns:getLeftMenuTreeList()}" var="menu" varStatus="idxStatus">
<ul id="menu_${menu.id }" class="hide accordion page-sidebar-menu page-header-fixed page-sidebar-menu-light"
data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200">
data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200"
menu-id="${menu.id }" menu-name="<spring:message code="${menu.code}"></spring:message>" >
<c:if test="${not empty menu.children }">
<c:forEach items="${menu.children}" var="secondMenu" varStatus="secondStatus">
<li class="nav-item <c:if test="${secondStatus.index==0 }"> active open</c:if>">
<li class="nav-item" id="menu_${secondMenu.id }" menu-id="${secondMenu.id }" menu-name="<spring:message code="${secondMenu.code}"></spring:message>" >
<a class="nav-link nav-toggle"
<c:if test="${secondMenu.href != null && secondMenu.href != ''}" var="secondHref">
href="${ctx}/${secondMenu.href }" target="mainFrame" >
href="javascript:;" onclick="page_turn('${secondMenu.id }','1','','${ctx}/${secondMenu.href }',this)" target="mainFrame" >
</c:if>
<c:if test="${!secondHref }">
href="javascript:;" class="nav-link nav-toggle">
@@ -26,7 +27,7 @@
<span class="title">
<%-- ${secondMenu.name } --%> <spring:message code="${secondMenu.code}"></spring:message></span>
<c:if test="${not empty secondMenu.children }" var="secondClid">
<span class="arrow open"></span>
<span class="arrow "></span>
</c:if>
</a>
@@ -37,11 +38,12 @@
<c:forEach items="${secondMenu.children}" var="thirdMenu" varStatus="thirdStatus">
<li class="nav-item <c:if test="${not empty thirdMenu.children && thirdStatus.index==0}">active open</c:if>">
<li class="nav-item" id="menu_${thirdMenu.id }" menu-id="${thirdMenu.id }" menu-name="<spring:message code="${thirdMenu.code}"></spring:message>">
<a class="nav-link nav-toggle"
<c:if test="${thirdMenu.href != null && thirdMenu.href != ''}" var="thirdHref">
href="${ctx}/${thirdMenu.href }" target="mainFrame" >
href="javascript:;" onclick="page_turn('${thirdMenu.id }','2','','${ctx}/${thirdMenu.href }',this)" target="mainFrame" >
</c:if>
<c:if test="${!thirdHref }">
href="javascript:;" class="nav-link nav-toggle">
@@ -50,15 +52,17 @@
<span class="title">
<%-- ${thirdMenu.name } --%><spring:message code="${thirdMenu.code}"></spring:message></span>
<c:if test="${not empty thirdMenu.children }" var="thiredClid">
<span class="arrow open"></span>
<span class="arrow "></span>
</c:if>
</a>
<c:if test="${thiredClid}">
<ul class="sub-menu">
<c:forEach items="${thirdMenu.children}" var="fourthMenu">
<li class="nav-item">
<a href="${ctx}/${fourthMenu.href }" target="mainFrame" class="nav-link ">
<li class="nav-item" id="menu_${fourthMenu.id }" menu-id="${fourthMenu.id }" menu-name="<spring:message code="${fourthMenu.code}"></spring:message>" >
<a href="javascript:;"
onclick="page_turn('${fourthMenu.id }','3','','${ctx}/${fourthMenu.href }',this)" target="mainFrame"
class="nav-link ">
<%-- ${fourthMenu.name } --%> <spring:message code="${fourthMenu.code}"></spring:message>
<!-- <span class="badge badge-danger">1</span> -->
</a>

View File

@@ -5,9 +5,9 @@
<%@ attribute name="label" type="java.lang.String" required="false"%>
<c:choose>
<c:when test="${label eq 'delete'}">
<button class="btn btn-default" onclick="del('${url}')" data-toggle="tooltip" data-placement="top">
<a href="javascript:void(0);" class="btn btn-default" onclick="del('${url}')" data-toggle="tooltip" data-placement="top">
<i class="fa fa-trash"> <spring:message code="delete"/></i>
</button>
</a>
</c:when>
<c:when test="${label eq 'approved'}">

View File

@@ -10,10 +10,15 @@
$(document).ready(function() {
var orderBy = $("#${id}").val().split(" ");
$(".sort-column").each(function(){
if ($(this).hasClass(orderBy[0])){
orderBy[1] = orderBy[1]&&orderBy[1].toUpperCase()=="DESC"?"down":"up";
$(this).html($(this).html()+" <i class=\"icon icon-arrow-"+orderBy[1]+"\"></i>");
$(this).html($(this).html()+" <i class=\"sort-icon-"+orderBy[1]+"\"></i>");
}else {
$(this).html($(this).html()+" <i class=\"sort-icon\"></i>");
}
});
$(".sort-column").click(function(){
var order = $(this).attr("class").split(" ");
@@ -23,10 +28,11 @@
}
if (order == sort[0]){
sort = (sort[1]&&sort[1].toUpperCase()=="DESC"?"ASC":"DESC");
$("#${id}").val(order+" DESC"!=order+" "+sort?"":order+" "+sort);
$("#${id}").val(order+" "+sort);
}else{
$("#${id}").val(order+" ASC");
}
${callback}
});
});

View File

@@ -27,7 +27,7 @@
<div class="input-append">
<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="${labelValue}" data-msg-required="${dataMsgRequired}" placeholder="${value}"
class="${cssClass}" style="${cssStyle}"/><a id="${id}Button" href="javascript:" class="btn ${disabled} ${hideBtn ? 'hide' : ''}" style="${smallBtn?'padding:4px 2px;':''}">&nbsp;<i class="icon-search"></i>&nbsp;</a>&nbsp;&nbsp;
class="${cssClass}" style="${cssStyle} background-color:transparent"/><a id="${id}Button" href="javascript:" class="btn ${disabled} ${hideBtn ? 'hide' : ''}" style="${smallBtn?'padding:4px 2px;':''}">&nbsp;<i class="icon-search"></i>&nbsp;</a>&nbsp;&nbsp;
</div>
<script type="text/javascript">
$("#${id}Button, #${id}Name").click(function(){

View File

@@ -311,6 +311,14 @@
<example>${fns:getSysDictInfoById(id)}</example>
</function>
<function>
<description>根据id获取特定服务配置</description>
<name>getBySpecServiceId</name>
<function-class>com.nis.util.ConfigDictUtils</function-class>
<function-signature>java.lang.String getBySpecServiceId(java.lang.Integer)</function-signature>
<example>${fns:getBySpecServiceId(id)}</example>
</function>
<!-- 计算序号 -->
<function>
<description>计算序号</description>

View File

@@ -11,6 +11,7 @@
function reset(){
$("#searchForm").reset();
}
/**
处理全选、全取消
**/
@@ -68,6 +69,12 @@
return false;
}
$(document).ready(function() {
//reset
$("#resetBtn").on("click",function(){
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
//设定显示总条数
$("#showTotalCount").text('${showTotalCount}');
@@ -229,8 +236,8 @@
<div class="row">
<div class="pull-left">
<button type="button" class="btn blue" onclick="page2()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
<button type="button" class="btn blue" onclick="page2()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" id="resetBtn" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
</div>
</div>
@@ -293,7 +300,7 @@
<li><a href="${ctx}/basics/serviceDictInfo/form?serviceDictId=${serviceDictInfo.serviceDictId}&itType=${itType}" onclick="return confirmx('您确认要修改该项配置吗?', this.href)"><spring:message code="edit"/></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="sys:dict:edit">
<li><a href="${ctx}/basics/serviceDictInfo/delete?serviceDictId=${serviceDictInfo.serviceDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
<li><a href="${ctx}/basics/serviceDictInfo/delete?mulitId=${serviceDictInfo.serviceDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
</shiro:hasPermission>
</ul>

View File

@@ -58,14 +58,6 @@
$("#searchForm").attr("action","${ctx}/basics/serviceDictInfo/list?itType=${itType}");
$("#searchForm").submit();
return false;
}
function page2(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/basics/serviceDictInfo/searchList?itType=${itType}");
$("#searchForm").submit();
return false;
}
$(document).ready(function() {
@@ -77,6 +69,11 @@
$("#intype").attr("name",$("#seltype").find("option:selected").val());
$("#intype").val('${searchContent}');
//reset
$("#resetBtn").on("click",function(){
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
//筛选功能初始化
filterActionInit();
@@ -123,13 +120,13 @@
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="serviceDictInfo" action="${ctx}/basics/serviceDictInfo/searchList?itType=${itType}" method="post" class="form-search">
<form:form id="searchForm" modelAttribute="serviceDictInfo" action="${ctx}/basics/serviceDictInfo/list?itType=${itType}" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${serviceDictInfo.isFilterAction}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
@@ -160,7 +157,7 @@
<input id="intype" class="form-control input-medium" placeholder="请输入配置编码" type="text">
<div class="input-group-btn">
<button class="btn btn-default btn-search" type="button" onclick="page2()"><i class="fa fa-search"></i></button>
<button class="btn btn-default btn-search" type="button" onclick="page()"><i class="fa fa-search"></i></button>
</div>
</div>
@@ -229,8 +226,8 @@
<div class="row">
<div class="pull-left">
<button type="button" class="btn blue" onclick="page2()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
<button type="button" class="btn blue" onclick="page()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" class="btn btn-default" onclick="reset()" id="resetBtn"> <i class="fa fa-refresh"></i> 重置 </button>
</div>
</div>
@@ -247,9 +244,9 @@
<!-- <div class="table-responsive"> -->
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="treeTable" class="table table-striped table-bordered table-condensed">
<table id="treeTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="ckboxs" id="selAll" onclick="selectAll()"></th>
@@ -260,9 +257,9 @@
<th><spring:message code="item_type"/></th>
<th><spring:message code="is_leaf"/></th>
<th><spring:message code="creator"/></th>
<th><spring:message code="create_time"/>
<th class="sort-column create_time"><spring:message code="create_time"/>
</th><th><spring:message code="editor"/></th>
<th><spring:message code="edit_time"/></th>
<th class="sort-column edit_time"><spring:message code="edit_time"/></th>
<shiro:hasPermission name="sys:menu:edit"><th><spring:message code="operation"/></th></shiro:hasPermission>
</tr>
</thead>
@@ -293,7 +290,7 @@
<li><a href="${ctx}/basics/serviceDictInfo/form?serviceDictId=${serviceDictInfo.serviceDictId}&itType=${itType}" onclick="return confirmx('您确认要修改该项配置吗?', this.href)"><spring:message code="edit"/></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="sys:dict:edit">
<li><a href="${ctx}/basics/serviceDictInfo/delete?serviceDictId=${serviceDictInfo.serviceDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
<li><a href="${ctx}/basics/serviceDictInfo/delete?mulitId=${serviceDictInfo.serviceDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
</shiro:hasPermission>
</ul>
@@ -305,6 +302,7 @@
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -235,15 +235,19 @@
<form:input path="itemValue" htmlEscape="false" maxlength="2000" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<div class="col-md-4">
<%-- <form:radiobuttons path="isLeaf" items="${fns:getDictOption('SYS_YES_NO')}" /> --%>
<form:select path="isLeaf" class="form-control">
<form:options items="${fns:getDictList('SYS_YES_NO')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false"/>
</form:select>
<c:if test="${specType != null and specType==3 }">
<form:hidden path="isLeaf" value="0"/>
</c:if>
<c:if test="${specType != null and specType!=3 }">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<div class="col-md-4">
<form:select path="isLeaf" class="form-control">
<form:options items="${fns:getDictList('SYS_YES_NO')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false"/>
</form:select>
</div>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-md-3 control-label"><spring:message code="desc"/>:</label>
<div class="col-md-4">

View File

@@ -77,7 +77,12 @@
$("#intype").attr("name",$("#seltype").find("option:selected").val());
$("#intype").val('${searchContent}');
//reset
$("#resetBtn").on("click",function(){
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
//筛选功能初始化
filterActionInit();
@@ -228,7 +233,7 @@
<div class="pull-left">
<button type="button" class="btn blue" onclick="page2()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
<button type="button" id="resetBtn" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
</div>
</div>
@@ -291,7 +296,7 @@
<li><a href="${ctx}/basics/sysDictInfo/form?sysDictId=${sysDictInfo.sysDictId}&itType=${itType}" onclick="return confirmx('您确认要修改该项配置吗?', this.href)"><spring:message code="edit"/></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="sys:dict:edit">
<li><a href="${ctx}/basics/sysDictInfo/delete?sysDictId=${sysDictInfo.sysDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
<li><a href="${ctx}/basics/sysDictInfo/delete?mulitId=${sysDictInfo.sysDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
</shiro:hasPermission>
</ul>

View File

@@ -64,14 +64,6 @@
$("#searchForm").submit();
return false;
}
function page2(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/basics/sysDictInfo/searchList?itType=${itType}");
$("#searchForm").submit();
return false;
}
$(document).ready(function() {
//设定显示总条数
$("#showTotalCount").text('${showTotalCount}');
@@ -79,8 +71,13 @@
$("#seltype").find("option[value='${searchType==null?11:searchType}']").attr("selected",true);
$("#intype").attr("name",$("#seltype").find("option:selected").val());
$("#intype").val('${sysDictInfo.itemValue}');
$("#intype").val('${searchContent}');
//reset
$("#resetBtn").on("click",function(){
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
//筛选功能初始化
filterActionInit();
@@ -126,13 +123,13 @@
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="sysDictInfo" action="${ctx}/basics/sysDictInfo/searchList?itType=${itType}" method="post" class="form-search">
<form:form id="searchForm" modelAttribute="sysDictInfo" action="${ctx}/basics/sysDictInfo/list?itType=${itType}" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${sysDictInfo.isFilterAction}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
@@ -163,7 +160,7 @@
<input id="intype" class="form-control input-medium" placeholder="请输入配置编码" type="text">
<div class="input-group-btn">
<button class="btn btn-default btn-search" type="button" onclick="page2()"><i class="fa fa-search"></i></button>
<button class="btn btn-default btn-search" type="button" onclick="page()"><i class="fa fa-search"></i></button>
</div>
</div>
@@ -232,8 +229,8 @@
<div class="row">
<div class="pull-left">
<button type="button" class="btn blue" onclick="page2()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
<button type="button" class="btn blue" onclick="page()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" class="btn btn-default" onclick="reset()" id="resetBtn"> <i class="fa fa-refresh"></i> 重置 </button>
</div>
</div>
@@ -250,9 +247,9 @@
<!-- <div class="table-responsive"> -->
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="treeTable" class="table table-striped table-bordered table-condensed">
<table id="treeTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" id="selAll" class="ckboxs" onclick="selectAll()"></th>
@@ -261,11 +258,13 @@
<th><spring:message code="config_content"/></th>
<th><spring:message code="desc"/></th>
<th><spring:message code="item_type"/></th>
<c:if test="${specType != null and specType!=3 }">
<th><spring:message code="is_leaf"/></th>
</c:if>
<th><spring:message code="creator"/></th>
<th><spring:message code="create_time"/>
<th class="sort-column create_time"><spring:message code="create_time"/>
</th><th><spring:message code="editor"/></th>
<th><spring:message code="edit_time"/></th>
<th class="sort-column edit_time"><spring:message code="edit_time"/></th>
<shiro:hasPermission name="sys:menu:edit"><th><spring:message code="operation"/></th></shiro:hasPermission>
</tr>
</thead>
@@ -278,7 +277,9 @@
<td>${sysDictInfo.itemValue}</td>
<td title="${sysDictInfo.itemDesc}">${fns:abbr(sysDictInfo.itemDesc,15)}</td>
<td>${fns:getDictLabel("SYS_DICT_ITM_TYPE",sysDictInfo.itemType,"0")}</td>
<c:if test="${specType != null and specType!=3 }">
<td>${fns:getDictLabel("SYS_YES_NO",sysDictInfo.isLeaf,"0")}</td>
</c:if>
<td><c:if test="${sysDictInfo.sysDictCreator != null}">
${fns:getUserById(sysDictInfo.sysDictCreator.id).name}
</c:if></td>
@@ -296,7 +297,7 @@
<li><a href="${ctx}/basics/sysDictInfo/form?sysDictId=${sysDictInfo.sysDictId}&itType=${itType}" onclick="return confirmx('您确认要修改该项配置吗?', this.href)"><spring:message code="edit"/></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="sys:dict:edit">
<li><a href="${ctx}/basics/sysDictInfo/delete?sysDictId=${sysDictInfo.sysDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
<li><a href="${ctx}/basics/sysDictInfo/delete?mulitId=${sysDictInfo.sysDictId}&itType=${itType}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
</shiro:hasPermission>
</ul>
@@ -308,6 +309,7 @@
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -9,6 +9,13 @@
<div class="page-content">
<div class="row">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="history.go(-1)"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
<spring:message code="special_task"/>
</h3>
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
@@ -81,25 +88,35 @@
rules: {
taskName: {
required: true,
maxlength:64,
},
taskOrg: {
required: true,
maxlength:128,
},
taskTime: {
required: true,
},
taskDesc: {
maxlength:512,
},
},
messages: {
taskName: {
required: '<spring:message code="required"/>',
maxlength: '<spring:message code="maxlength_64"/>',
},
taskOrg: {
required: '<spring:message code="required"/>',
maxlength: '<spring:message code="maxlength_128"/>',
},
taskTime: {
required: '<spring:message code="required"/>',
},
taskDesc: {
maxlength: '<spring:message code="maxlength_512"/>',
},
},
submitHandler: function(form){
//loading('onloading...');

View File

@@ -9,13 +9,15 @@
<body>
<div class="page-content">
<shiro:hasPermission name="basics:taskInfo:edit">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/basics/taskInfo/list'"><spring:message code="refresh"></spring:message></button>
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/taskInfo/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"/></button>
</div>
</shiro:hasPermission>
<h3 class="page-title">
<spring:message code="special_task"></spring:message>
<small><spring:message code="date_list"/></small>
@@ -35,7 +37,7 @@
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${taskInfo.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
@@ -50,7 +52,7 @@
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<input id="taskName" name="taskName" class="form-control input-medium" placeholder=<spring:message code="input_title"/> type="text" value="${taskInfo.taskName }">
<input id="taskName" name="taskName" class="form-control input-medium" type="text" value="${taskInfo.taskName }">
</div>
<div class="input-group-btn">
@@ -65,7 +67,7 @@
</div>
<div class="pull-right">
<shiro:hasPermission name="basics:taskInfo:edit">
<button type="button" class="btn btn-default" onclick="edit()">
<i class="fa fa-edit"></i> <spring:message code="edit"></spring:message></button>
<sys:delRow url="${ctx}/basics/taskInfo/delete" id="contentTable" label="delete"></sys:delRow>
@@ -82,6 +84,11 @@
<li><sys:delRow url="${ctx}/basics/taskInfo/taskCancelExamine" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
@@ -112,7 +119,7 @@
<div class="col-md-6">
<div class="pull-left">
<label><spring:message code="operate_time"/></label>
<label><spring:message code="edit_time"/></label>
</div>
<div class="pull-left">
<input id="dobeginDate" name="dobeginDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
@@ -145,9 +152,9 @@
</div>
<!-- <div class="table-responsive"> -->
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
@@ -156,8 +163,13 @@
<th><spring:message code="task_org"></spring:message></th>
<th><spring:message code="task_time"></spring:message></th>
<th><spring:message code="state"></spring:message></th>
<th><spring:message code="operator"></spring:message></th>
<th><spring:message code="operate_time"></spring:message></th>
<th><spring:message code="desc"></spring:message></th>
<th><spring:message code="creator"></spring:message></th>
<th class="sort-column createTime"><spring:message code="create_time"/></th>
<th><spring:message code="editor"/></th>
<th class="sort-column editTime"><spring:message code="edit_time"/></th>
<th><spring:message code="auditor"></spring:message></th>
<th class="sort-column auditTime"><spring:message code="audit_time"></spring:message></th>
</tr>
</thead>
<tbody>
@@ -175,18 +187,13 @@
<c:when test="${taskInfo.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
</c:choose>
</td>
<td>${taskInfo.taskDesc }</td>
<td>${taskInfo.creatorName }</td>
<td>
<!-- 编辑时间为空则显示创建时间 -->
<c:choose>
<c:when test="${empty taskInfo.editTime}">
<fmt:formatDate value="${taskInfo.createTime }" pattern="yyyy-MM-dd"/>
</c:when>
<c:otherwise>
<fmt:formatDate value="${taskInfo.editTime }" pattern="yyyy-MM-dd"/>
</c:otherwise>
</c:choose>
</td>
<td><fmt:formatDate value="${taskInfo.createTime }" pattern="yyyy-MM-dd"/></td>
<td>${taskInfo.editorName }</td>
<td><fmt:formatDate value="${taskInfo.editTime }" pattern="yyyy-MM-dd"/></td>
<td>${taskInfo.auditorName }</td>
<td><fmt:formatDate value="${taskInfo.auditTime }" pattern="yyyy-MM-dd"/></td>
</tr>
</c:forEach>
@@ -194,6 +201,7 @@
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
@@ -228,12 +236,13 @@
function resetx(){
// $("#searchForm").reset();
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
}

View File

@@ -3,22 +3,6 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script type="text/javascript">
$(function(){
$("#save").on("click",function(){
@@ -36,9 +20,6 @@ $(function(){
'keywords':{
required:true
},
'district':{
required:true
},
'isAreaEffective':{
required:true
},
@@ -59,9 +40,6 @@ $(function(){
'keywords':{
required:'<spring:message code="required"/>'
},
'district':{
required:'<spring:message code="required"/>'
},
'isAreaEffective':{
required:'<spring:message code="required"/>'
},
@@ -123,10 +101,16 @@ $(function(){
<input type="hidden" name="tableName" value="${_cfg.tableName}">
<input type="hidden" name="serviceId" value="${_cfg.serviceId}">
<input type="hidden" name="cfgName" value="${cfgName}">
<input type="hidden" name="action" value="${_cfg.action}">
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
<input type="hidden" name="action" value="${action}">
<input type="hidden" name="district" value="${_cfg.district}">
<c:choose>
<c:when test="${action!=5 and action!=8}">
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</c:when>
<c:otherwise>
<input type="hidden" name=requestId value="0">
</c:otherwise>
</c:choose>
</div>
<div class="form-actions">
<div class="row">

View File

@@ -3,22 +3,6 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script>
$(document).ready(function() {
//筛选功能初始化
@@ -140,6 +124,10 @@
</div>
<div class="pull-right">
<button class="btn btn-default btn-search" type="button" onclick="return page()"><i class="fa fa-search"></i></button>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
@@ -222,22 +210,18 @@
</form:form>
</div>
<div class="table-responsive">
<table class="table table-striped table-bordered table-condensed text-nowrap">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="seq"/></th>
<th><spring:message code="config_describe"/></th>
<th><spring:message code="match_area"/></th>
<th><spring:message code="key_word"/></th>
<th><spring:message code="block_type"/></th>
<!-- <th>业务id</th> -->
<th><spring:message code="letter"/></th>
<!-- <th>编译id</th> -->
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="letter"/></th>
<th><spring:message code="type"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
<!-- <th>区域生效id</th> -->
<th><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<th><spring:message code="creator"/></th>
@@ -254,7 +238,7 @@
<tr>
<td>${status.index+1 }</td>
<td>${cfg.cfgDesc }</td>
<td>${cfg.district }</td>
<%-- <td>${cfg.district }</td> --%>
<td>${cfg.keywords }</td>
<td>
<c:if test="${1 eq cfg.action }"><spring:message code="block"/></c:if>
@@ -264,13 +248,11 @@
<c:if test="${7 eq cfg.action }"><spring:message code="block_monitor_white_list"/></c:if>
<c:if test="${8 eq cfg.action }"><spring:message code="grey_list"/></c:if>
</td>
<%-- <td>${cfg.serviceId }</td> --%>
<td>${cfg.requestName }</td>
<%-- <td>${cfg.compileId }</td> --%>
<td>
<c:if test="${cfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isAreaEffective==1}"><spring:message code="yes"/></c:if>
</td>
<td>${cfg.requestName }</td>
<td>
<c:forEach items="${fn:split(cfg.classify,',')}" var="classifyId">
<c:forEach items="${fls}" var="fl">

View File

@@ -4,21 +4,6 @@
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script type="text/javascript">
$(function(){
$("#save").on("click",function(){
@@ -222,12 +207,6 @@ $(function(){
<c:if test="${empty _cfg.cfgId}"><spring:message code="add"></spring:message></c:if>
<c:if test="${not empty _cfg.cfgId}"><spring:message code="edit"></spring:message></c:if>
</div>
<!-- <div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""> </a>
<a href="#portlet-config" data-toggle="modal" class="config" data-original-title="" title=""> </a>
<a href="javascript:;" class="reload" data-original-title="" title=""> </a>
<a href="javascript:;" class="remove" data-original-title="" title=""> </a>
</div> -->
</div>
<div class="portlet-body form">
<!-- BEGIN FORM-->
@@ -242,26 +221,14 @@ $(function(){
<input type="hidden" name="cfgName" value="${cfgName}">
<input type="hidden" name="action" value="${action}">
<input type="hidden" name="protocolId" value="${_cfg.protocolId}">
<!-- <div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3">IP地址</label>
<div class="col-md-8">
<input class="form-control" type="text">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3">配置名称</label>
<div class="col-md-8">
<input class="form-control" type="text">
</div>
</div>
</div>
</div>
-->
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
<c:choose>
<c:when test="${action!=5 and action!=8}">
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</c:when>
<c:otherwise>
<input type="hidden" name=requestId value="0">
</c:otherwise>
</c:choose>
</div>

View File

@@ -3,24 +3,11 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script>
$(document).ready(function() {
$("seltype").on("click",function(){
alert(2333)
});
//筛选功能初始化
filterActionInit();
$("#isAudit").change(function(){
@@ -55,9 +42,7 @@
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/cfg/ip/form?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}&audit=${audit}'"><spring:message code="add"></spring:message></button>
</c:if>
</div>
<h3 class="page-title">
<spring:message code="${cfgName}"></spring:message>
<small><spring:message code="date_list"/></small>
@@ -89,38 +74,24 @@
<form:option value="3"><spring:message code="cancel_approved"></spring:message></form:option>
</form:select>
</div>
<div class="pull-left">
<c:set var="request_number"><spring:message code='request_number'/></c:set>
<form:select path="requestId" class="selectpicker select2 input-small" title="${request_number}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${requestInfos}" var="requestInfo" >
<form:option value="${requestInfo.id}"><spring:message code="${requestInfo.requestTitle}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="flI18n"><spring:message code='type'/></c:set>
<form:select path="classify" class="selectpicker select2 input-small" title="${flI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${fls}" var="fl" >
<form:option value="${fl.serviceDictId}"><spring:message code="${fl.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="attributeI18n"><spring:message code='attribute'/></c:set>
<form:select path="attribute" class="selectpicker select2 input-small" title="${attributeI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${xzs}" var="xz" >
<form:option value="${xz.serviceDictId}"><spring:message code="${xz.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="labelI18n"><spring:message code='label'/></c:set>
<form:select path="lable" class="selectpicker select2 input-small" title="${labelI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${lables}" var="lable" >
<form:option value="${lable.serviceDictId}"><spring:message code="${lable.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<%-- <div class="input-group">
<div class="input-group-btn">
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="srcIp"><spring:message code="client_ip"></spring:message></form:option>
<form:option value="dstIp"><spring:message code="server_ip"></spring:message></form:option>
</form:select>
</div>
<input id="intype" class="form-control input-medium" type="text" value="">
<div class="input-group-btn">
<button class="btn btn-default btn-search" type="button" onclick="page()"><i class="fa fa-search"></i></button>
</div>
</div> --%>
</div>
<!-- <div class="pull-right">
<button type="button" class="btn btn-default">
<i class="fa fa-edit"></i> 编辑</button>
@@ -164,6 +135,10 @@
</div>
<div class="pull-right">
<button class="btn btn-default btn-search" type="button" onclick="return page()"><i class="fa fa-search"></i></button>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
@@ -171,23 +146,63 @@
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<c:choose>
<c:when test="${action==5}">
</c:when>
<c:when test="${action==8}">
</c:when>
<c:otherwise>
<div class="pull-left">
<c:set var="request_number"><spring:message code='request_number'/></c:set>
<form:select path="requestId" class="selectpicker select2 input-small" title="${request_number}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${requestInfos}" var="requestInfo" >
<form:option value="${requestInfo.id}"><spring:message code="${requestInfo.requestTitle}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="flI18n"><spring:message code='type'/></c:set>
<form:select path="classify" class="selectpicker select2 input-small" title="${flI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${fls}" var="fl" >
<form:option value="${fl.serviceDictId}"><spring:message code="${fl.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="attributeI18n"><spring:message code='attribute'/></c:set>
<form:select path="attribute" class="selectpicker select2 input-small" title="${attributeI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${xzs}" var="xz" >
<form:option value="${xz.serviceDictId}"><spring:message code="${xz.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="labelI18n"><spring:message code='label'/></c:set>
<form:select path="lable" class="selectpicker select2 input-small" title="${labelI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${lables}" var="lable" >
<form:option value="${lable.serviceDictId}"><spring:message code="${lable.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</c:otherwise>
</c:choose>
</div>
<div class="row">
<div class="col-md-6">
<div class="pull-left">
<label><spring:message code="config_time"/></label>
</div>
<div class="pull-left">
<input name="search_create_time_start" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value='${ipCfg.search_create_time_start}' pattern='yyyy-MM-dd HH:mm:ss'/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label>到</label>
</div>
<div class="pull-left">
<input name="search_create_time_end" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${ipCfg.search_create_time_end}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label><spring:message code="config_time"/></label>
</div>
<div class="pull-left">
<input name="search_create_time_start" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value='${ipCfg.search_create_time_start}' pattern='yyyy-MM-dd HH:mm:ss'/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label>到</label>
</div>
<div class="pull-left">
<input name="search_create_time_end" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${ipCfg.search_create_time_end}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="col-md-6">
@@ -240,7 +255,7 @@
</form:form>
</div>
<div class="table-responsive">
<table class="table table-striped table-bordered table-condensed text-nowrap">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="seq"/></th>
@@ -254,18 +269,24 @@
<th><spring:message code="server_address_mask"/></th>
<th><spring:message code="server_port"/></th>
<th><spring:message code="server_port_mask"/></th>
<th><spring:message code="direction"/></th>
<th><spring:message code="protocol"/></th>
<!-- <th>协议ID</th> -->
<th><spring:message code="block_type"/></th>
<!-- <th>业务id</th> -->
<th><spring:message code="letter"/></th>
<!-- <th>编译id</th> -->
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="type"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
<!-- <th>区域生效id</th> -->
<c:choose>
<c:when test="${action==5}">
</c:when>
<c:when test="${action==8}">
<th><spring:message code="direction"/></th>
<th><spring:message code="protocol"/></th>
</c:when>
<c:otherwise>
<th><spring:message code="direction"/></th>
<th><spring:message code="protocol"/></th>
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="letter"/></th>
<th><spring:message code="type"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
</c:otherwise>
</c:choose>
<th><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<th><spring:message code="creator"/></th>
@@ -291,16 +312,6 @@
<td>${ipCfg.dstIpMask }</td>
<td>${ipCfg.dstPort }</td>
<td>${ipCfg.dstPortMask }</td>
<td>
<c:if test="${ipCfg.direction==0}"><spring:message code="twoway"/></c:if>
<c:if test="${ipCfg.direction==1}"><spring:message code="oneway"/></c:if>
</td>
<td>
<c:if test="${ipCfg.protocol==6}"><spring:message code="TCP"/></c:if>
<c:if test="${ipCfg.protocol==17}"><spring:message code="UDP"/></c:if>
<c:if test="${ipCfg.protocol==0}"><spring:message code="arbitrary"/></c:if>
</td>
<%-- <td>${ipCfg.protocolId }</td> --%>
<td>
<c:if test="${1 eq ipCfg.action }"><spring:message code="block"/></c:if>
<c:if test="${2 eq ipCfg.action }"><spring:message code="monitor"/></c:if>
@@ -309,37 +320,61 @@
<c:if test="${7 eq ipCfg.action }"><spring:message code="block_monitor_white_list"/></c:if>
<c:if test="${8 eq ipCfg.action }"><spring:message code="grey_list"/></c:if>
</td>
<%-- <td>${ipCfg.serviceId }</td> --%>
<td>${ipCfg.requestName }</td>
<%-- <td>${ipCfg.compileId }</td> --%>
<td>
<c:if test="${ipCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
<c:if test="${ipCfg.isAreaEffective==1}"><spring:message code="yes"/></c:if>
</td>
<td>
<c:forEach items="${fn:split(ipCfg.classify,',')}" var="classifyId">
<c:forEach items="${fls}" var="fl">
<c:if test="${fn:trim(fl.serviceDictId) eq classifyId}">
${fl.itemValue},
</c:if>
</c:forEach>
</c:forEach>
${classifyName[status]}
</td>
<td>
<c:forEach items="${fn:split(ipCfg.attribute,',')}" var="attributeId">
<c:forEach items="${xzs}" var="xz">
<c:if test="${fn:trim(xz.serviceDictId) eq attributeId}">${xz.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
<td>
<c:forEach items="${fn:split(ipCfg.lable,',')}" var="lableId">
<c:forEach items="${lables}" var="lable">
<c:if test="${fn:trim(lable.serviceDictId) eq lableId}">${lable.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
<c:choose>
<c:when test="${action==5}">
</c:when>
<c:when test="${action==8}">
<td>
<c:if test="${ipCfg.direction==0}"><spring:message code="twoway"/></c:if>
<c:if test="${ipCfg.direction==1}"><spring:message code="oneway"/></c:if>
</td>
<td>
<c:if test="${ipCfg.protocol==6}"><spring:message code="TCP"/></c:if>
<c:if test="${ipCfg.protocol==17}"><spring:message code="UDP"/></c:if>
<c:if test="${ipCfg.protocol==0}"><spring:message code="arbitrary"/></c:if>
</td>
</c:when>
<c:otherwise>
<td>
<c:if test="${ipCfg.direction==0}"><spring:message code="twoway"/></c:if>
<c:if test="${ipCfg.direction==1}"><spring:message code="oneway"/></c:if>
</td>
<td>
<c:if test="${ipCfg.protocol==6}"><spring:message code="TCP"/></c:if>
<c:if test="${ipCfg.protocol==17}"><spring:message code="UDP"/></c:if>
<c:if test="${ipCfg.protocol==0}"><spring:message code="arbitrary"/></c:if>
</td>
<td>
<c:if test="${ipCfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
<c:if test="${ipCfg.isAreaEffective==1}"><spring:message code="yes"/></c:if>
</td>
<td>${ipCfg.requestName }</td>
<td>
<c:forEach items="${fn:split(ipCfg.classify,',')}" var="classifyId">
<c:forEach items="${fls}" var="fl">
<c:if test="${fn:trim(fl.serviceDictId) eq classifyId}">
${fl.itemValue},
</c:if>
</c:forEach>
</c:forEach>
${classifyName[status]}
</td>
<td>
<c:forEach items="${fn:split(ipCfg.attribute,',')}" var="attributeId">
<c:forEach items="${xzs}" var="xz">
<c:if test="${fn:trim(xz.serviceDictId) eq attributeId}">${xz.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
<td>
<c:forEach items="${fn:split(ipCfg.lable,',')}" var="lableId">
<c:forEach items="${lables}" var="lable">
<c:if test="${fn:trim(lable.serviceDictId) eq lableId}">${lable.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
</c:otherwise>
</c:choose>
<%-- <td>${ipCfg.areaEffectiveIds }</td> --%>
<td>
<c:if test="${ipCfg.isValid==0}"><spring:message code="no"/></c:if>

View File

@@ -81,16 +81,6 @@
</div>
</div>
</div>
<style>
.input-medium {
width: 200px !important;
}
.Wdate {
border: #c2cad8 1px solid;
height: 34px;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
@@ -98,15 +88,21 @@
rules: {
requestNumber: {
required: true,
maxlength:64,
},
requestOrg: {
required: true,
maxlength:128,
},
requestTime: {
required: true,
},
requestTitle: {
maxlength:512,
},
requestContent: {
required: true,
maxlength:4000,
},
@@ -114,15 +110,21 @@
messages: {
requestNumber: {
required: '<spring:message code="required"/>',
maxlength:'<spring:message code="maxlength_64"/>',
},
requestOrg: {
required: '<spring:message code="required"/>',
maxlength:'<spring:message code="maxlength_128"/>',
},
requestTime: {
required: '<spring:message code="required"/>',
},
requestTitle: {
maxlength:'<spring:message code="maxlength_512"/>',
},
requestContent: {
required: '<spring:message code="required"/>',
maxlength:'<spring:message code="maxlength_4000"/>',
},
},
submitHandler: function(form){

View File

@@ -9,13 +9,14 @@
<body>
<div class="page-content">
<shiro:hasPermission name="cfg:requestInfo:edit">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/cfg/request/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"/></button>
</div>
</shiro:hasPermission>
<h3 class="page-title">
<spring:message code="requestInfo"></spring:message>
<small><spring:message code="date_list"/></small>
@@ -36,6 +37,8 @@
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${requestInfo.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
@@ -71,7 +74,7 @@
</div>
<div class="pull-right">
<shiro:hasPermission name="cfg:requestInfo:edit">
<button type="button" class="btn btn-default" onclick="edit()">
<i class="fa fa-edit"></i> <spring:message code="edit"></spring:message></button>
<sys:delRow url="${ctx}/cfg/request/delete" id="contentTable" label="delete"></sys:delRow>
@@ -88,9 +91,9 @@
<li><sys:delRow url="${ctx}/cfg/request/requestCancelExamine" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div>
</shiro:hasPermission>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title="自定义列字段" href="javascript:;">
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
@@ -126,7 +129,7 @@
<div class="col-md-6">
<div class="pull-left">
<label><spring:message code="operate_time"/></label>
<label><spring:message code="edit_time"/></label>
</div>
<div class="pull-left">
<input id="dobeginDate" name="dobeginDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
@@ -164,9 +167,9 @@
<!-- <div class="table-responsive"> -->
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
@@ -175,12 +178,16 @@
<th><spring:message code="request_organization"></spring:message></th>
<th><spring:message code="request_time"></spring:message></th>
<th><spring:message code="state"></spring:message></th>
<th><spring:message code="operator"></spring:message></th>
<th><spring:message code="operate_time"></spring:message></th>
<th><spring:message code="title"></spring:message></th>
<th><spring:message code="content"></spring:message></th>
<th><spring:message code="special_task"></spring:message></th>
<%-- <th><spring:message code="operation"></spring:message></th> --%>
<th><spring:message code="creator"/></th>
<th class="sort-column createTime"><spring:message code="create_time"/></th>
<th><spring:message code="editor"/></th>
<th class="sort-column editTime"><spring:message code="edit_time"/></th>
<th><spring:message code="auditor"></spring:message></th>
<th class="sort-column auditTime"><spring:message code="audit_time"></spring:message></th>
</tr>
</thead>
<tbody>
@@ -198,21 +205,15 @@
<c:when test="${requestInfo.isAudit eq '2'}"><span class="label label-warning"><spring:message code="unapproved"></spring:message></span></c:when>
</c:choose>
</td>
<td>${requestInfo.creatorName }</td>
<td>
<!-- 编辑时间为空则显示创建时间 -->
<c:choose>
<c:when test="${empty requestInfo.editTime}">
<fmt:formatDate value="${requestInfo.createTime }" pattern="yyyy-MM-dd"/>
</c:when>
<c:otherwise>
<fmt:formatDate value="${requestInfo.editTime }" pattern="yyyy-MM-dd"/>
</c:otherwise>
</c:choose>
</td>
<td>${requestInfo.requestTitle }</td>
<td>${requestInfo.requestContent }</td>
<td>${requestInfo.taskName }</td>
<td>${requestInfo.creatorName }</td>
<td><fmt:formatDate value="${requestInfo.createTime }" pattern="yyyy-MM-dd"/></td>
<td>${requestInfo.editorName }</td>
<td><fmt:formatDate value="${requestInfo.editTime }" pattern="yyyy-MM-dd"/></td>
<td>${requestInfo.auditorName }</td>
<td><fmt:formatDate value="${requestInfo.auditTime }" pattern="yyyy-MM-dd"/></td>
</tr>
</c:forEach>
@@ -224,6 +225,7 @@
</div>
</div>
</div>
</div>
<script>
$(document).ready(function() {
@@ -265,11 +267,20 @@
function resetx(){
// $("#searchForm").reset();
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
// $(':input','#searchForm')
// .not(':button,:submit,:reset,:hidden')
// .val('')
// .removeAttr('checked')
// .removeAttr('selected');
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
$("#intype").attr("placeholder","<spring:message code='input'/> "+"<spring:message code='title'/>");
}

View File

@@ -3,22 +3,6 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script type="text/javascript">
$(function(){
$("#cfgFrom").validate({
@@ -123,31 +107,18 @@ $(function(){
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
</c:if>
<input id="audit" name="audit" type="hidden" value="${audit}"/>
<input id="action" name="action" type="hidden" value="${action}"/>
<input type="hidden" name="tableName" value="${_cfg.tableName}">
<input type="hidden" name="serviceId" value="${_cfg.serviceId}">
<input type="hidden" name="cfgName" value="${cfgName}">
<!-- <div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3">IP地址</label>
<div class="col-md-8">
<input class="form-control" type="text">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3">配置名称</label>
<div class="col-md-8">
<input class="form-control" type="text">
</div>
</div>
</div>
</div>
-->
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
<c:choose>
<c:when test="${action!=5 and action!=8}">
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>
</c:when>
<c:otherwise>
<input type="hidden" name=requestId value="0">
</c:otherwise>
</c:choose>
</div>
<div class="form-actions">
<div class="row">

View File

@@ -3,22 +3,6 @@
<html>
<head>
<title><spring:message code="${cfgName}"></spring:message></title>
<link href="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/css/bootstrap-select.min.css" rel="stylesheet"/>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/bootstrap-select.min.js"></script>
<c:choose>
<c:when test="${cookie.Language.value eq 'zh_CN'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-zh_CN.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'en'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:when>
<c:when test="${cookie.Language.value eq 'ru_RU'}">
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-ru_RU.min.js"></script>
</c:when>
<c:otherwise>
<script src="${pageContext.request.contextPath}/static/global/plugins/bootstrap-select/js/i18n/defaults-en_US.min.js"></script>
</c:otherwise>
</c:choose>
<script>
$(document).ready(function() {
//筛选功能初始化
@@ -89,38 +73,44 @@
<form:option value="3"><spring:message code="cancel_approved"></spring:message></form:option>
</form:select>
</div>
<div class="pull-left">
<c:set var="request_number"><spring:message code='request_number'/></c:set>
<form:select path="requestId" class="selectpicker select2 input-small" title="${request_number}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${requestInfos}" var="requestInfo" >
<form:option value="${requestInfo.id}"><spring:message code="${requestInfo.requestTitle}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="flI18n"><spring:message code='type'/></c:set>
<form:select path="classify" class="selectpicker select2 input-small" title="${flI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${fls}" var="fl" >
<form:option value="${fl.serviceDictId}"><spring:message code="${fl.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="attributeI18n"><spring:message code='attribute'/></c:set>
<form:select path="attribute" class="selectpicker select2 input-small" title="${attributeI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${xzs}" var="xz" >
<form:option value="${xz.serviceDictId}"><spring:message code="${xz.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="labelI18n"><spring:message code='label'/></c:set>
<form:select path="lable" class="selectpicker select2 input-small" title="${labelI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${lables}" var="lable" >
<form:option value="${lable.serviceDictId}"><spring:message code="${lable.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<c:choose>
<c:when test="${action==5}">
</c:when>
<c:otherwise>
<div class="pull-left">
<c:set var="request_number"><spring:message code='request_number'/></c:set>
<form:select path="requestId" class="selectpicker select2 input-small" title="${request_number}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${requestInfos}" var="requestInfo" >
<form:option value="${requestInfo.id}"><spring:message code="${requestInfo.requestTitle}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="flI18n"><spring:message code='type'/></c:set>
<form:select path="classify" class="selectpicker select2 input-small" title="${flI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${fls}" var="fl" >
<form:option value="${fl.serviceDictId}"><spring:message code="${fl.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="attributeI18n"><spring:message code='attribute'/></c:set>
<form:select path="attribute" class="selectpicker select2 input-small" title="${attributeI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${xzs}" var="xz" >
<form:option value="${xz.serviceDictId}"><spring:message code="${xz.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="labelI18n"><spring:message code='label'/></c:set>
<form:select path="lable" class="selectpicker select2 input-small" title="${labelI18n}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${lables}" var="lable" >
<form:option value="${lable.serviceDictId}"><spring:message code="${lable.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</c:otherwise>
</c:choose>
<%-- <button type="button" class="btn btn-default btn-sm" onclick="return page()">
<i class="fa fa-edit"></i><spring:message code="search"></spring:message>
</button> --%>
@@ -140,6 +130,10 @@
</div>
<div class="pull-right">
<button class="btn btn-default btn-search" type="button" onclick="return page()"><i class="fa fa-search"></i></button>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
@@ -222,21 +216,24 @@
</form:form>
</div>
<div class="table-responsive">
<table class="table table-striped table-bordered table-condensed text-nowrap">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="seq"/></th>
<th><spring:message code="config_describe"/></th>
<th><spring:message code="key_word"/></th>
<th><spring:message code="block_type"/></th>
<!-- <th>业务id</th> -->
<th><spring:message code="letter"/></th>
<!-- <th>编译id</th> -->
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="type"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
<!-- <th>区域生效id</th> -->
<c:choose>
<c:when test="${action==5}">
</c:when>
<c:otherwise>
<th><spring:message code="whether_area_block"/></th>
<th><spring:message code="letter"/></th>
<th><spring:message code="type"/></th>
<th><spring:message code="attribute"/></th>
<th><spring:message code="label"/></th>
</c:otherwise>
</c:choose>
<th><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_audit"/></th>
<th><spring:message code="creator"/></th>
@@ -262,38 +259,41 @@
<c:if test="${7 eq cfg.action }"><spring:message code="block_monitor_white_list"/></c:if>
<c:if test="${8 eq cfg.action }"><spring:message code="grey_list"/></c:if>
</td>
<%-- <td>${cfg.serviceId }</td> --%>
<td>${cfg.requestName }</td>
<%-- <td>${cfg.compileId }</td> --%>
<td>
<c:if test="${cfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isAreaEffective==1}"><spring:message code="yes"/></c:if>
</td>
<td>
<c:forEach items="${fn:split(cfg.classify,',')}" var="classifyId">
<c:forEach items="${fls}" var="fl">
<c:if test="${classifyId eq fn:trim(fl.serviceDictId)}">
${fl.itemValue},
</c:if>
</c:forEach>
</c:forEach>
${classifyName[status]}
</td>
<td>
<c:forEach items="${fn:split(cfg.attribute,',')}" var="attributeId">
<c:forEach items="${xzs}" var="xz">
<c:if test="${attributeId eq fn:trim(xz.serviceDictId)}">${xz.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
<td>
<c:forEach items="${fn:split(cfg.lable,',')}" var="lableId">
<c:forEach items="${lables}" var="lable">
<c:if test="${lableId eq fn:trim(lable.serviceDictId)}">${lable.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
<%-- <td>${cfg.areaEffectiveIds }</td> --%>
<c:choose>
<c:when test="${action==5}">
</c:when>
<c:otherwise>
<td>
<c:if test="${cfg.isAreaEffective==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isAreaEffective==1}"><spring:message code="yes"/></c:if>
</td>
<td>${cfg.requestName }</td>
<td>
<c:forEach items="${fn:split(cfg.classify,',')}" var="classifyId">
<c:forEach items="${fls}" var="fl">
<c:if test="${classifyId eq fn:trim(fl.serviceDictId)}">
${fl.itemValue},
</c:if>
</c:forEach>
</c:forEach>
${classifyName[status]}
</td>
<td>
<c:forEach items="${fn:split(cfg.attribute,',')}" var="attributeId">
<c:forEach items="${xzs}" var="xz">
<c:if test="${attributeId eq fn:trim(xz.serviceDictId)}">${xz.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
<td>
<c:forEach items="${fn:split(cfg.lable,',')}" var="lableId">
<c:forEach items="${lables}" var="lable">
<c:if test="${lableId eq fn:trim(lable.serviceDictId)}">${lable.itemValue},</c:if>
</c:forEach>
</c:forEach>
</td>
</c:otherwise>
</c:choose>
<td>
<c:if test="${cfg.isValid==0}"><spring:message code="no"/></c:if>
<c:if test="${cfg.isValid==1}"><spring:message code="yes"/></c:if>

View File

@@ -11,6 +11,7 @@
<script src="${pageContext.request.contextPath}/static/pages/scripts/home.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
@@ -28,9 +29,43 @@
$obj.parent("li").addClass("hide");
// === Search input typeahead === //
$('#searchText').typeahead({
source: function(query,process) {
var sourceArray = new Array();
$(".accordion:visible a[target='mainFrame']").each(function(){
sourceArray.push($(this).parents("li").attr("menu-name")+"_"+$(this).parents("li").attr("menu-id"));
})
return process(sourceArray)
},
setValue:function(item){
},
items: 8,
matcher:function(term){
var mod1 = pinyin.getPY_Header(term);
var mod2 = pinyin.getPY_All(term);
var mod3 = term;
var s1 = mod1.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
var s2 = mod2.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
var s3 = mod3.toUpperCase().indexOf(this.query.toUpperCase())!=-1;
return (s1||s2||s3);
}
});
$("#searchText").click(function(){
$(this).val("");
});
});
//面包屑导航
$(function(){
/* $(function(){
$("div ul li a").click(function(){
if(typeof $(this).attr("id") !='undefined'){
@@ -43,7 +78,61 @@
// var ur="${ctx}"+urlto.split("nis")[1];
// $("#menutwo").attr("href",ur);
})
})
}) */
//页面跳转函数 level:级别1顶级2有子级。name:菜单名称,有多级#间隔。url访问路径。object点击元素对象。
function page_turn(id, level, name, url,obj){
var $object = $("#menu_"+id);//点击当前级别
$(".page-sidebar li").filter(".active,.open").removeClass("active open");//删除选中样式
var $header = $(".page-breadcrumb");//添加头部信息
$(".page-breadcrumb").empty();
var parent_li = $object.parents("li");
var parent_parent_li = $object.parents("li").parents("li");
var breadcrumb = $(".accordion:visible").attr("menu-name");
if(level==1){//一级菜单
breadcrumb += "#"+$object.attr("menu-name");
}else if(level==2){//二级菜单
parent_li.addClass("active open");
breadcrumb += "#"+parent_li.attr("menu-name")+"#"+$object.attr("menu-name");
}else if(level==3){//三级
parent_li.addClass("active open");
parent_parent_li.addClass("active open");
breadcrumb += "#"+parent_parent_li.attr("menu-name")+"#"+parent_li.attr("menu-name")+"#"+$object.attr("menu-name");
}
$object.addClass("active");
$header.append("<li><a href='index.html'><spring:message code='home'></spring:message></a> <i class='fa fa-circle'></i></li>");
var breadcrumbs = breadcrumb.split("#");
for(var i=0;i<breadcrumbs.length;i++) {
var circle="";
if(i!=breadcrumbs.length-1) {
circle = " <i class='fa fa-circle'></i>";
}
$header.append("<li><a href='javascript:void(0);'>"+breadcrumbs[i]+"</a>"+circle+"</li>");
}
//调入页面
window.frames['mainFrame'].location=url;
App.scrollTo()
}
function searchMenu() {
var search_txt = $("#searchText").val();
if(search_txt.indexOf('_')!=-1){
search_txt = search_txt.substring(search_txt.lastIndexOf('_'));
$("#menu"+search_txt+" >a").trigger('click');
}else {
alert('未找到该菜单!');
}
}
</script>
</head>
@@ -193,14 +282,13 @@
</li>
<li class="sidebar-search-wrapper">
<form class="sidebar-search " action="page_general_search_3.html"
method="POST">
<form class="sidebar-search">
<a href="javascript:;" class="remove"> <i class="icon-close"></i>
</a>
<div class="input-group">
<input class="form-control" placeholder="Search..." type="text">
<input class="form-control" autocomplete="off" spellcheck="false" placeholder="Search..." type="text" id="searchText">
<span class="input-group-btn"> <a href="javascript:;"
class="btn submit"> <i class="icon-magnifier"></i>
class="btn" onclick="searchMenu();"> <i class="icon-magnifier"></i>
</a>
</span>
</div>
@@ -225,10 +313,7 @@
<div class="page-bar">
<ul class="page-breadcrumb">
<li><a href="index.html">Home</a> <i class="fa fa-circle"></i>
</li>
<li><a href="#" id="menutwo" target="mainFrame">Tables</a> <i class="fa fa-circle"></i></li>
<li><span id="menuthree">Datatables</span></li>
<li><a href="index.html"><spring:message code="home"></spring:message></a> <i class="fa fa-circle"></i></li>
</ul>
</div>

View File

@@ -0,0 +1,205 @@
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="${ctxStatic}/pages/css/dictInfo.css" />
<script type="text/javascript" src="${ctxStatic}/pages/scripts/specificServiceForm/specificServiceFormCfg.js"></script>
<title></title>
<script type="text/javascript">
$(document).ready(function() {
jQuery.validator.addMethod("maxValue", function(value, element) {
return value >=0&&value<210000000;
}, "请填写正确的协议id");
//校验叶子节点无上级不得选为叶子节点
jQuery.validator.addMethod("leafHasTree",function(value,element){
var flagLeafHasTree=false;
$.ajax({
type:'post',
async:false,
url:'${ctx}/specific/specificServiceCfg/ajaxLeafHasTree',
data:{parentId:$("#specificServiceCfgId").val(),newIsLeaf:$("#isLeaf option:selected").val()},
success:function(data){
flagLeafHasTree=data;
}
});
return flagLeafHasTree;
},"该配置上级为根节点,不得设为叶子节点");
//校验叶子节点有下级不得更改为叶子节点
jQuery.validator.addMethod("leafChange",function(value,element){
var flagLeafChange=false;
$.ajax({
type:'post',
async:false,
url:'${ctx}/specific/specificServiceCfg/ajaxLeafChange',
data:{parent:"${specificServiceCfg.specServiceId}",newIsLeaf:$("#isLeaf option:selected").val()},
success:function(data){
flagLeafChange=data;
}
});
return flagLeafChange;
},"该配置包含下级配置,不得改为叶子节点");
$("#name").focus();
$("#inputForm").validate({
rules:{
specServiceId:{
required:true,
digits:true,
maxValue: true,
remote:'${ctx}/specific/specificServiceCfg/isIdRepeat?oldId=${specificServiceCfg.specServiceId}'
},
specServiceName:{
required:true
},
groupId:{
digits:true,
maxValue:true
},
isLeaf:{
leafHasTree:true,
leafChange:true
}
},
messages: {
specServiceId:{
required:'请填写协议ID',
digits:"请填写整数数字",
maxValue: "请填写正确的协议ID(0~210000000)",
remote:'该协议ID已存在'
},
specServiceName:{
required:'请填写协议名称'
},
groupId:{
digits:'请填写整数数值',
maxValue:'请填写正确的分组Id(0~210000000)'
},
isLeaf:{
leafHasTree:'该配置上级为根节点,不得设为叶子节点',
leafChange:'该配置包含下级配置,不得改为叶子节点'
}
},
submitHandler: function(form){
if(!validateItem()) {
return false;
}
loading('正在提交,请稍等...');
form.submit();
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
error.appendTo(element.parent().parent());
} else {
error.insertAfter(element);
}
}
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="history.go(-1)"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
<spring:message code="specific_service_cfg"/>
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i><shiro:hasPermission name="sys:menu:edit">${not empty specificServiceCfg.specServiceId?'修改':'添加'}</shiro:hasPermission><shiro:lacksPermission name="sys:menu:edit"><spring:message code="show"/></shiro:lacksPermission></div>
<div class="tools">
<!-- <a href="javascript:;" class="collapse"> </a>
<a href="#portlet-config" data-toggle="modal" class="config"> </a>
<a href="javascript:;" class="reload"> </a>
<a href="javascript:;" class="remove"> </a> -->
</div>
</div>
<div class="portlet-body form">
<div class="form-body">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="specificServiceCfg" action="${ctx}/specific/specificServiceCfg/saveOrUpdate" method="post" class="form-horizontal">
<input name="oldId" type="hidden" value="${specificServiceCfg.specServiceId}"/>
<form:hidden path="isValid" class="form-control"/>
<sys:message content="${message}"/>
<div class="form-group">
<label class="col-md-3 control-label"><spring:message code="superior_config"/>:</label>
<div class="col-md-4">
<sys:treeselect id="specificServiceCfg" name="parent.specServiceId" value="${specificServiceCfg.parent.specServiceId}" labelName="parent.specServiceName" labelValue="${specificServiceCfg.parent.specServiceName eq '根节点'?'根节点':fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName}"
title="菜单" url="/specific/specificServiceCfg/treeData" extId="${specificServiceCfg.specServiceId}" cssClass="required form-control"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议ID:</label>
<div class="col-md-4">
<input id="specServiceId" name="specServiceId" maxlength="50" class="form-control" value="${specificServiceCfg.specServiceId}"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议名称:</label>
<div class="col-md-4">
<form:input path="specServiceName" htmlEscape="false" maxlength="50" class="form-control"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">maat端配置分组id:</label>
<div class="col-md-4">
<form:input path="groupId" htmlEscape="false" maxlength="50" class="form-control" placeholder="0"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<div class="col-md-4">
<form:select path="isLeaf" class="form-control">
<form:options items="${fns:getDictList('SYS_YES_NO')}" itemLabel="itemValue" itemValue="itemCode" htmlEscape="false"/>
</form:select>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">协议描述:</label>
<div class="col-md-4">
<form:textarea path="specServiceDesc" htmlEscape="false" maxlength="2000" class="form-control"/>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<shiro:hasPermission name="sys:menu:edit"><button type="submit" class="btn btn-circle blue"><spring:message code="submit"/></button></shiro:hasPermission>
<button type="button" class="btn btn-circle grey-salsa btn-outline" onclick="history.go(-1)"><spring:message code="cancel"/></button>
</div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,97 @@
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="${ctxStatic}/pages/css/dictInfo.css" />
<script type="text/javascript" src="${ctxStatic}/pages/scripts/dict.js"></script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="history.go(-1)"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
<spring:message code="specific_service_cfg"/>
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i><spring:message code="show"/></div>
<div class="tools">
</div>
</div>
<div class="portlet-body form">
<div class="form-body">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="specificServiceCfg" class="form-horizontal">
<div class="form-group">
<label class="col-md-3 control-label"><spring:message code="superior_config"/>:</label>
<div class="col-md-4">
<input value="${specificServiceCfg.parent.specServiceId == 0?'根节点':fns:getBySpecServiceId(specificServiceCfg.parent.specServiceId).specServiceName}" maxlength="50" class="form-control" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议ID:</label>
<div class="col-md-4">
<input id="specServiceId" name="specServiceId" maxlength="50" class="form-control" value="${specificServiceCfg.specServiceId}" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议名称:</label>
<div class="col-md-4">
<form:input path="specServiceName" htmlEscape="false" maxlength="50" class="form-control" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>maat端配置分组id:</label>
<div class="col-md-4">
<form:input path="groupId" htmlEscape="false" maxlength="50" class="form-control" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<div class="col-md-4">
<input value="${fns:getDictLabel('SYS_YES_NO',specificServiceCfg.isLeaf,'0')}" maxlength="50" class="form-control" readonly="readonly"/>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font><spring:message code="is_leaf"/>:</label>
<div class="col-md-4">
<input value="<fmt:formatDate value='${specificServiceCfg.opTime}' pattern='yyyy-MM-dd HH:mm:ss'/>" maxlength="50" class="form-control" readonly="readonly" />
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">协议描述:</label>
<div class="col-md-4">
<form:textarea path="specServiceDesc" htmlEscape="false" maxlength="2000" class="form-control" readonly="readonly"/>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,286 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title></title>
<link href="${ctxStatic}/global/plugins/treeTable/themes/vsStyle/treeTable.min.css" rel="stylesheet" type="text/css" />
<script src="${ctxStatic}/global/plugins/treeTable/jquery.treeTable.min.js" type="text/javascript"></script>
<script src="${ctxStatic}/pages/scripts/dict.js" type="text/javascript"></script>
<style type="text/css">
</style>
<script type="text/javascript">
function reset(){
$("#searchForm").reset();
}
/**
处理全选、全取消
**/
function selectAll(){
//alert($("#selAll").prop("checked"));
if($("#selAll").prop("checked")){
//$("#treeTable").find(":checkbox[name='check']").attr("checked","checked");
//$("#treeTable").find(":checkbox[name='check']").each(function(){
$("input[name='check']:checkbox").each(function(){
$(this).prop("checked",true);
});
}else{
//$("#treeTable").find(":checkbox[name='check']").attr("checked",false);
//$("#treeTable").find(":checkbox[name='check']").each(function(){
$("input[name='check']:checkbox").each(function(){
//$(this).attr("checked",false);
$(this).removeProp("checked");
});
}
}
/*
系统通用方法根据参数来决定处理的url和参数
*/
function cmd(){
var url=arguments[0];
var mulitId="";
jQuery("#treeTable").find(":checkbox:checked[name='check']").each(function(){
if(jQuery(this).val()!=""){
mulitId+=jQuery(this).val()+",";
}
});
if(mulitId!=""){
confirmx('您确认要执行该操作?', url+"?mulitId="+mulitId);
}else{
alert("至少选择一条数据记录");
}
}
function casec(){
if($("#intype").attr("name")=="specServiceId"||$("#intype").attr("name")=="groupId"){
if(isNaN($("#intype").val())){
$("#showError").show();
return false;
}else{
$("#showError").hide();
//alert(11);
return true;
}
}else{
$("#showError").hide();
return true;
}
}
//查询
function page(n,s){
//$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/specific/specificServiceCfg/list");
if(!casec()){
return false;
}
$("#searchForm").submit();
return false;
}
$(document).ready(function() {
//reset
$("#resetBtn").on("click",function(){
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
//设定显示总条数
$("#showTotalCount").text('${showTotalCount}');
//条件回传
$("#seltype").find("option[value=${searchType==null?11:searchType}]").attr("selected",true);
$("#intype").attr("name",$("#seltype").find("option:selected").val());
$("#intype").val('${searchContent}');
//筛选功能初始化
filterActionInit();
$("#seltype").change(function(){
$("#intype").val("");
$("#intype").attr("placeholder","请输入"+$(this).find("option:selected").text());
$("#intype").attr("name",$(this).find("option:selected").val());
$("#showError").hide();
});
$("#treeTable").treeTable({expandLevel : 3}).show();
});
</script>
<style type="text/css">
.dropdown-menu {
min-width: 70px;
}
</style>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/specific/specificServiceCfg/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message>配置</button>
</div>
<h3 class="page-title">
<spring:message code="specific_service_cfg"/>
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="specificServiceCfg" action="${ctx}/specific/specificServiceCfg/list" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${specificServiceCfg.isFilterAction}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<select id="seltype" class="selectpicker select2 input-middle" >
<option value="specServiceId">协议ID</option>
<option value="specServiceName">协议名称</option>
<option value="groupId">maat端配置分组ID</option>
</select>
</div>
<input id="intype" class="form-control input-medium" placeholder="请输入协议ID" type="text" onchange="casec()">
<div class="input-group-btn">
<button class="btn btn-default btn-search" type="button" onclick="page()"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
<div class="pull-left" style="margin-top:10px;display:none" id="showError">
<label class="error">请填写整数</label>
</div>
<div class="pull-left">
<button type="button" class="btn btn-default" id="filter-btn"> 筛选 <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/specific/specificServiceCfg/form')">
<i class="fa fa-edit"></i> 编辑</button>
<button type="button" class="btn btn-default" onclick="cmd('${ctx}/specific/specificServiceCfg/delete')">
<i class="fa fa-trash"></i> 删除</button>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title="自定义列字段" href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- /搜索内容与操作按钮栏-->
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-6">
<div class="pull-left">
<label>操作时间:</label>
</div>
<div class="pull-left">
<input id="beginDate" name="beginDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceCfg.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label>到</label>
</div>
<div class="pull-left">
<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceCfg.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
</div>
<h5 class="page-header"></h5>
<div class="row">
<div class="pull-left">
<button type="button" class="btn blue" onclick="page()"> <i class="fa fa-search"></i> 搜索 </button>
<button type="button" id="resetBtn" class="btn btn-default" onclick="reset()"> <i class="fa fa-refresh"></i> 重置 </button>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="treeTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="ckboxs" id="selAll" onclick="selectAll()"></th>
<th>序号</th>
<th>协议ID</th>
<th>协议名称</th>
<th>协议描述</th>
<th>maat端配置分组id</th>
<th><spring:message code="is_leaf"/></th>
<th class="sort-column op_time">操作时间</th>
<%-- <shiro:hasPermission name="sys:menu:edit"><th><spring:message code="operation"/></th></shiro:hasPermission>
--%> </tr>
</thead>
<tbody>
<c:forEach items="${list}" var="specificServiceCfg" varStatus="ss">
<tr id="${specificServiceCfg.specServiceId}" pId="${specificServiceCfg.parent.specServiceId ne 0?specificServiceCfg.parent.specServiceId:0}">
<td><input type="checkbox" class="ckbox" name="check" value="${specificServiceCfg.specServiceId}"></td>
<td>${specificServiceCfg.showSequence}</td>
<td nowrap><i class="icon-icon-tablet"></i><a href="${ctx}/specific/specificServiceCfg/form?specServiceId=${specificServiceCfg.specServiceId}&doAction=0">${specificServiceCfg.specServiceId}</a></td>
<td title="${specificServiceCfg.specServiceName}">${specificServiceCfg.specServiceName}</td>
<td title="${specificServiceCfg.specServiceDesc}">${fns:abbr(specificServiceCfg.specServiceDesc,15)}</td>
<td>${specificServiceCfg.groupId }</td>
<td>${fns:getDictLabel("SYS_YES_NO",specificServiceCfg.isLeaf,"0")}</td>
<td><fmt:formatDate value="${specificServiceCfg.opTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<%-- <td>
<div class="btn-group btn-xs">
<a class="btn btn-primary btn-xs dropdown-toggle" data-toggle="dropdown" href="#"><spring:message code="operation"/><span class="caret"></span></a>
<ul class="dropdown-menu btn-xs">
<li><a href="${ctx}/specific/specificServiceCfg/form?mulitId=${specificServiceCfg.specServiceId}&doAction=0"><spring:message code="show"/></a></li>
<shiro:hasPermission name="sys:dict:edit">
<li><a href="${ctx}/specific/specificServiceCfg/form?mulitId=${specificServiceCfg.specServiceId}" onclick="return confirmx('您确认要修改该项配置吗?', this.href)"><spring:message code="edit"/></a></li>
</shiro:hasPermission>
<shiro:hasPermission name="sys:dict:edit">
<li><a href="${ctx}/specific/specificServiceCfg/delete?mulitId=${specificServiceCfg.specServiceId}" onclick="return confirmx('您确认要删除该项配置吗?', this.href)"><spring:message code="delete"/></a></li>
</shiro:hasPermission>
</ul>
</div>
</td> --%>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,436 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<link rel="stylesheet" type="text/css"
href="${ctxStatic}/pages/css/dictInfo.css" />
<script type="text/javascript" src="${ctxStatic}/pages/scripts/dict.js"></script>
<title></title>
<script type="text/javascript">
$(document).ready(function() {
$("[data-toogle='tooltip']").tooltip();
$("select[name='ipType']").on("change",function(){
var type=$(this).val();
if(4==type){
$("input[name='srcIpMask']").attr("placeholder","任意掩码请填0.0.0.0,无掩码请填255.255.255.255");
$("input[name='dstIpMask']").attr("placeholder","任意掩码请填0.0.0.0,无掩码请填255.255.255.255");
$("input[name='srcIp']").attr("placeholder","任意ip请填0.0.0.0");
$("input[name='dstIp']").attr("placeholder","任意ip请填0.0.0.0");
$("input[name='srcIpMask']").attr("title","任意掩码请填0.0.0.0,无掩码请填255.255.255.255");
$("input[name='dstIpMask']").attr("title","任意掩码请填0.0.0.0,无掩码请填255.255.255.255");
$("input[name='srcIp']").attr("title","任意ip请填0.0.0.0");
$("input[name='dstIp']").attr("title","任意ip请填0.0.0.0");
}
if(6==type){
$("input[name='srcIpMask']").attr("placeholder","若无请填FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF,任意请填 ::");
$("input[name='dstIpMask']").attr("placeholder","若无请填FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF,任意请填 ::");
$("input[name='srcIp']").attr("placeholder","任意ip请填 ::");
$("input[name='dstIp']").attr("placeholder","任意ip请填 ::");
$("input[name='srcIpMask']").attr("title","若无请填FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF,任意请填 ::");
$("input[name='dstIpMask']").attr("title","若无请填FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF,任意请填 ::");
$("input[name='srcIp']").attr("title","任意ip请填 ::");
$("input[name='dstIp']").attr("title","任意ip请填 ::");
}
});
jQuery.validator.addMethod("maxValue",
function(value, element) {
return value >= 0 && value < 210000000;
}, "请填写正确的协议id");
//ip地址校验
jQuery.validator.addMethod("ip",function(value, element) {
var typeInt=$("select[name='ipType']").val();
if(typeInt==4){
return this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256));
}else if(typeInt==6){
return this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))(%.+)?\s*$/.test(value);
}}, "请填写正确的IP地址");
//ip地址掩码校验
jQuery.validator.addMethod("ipMask",function(value, element) {
obj=value;
var typeInt=$("select[name='ipType']").val();
if(typeInt==4){
if(obj=="255.255.255.255"){
return true;
}else{
var exp=/^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/;
var reg = obj.match(exp);
if(reg==null){return false;}else{return true}
}
}else if(typeInt==6){
if(obj=="FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"||obj==0||obj=="::"){
return true;
}else{return (obj > 0) && ((obj & (obj - 1)) == 0)};
}
}, "请填写正确的IP地址掩码");
$("#name").focus();
$("#inputForm")
.validate(
{
rules : {
specServiceId:{
required:true,
digits:true,
maxValue:true
},
srcIp:{
required:true,
ip:true
},
dstIp:{
required:true,
ip:true
},
srcIpMask:{
required:true,
ipMask:true
},
dstIpMask:{
required:true,
ipMask:true
},
srcPort:{
required:true,
digits:true,
max: 65535,
min: 0
},
dstPort:{
required:true,
digits:true,
max: 65535,
min: 0
},
srcPortMask:{
required:true,
digits:true,
max: 65535,
min: 0
},
dstPortMask:{
required:true,
digits:true,
max: 65535,
min: 0
}
},
messages : {
specServiceId:{
required:'<spring:message code="required"/>',
digits:'请填写整数数值',
maxValue:'请填写合适的值0~210000000'
},
srcIp:{
required:'<spring:message code="required"/>',
ip:'请填写正确的ip'
},
dstIp:{
required:'<spring:message code="required"/>',
ip:'请填写正确的ip'
},
srcIpMask:{
required:'<spring:message code="required"/>'
},
dstIpMask:{
required:'<spring:message code="required"/>'
},
srcPort:{
required:'<spring:message code="required"/>',
digits:'请填写整数',
max: '数值不得大于65535',
min: '数值不得小于0'
},
dstPort:{
required:'<spring:message code="required"/>',
digits:'请填写整数',
max: '数值不得大于65535',
min: '数值不得小于0'
},
srcPortMask:{
required:'<spring:message code="required"/>',
digits:'请填写整数',
max: '数值不得大于65535',
min: '数值不得小于0'
},
dstPortMask:{
required:'<spring:message code="required"/>',
digits:'请填写整数',
max: '数值不得大于65535',
min: '数值不得小于0'
}
},
submitHandler : function(form) {
if (!validateItem()) {
return false;
}
loading('正在提交,请稍等...');
form.submit();
},
errorContainer : "#messageBox",
errorPlacement : function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")
|| element.is(":radio")
|| element.parent().is(
".input-append")) {
error.appendTo(element.parent()
.parent());
} else {
error.insertAfter(element);
}
}
});
});
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default"
onclick="history.go(-1)">
<spring:message code="back" />
</button>
</div>
<h3 class="page-title">
<spring:message code="agreement_ip_configuration" />
</h3>
<div class="row">
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
<shiro:hasPermission name="sys:menu:edit">${not empty specificServiceHostCfg.hostId?'修改':'添加'}</shiro:hasPermission>
<shiro:lacksPermission name="sys:menu:edit">
<spring:message code="show" />
</shiro:lacksPermission>
</div>
<div class="tools"></div>
</div>
<div class="portlet-body form">
<div class="form-body">
<!-- BEGIN FORM-->
<form:form id="inputForm" modelAttribute="specificServiceHostCfg" action="${ctx}/specific/specificServiceHostCfg/saveOrUpdate" method="post" class="form-horizontal" >
<form:hidden path="hostId" class="form-control" />
<sys:message content="${message}" />
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议ID:</label>
<div class="col-md-6">
<form:input path="specServiceId" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>方向:</label>
<div class="col-md-6">
<form:select path="direction" class="selectpicker select2 form-control" >
<c:forEach items="${fns:getDictList('SPEC_DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>协议:</label>
<div class="col-md-6">
<form:select path="protocol" class="selectpicker select2 form-control" >
<c:forEach items="${fns:getDictList('SPEC_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>ip类型:</label>
<div class="col-md-6">
<form:select path="ipType" class="selectpicker select2 form-control" >
<c:forEach items="${fns:getDictList('SPEC_IP_TYPE')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
<div class="col-md-6" style="display:none;">
<input name="isAudit" value="1"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>源IP地址:</label>
<div class="col-md-6">
<form:input path="srcIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意ip请填0.0.0.0" placeholder="任意ip请填0.0.0.0"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>目的IP地址:</label>
<div class="col-md-6">
<form:input path="dstIp" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意ip请填0.0.0.0" placeholder="任意ip请填0.0.0.0"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>源地址掩码:</label>
<div class="col-md-6">
<form:input path="srcIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" title="任意掩码请填0.0.0.0,无掩码请填255.255.255.255" data-placement="top" placeholder="任意掩码请填0.0.0.0,无掩码请填255.255.255.255"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>目的地址掩码:</label>
<div class="col-md-6">
<form:input path="dstIpMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意掩码请填0.0.0.0,无掩码请填255.255.255.255" placeholder="任意掩码请填0.0.0.0,无掩码请填255.255.255.255"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>源端口:</label>
<div class="col-md-6">
<form:input path="srcPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意端口请填0" placeholder="任意端口请填0"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>目的端口:</label>
<div class="col-md-6">
<form:input path="dstPort" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意端口请填0" placeholder="任意端口请填0"/>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>源端口掩码:</label>
<div class="col-md-6">
<form:input path="srcPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意掩码请填0,无掩码请填65535" placeholder="任意掩码请填0,无掩码请填65535"/>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>目的端口掩码:</label>
<div class="col-md-6">
<form:input path="dstPortMask" htmlEscape="false" maxlength="50" class="form-control" data-toggle="tooltip" data-placement="top" title="任意掩码请填0,无掩码请填65535" placeholder="任意掩码请填0,无掩码请填65535"/>
</div>
</div>
</div>
</div>
<%-- <div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>创建人员:</label>
<div class="col-md-6">
<form:input path="creator.id" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>配置时间:</label>
<div class="col-md-6">
<form:input path="createTime" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>修改人员:</label>
<div class="col-md-6">
<form:input path="editor.id" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>修改时间:</label>
<div class="col-md-6">
<form:input path="editTime" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>审核人员:</label>
<div class="col-md-6">
<form:input path="auditor.id" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label class="col-md-3 control-label"><font color="red">*</font>审核时间:</label>
<div class="col-md-6">
<form:input path="auditTime" htmlEscape="false" maxlength="50" class="form-control" />
</div>
</div>
</div>
</div> --%>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<shiro:hasPermission name="sys:menu:edit"><button type="submit" class="btn btn-circle blue"><spring:message code="submit" /></button></shiro:hasPermission>
<button type="button" class="btn btn-circle grey-salsa btn-outline" onclick="history.go(-1)"> <spring:message code="cancel" /></button>
</div>
</div>
</div>
</form:form>
<!-- END FORM-->
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,353 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title><spring:message code="agreement_ip_configuration" /></title>
<script>
$(document).ready(function() {
//筛选功能初始化
filterActionInit();
$("#isAudit").change(function(){
page();
});
$("#direction").change(function(){
page();
});
$("#protocol").change(function(){
page();
});
$("#ipType").change(function(){
page();
});
//全选及取消
$("#checkAll").change(function(){
if($("#checkAll").prop("checked")){
$("input.i-checks").prop("checked",true);
}else{
$("input.i-checks").prop("checked",false);
}
});
});
function resetx(){
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$("#specServiceId").attr("value","");
$("#srcIp").attr("value","");
$("#dstIp").attr("value","");
}
//编辑
function edit(){
var mulitId="";
jQuery("#contentTable").find(":checkbox:checked[name='check']").each(function(){
if(jQuery(this).val()!=""){
mulitId+=jQuery(this).val()+",";
}
});
if(mulitId!=""){
confirmx('您确认要执行该操作?', '${ctx}/specific/specificServiceHostCfg/form?hostId='+mulitId.split(",", 1)[0]);
}else{
alert("至少选择一条数据记录");
}
}
//删除
function delAll(){
var mulitId="";
jQuery("#contentTable").find(":checkbox:checked[name='check']").each(function(){
if(jQuery(this).val()!=""){
mulitId+=jQuery(this).val()+",";
}
});
if(mulitId!=""){
confirmx('您确认要执行该操作?', '${ctx}/specific/specificServiceHostCfg/delete?mulitId='+mulitId);
}else{
alert("至少选择一条数据记录");
}
}
//查询
function page(n,s){
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/specific/specificServiceHostCfg/list");
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/specific/specificServiceHostCfg/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"/></button>
</div>
<h3 class="page-title">
<spring:message code="agreement_ip_configuration" />
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="specificServiceHostCfg" action="${ctx}/specific/specificServiceHostCfg/list" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${specificServiceHostCfg.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<%-- <div class="pull-left">
<form:select path="isAudit" class="selectpicker select2 input-small" >
<form:option value=""><spring:message code="all_states"/></form:option>
<c:forEach items="${fns:getDictList('SPEC_AUDIT')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div> --%>
<div class="pull-left">
<c:set var="spec_service_id">协议ID</c:set>
<form:select path="specServiceId" class="selectpicker select2 input-small" title="${spec_service_id}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${listSpecServiceId}" var="specServiceId" >
<form:option value="${specServiceId}">${specServiceId}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left" style="margin-right:0px;">
<form:select path="ipType" class="selectpicker select2 input-small" >
<form:option value="">-请选择ip类型-</form:option>
<c:forEach items="${fns:getDictList('SPEC_IP_TYPE')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="src_ip">源Ip地址</c:set>
<form:select path="srcIp" class="selectpicker select2 input-small" title="${src_ip}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${listSrcIp}" var="srcIp" >
<form:option value="${srcIp}">${srcIp}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<c:set var="dst_ip">目的Ip地址</c:set>
<form:select path="dstIp" class="selectpicker select2 input-small" title="${dst_ip}" data-live-search="true" data-live-search-placeholder="search">
<c:forEach items="${listDstIp}" var="dstIp" >
<form:option value="${dstIp}">${dstIp}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<form:select path="direction" class="selectpicker select2 input-small" >
<form:option value="">-请选择方向-</form:option>
<c:forEach items="${fns:getDictList('SPEC_DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left" style="margin-right:0px;">
<form:select path="protocol" class="selectpicker select2 input-small" >
<form:option value="">-请选择协议-</form:option>
<c:forEach items="${fns:getDictList('SPEC_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}">${dict.itemValue}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<button class="btn btn-default btn-search" type="button" onclick="return page()"><i class="fa fa-search"></i></button>
</div>
<div class="pull-left">
<button type="button" class="btn btn-default" id="filter-btn"> 筛选 <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<button type="button" class="btn btn-default" onclick="edit()">
<i class="fa fa-edit"></i> <spring:message code="edit"></spring:message></button>
<button type="button" class="btn btn-default" onclick="delAll()">
<i class="fa fa-trash"></i> 删除</button>
<%-- <div class="btn-group" >
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="examine"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right">
<li><sys:delRow url="" id="contentTable" label="approved"></sys:delRow></li>
<li><sys:delRow url="" id="contentTable" label="unapproved"></sys:delRow></li>
<li><sys:delRow url="" id="contentTable" label="cancelPass"></sys:delRow></li>
</ul>
</div> --%>
<a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title="自定义列字段" href="javascript:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- /搜索内容与操作按钮栏-->
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-6">
<div class="pull-left">
<label>配置时间:</label>
</div>
<div class="pull-left">
<input id="beginDate" name="beginDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate" data-options="buttons:buttons"
value="<fmt:formatDate value="${specificServiceHostCfg.beginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label><spring:message code="to"/></label>
</div>
<div class="pull-left">
<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceHostCfg.endDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="col-md-6">
<div class="pull-left">
<label>修改时间:</label>
</div>
<div class="pull-left">
<input id="editBeginDate" name="editBeginDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceHostCfg.editBeginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label><spring:message code="to"/></label>
</div>
<div class="pull-left">
<input id="editEndDate" name="editEndDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceHostCfg.editEndDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="col-md-6">
<div class="pull-left">
<label>审核时间:</label>
</div>
<div class="pull-left">
<input id="auditBeginDate" name="auditBeginDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceHostCfg.auditBeginDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
<div class="pull-left">
<label><spring:message code="to"/></label>
</div>
<div class="pull-left">
<input id="auditEndDate" name="auditEndDate" type="text" readonly="readonly" maxlength="20" class="form-control input-small Wdate"
value="<fmt:formatDate value="${specificServiceHostCfg.auditEndDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
</div>
<h5 class="page-header"></h5>
<div class="row">
<div class="pull-left">
<button type="button" class="btn blue" onclick="page()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" onclick="resetx()"> <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
<th>协议id</th>
<th>源IP地址</th>
<th>源地址掩码</th>
<th>源端口</th>
<th>源端口掩码</th>
<th>目的IP地址</th>
<th>目的地址掩码</th>
<th>目的端口</th>
<th>目的端口掩码</th>
<th>方向</th>
<th>协议</th>
<th>是否审核</th>
<th>创建人员</th>
<th class="sort-column create_time">配置时间</th>
<th>修改人员</th>
<th class="sort-column edit_time">修改时间</th>
<th isVisible="false">审核人员</th>
<th isVisible="false" class="sort-column audit_time">审核时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="specificServiceHostCfg">
<tr>
<td><input type="checkbox" class="i-checks" name="check" id="${specificServiceHostCfg.hostId}" value="${specificServiceHostCfg.hostId}"></td>
<td>${specificServiceHostCfg.specServiceId }</td>
<td title="${specificServiceHostCfg.srcIp}">${fns:abbr(specificServiceHostCfg.srcIp,15)}</td>
<td title="${specificServiceHostCfg.srcIpMask}">${fns:abbr(specificServiceHostCfg.srcIpMask,15) }</td>
<td>${specificServiceHostCfg.srcPort}</td>
<td>${specificServiceHostCfg.srcPortMask}</td>
<td title="${specificServiceHostCfg.dstIp}">${fns:abbr(specificServiceHostCfg.dstIp,15) }</td>
<td title="${specificServiceHostCfg.dstIpMask}">${fns:abbr(specificServiceHostCfg.dstIpMask,15) }</td>
<td>${specificServiceHostCfg.dstPort }</td>
<td>${specificServiceHostCfg.dstPortMask }</td>
<td>${fns:getDictLabel("SPEC_DIRECTION",specificServiceHostCfg.direction,"0")}</td>
<td>${fns:getDictLabel("SPEC_PROTOCOL",specificServiceHostCfg.protocol,"0")}</td>
<td>${fns:getDictLabel("SPEC_AUDIT",specificServiceHostCfg.isAudit,"0")}</td>
<td>${fns:getUserById(specificServiceHostCfg.creator.id).name}</td>
<td><fmt:formatDate value="${specificServiceHostCfg.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${fns:getUserById(specificServiceHostCfg.editor.id).name}</td>
<td><fmt:formatDate value="${specificServiceHostCfg.editTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${fns:getUserById(specificServiceHostCfg.auditor.id==null?0:specificServiceHostCfg.auditor.id).name}</td>
<td><fmt:formatDate value="${specificServiceHostCfg.auditTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -68,131 +68,158 @@
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li><a href="${ctx}/sys/user/list">用户列表</a></li>
<li class="active"><a href="${ctx}/sys/user/form?id=${user.id}">用户
<shiro:hasPermission name="sys:user:edit"></shiro:hasPermission>${not empty user.id?'修改':'添加'}
<shiro:lacksPermission name="sys:user:edit">查看</shiro:lacksPermission>
</a></li>
</ul><br/>
<div class="page-content">
<div class="row">
<!-- <ul class="nav nav-tabs"> -->
<%-- <li><a href="${ctx}/sys/user/list">用户列表</a></li> --%>
<%-- <li class="active"><a href="${ctx}/sys/user/form?id=${user.id}">用户 --%>
<%-- <shiro:hasPermission name="sys:user:edit"></shiro:hasPermission>${not empty user.id?'修改':'添加'} --%>
<%-- <shiro:lacksPermission name="sys:user:edit">查看</shiro:lacksPermission> --%>
<!-- </a></li> -->
<!-- </ul><br/> -->
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="history.go(-1)"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
<spring:message code="userManage"/>
</h3>
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i><c:if test="${not empty user.id}"><spring:message code="edit"/></c:if><c:if test="${empty user.id}"><spring:message code="add"/></c:if></div>
</div>
<div class="portlet-body form">
<form:form id="inputForm" modelAttribute="sysUser" action="${ctx}/sys/user/saveOrUpdate" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="control-group">
<label class="control-label">头像:</label>
<div class="controls">
<div class="form-body">
<div class="form-group">
<label class="col-md-3 control-label">头像:</label>
<div class="col-md-4">
<form:hidden id="nameImage" path="photo" htmlEscape="false" maxlength="255" class="input-xlarge"/>
<sys:ckfinder input="nameImage" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
</div>
</div>
<div class="control-group">
<label class="control-label">登录名:</label>
<div class="controls">
<div class="form-group">
<label class="col-md-3 control-label">登录名:</label>
<div class="col-md-4">
<input id="oldLoginId" name="oldLoginId" type="hidden" value="${user.loginId}">
<c:if test="${not empty user.id}" var="exisitUser">
<form:input path="loginId" htmlEscape="false" maxlength="50" readonly="true" class="required userName"/>
<form:input path="loginId" htmlEscape="false" maxlength="50" readonly="true" class="required userName form-control"/>
</c:if>
<c:if test="${!exisitUser}">
<form:input path="loginId" htmlEscape="false" maxlength="50" class="required userName"/>
<form:input path="loginId" htmlEscape="false" maxlength="50" class="required userName form-control"/>
</c:if>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="control-group">
<label class="control-label">归属公司:</label>
<div class="controls">
<div class="form-group">
<label class="col-md-3 control-label">归属公司:</label>
<div class="col-md-4">
<sys:treeselect id="company" name="company.id" value="${user.company.id}" labelName="company.name" labelValue="${user.company.name}"
title="公司" url="/sys/office/treeData?type=1" cssClass="required" notAllowSelectRoot="true"/>
title="公司" url="/sys/office/treeData?type=1" cssClass="required form-control" notAllowSelectRoot="true"/>
</div>
</div>
<div class="control-group">
<label class="control-label">归属单位:</label>
<div class="controls">
<div class="form-group">
<label class="col-md-3 control-label">归属单位:</label>
<div class="col-md-4">
<sys:treeselect id="entity" name="entity.id" value="${user.entity.id}" labelName="entity.name" labelValue="${user.entity.name}"
title="单位" url="/sys/office/treeData?type=2" cssClass="required" notAllowSelectRoot="true"/>
title="单位" url="/sys/office/treeData?type=2" cssClass="required form-control" notAllowSelectRoot="true"/>
</div>
</div>
<div class="control-group">
<label class="control-label">归属部门:</label>
<div class="controls">
<div class="form-group">
<label class="col-md-3 control-label">归属部门:</label>
<div class="col-md-4">
<sys:treeselect id="office" name="office.id" value="${user.office.id}" labelName="office.name" labelValue="${user.office.name}"
title="部门" url="/sys/office/treeData?type=3" cssClass="required" notAllowSelectRoot="true"/>
title="部门" url="/sys/office/treeData?type=3" cssClass="required form-control" notAllowSelectRoot="true"/>
</div>
</div>
<div class="control-group">
<label class="control-label">姓名:</label>
<div class="controls">
<form:input path="name" htmlEscape="false" maxlength="50" class="required"/>
<span class="help-inline"><font color="red">*</font> </span>
<div class="form-group">
<label class="col-md-3 control-label">姓名:</label>
<div class="col-md-4">
<form:input path="name" htmlEscape="false" maxlength="50" class="required form-control"/>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="control-group">
<label class="control-label">密码:</label>
<div class="controls">
<input id="newPassword" name="newPassword" type="password" value="" maxlength="50" minlength="3" class="${empty user.id?'required':''}"/>
<div class="form-group">
<label class="col-md-3 control-label">密码:</label>
<div class="col-md-4">
<input id="newPassword" name="newPassword" type="password" value="" maxlength="50" minlength="3" class="${empty user.id?'required':''} form-control"/>
</div>
<c:if test="${empty user.id}"><span class="help-inline"><font color="red">*</font> </span></c:if>
<c:if test="${not empty user.id}"><span class="help-inline">若不修改密码,请留空。</span></c:if>
</div>
</div>
<div class="control-group">
<label class="control-label">确认密码:</label>
<div class="controls">
<input id="confirmNewPassword" name="confirmNewPassword" type="password" value="" maxlength="50" minlength="3" equalTo="#newPassword"/>
<c:if test="${empty user.id}"><span class="help-inline"><font color="red">*</font> </span></c:if>
<div class="form-group">
<label class="col-md-3 control-label">确认密码:</label>
<div class="col-md-4">
<input id="confirmNewPassword" name="confirmNewPassword" type="password" value="" maxlength="50" minlength="3" equalTo="#newPassword" class="form-control"/>
<c:if test="${empty user.id}"></c:if>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="control-group">
<label class="control-label">身份标识:</label>
<div class="controls">
<form:select path="identity" class="input-medium">
<div class="form-group">
<label class="col-md-3 control-label">身份标识:</label>
<div class="col-md-4 ">
<form:select path="identity" class="selectpicker select2 form-control">
<form:option value="0">普通人员</form:option>
<form:option value="1">管理人员</form:option>
</form:select>
<span class="help-inline">管理人员需指定身份标识为“管理人员”,否则影响信访审核流程!</span>
</div>
<span class="help-inline"><font>管理人员需指定身份标识为“管理人员”,否则影响审核流程!</font></span>
</div>
<div class="control-group">
<label class="control-label">邮箱:</label>
<div class="controls">
<form:input path="email" htmlEscape="false" maxlength="100" class="required email"/><span class="help-inline"><font color="red">*</font> </span>
<div class="form-group">
<label class="col-md-3 control-label">邮箱:</label>
<div class="col-md-4">
<form:input path="email" htmlEscape="false" maxlength="100" class="required email form-control"/>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="control-group">
<label class="control-label">用户角色:</label>
<div class="controls">
<form:checkboxes path="roleIdList" items="${allRoles}" itemLabel="name" itemValue="id" htmlEscape="false" class="required"/>
<span class="help-inline"><font color="red">*</font> </span>
<div class="form-group">
<label class="col-md-3 control-label">用户角色:</label>
<div class="col-md-8">
<form:checkboxes path="roleIdList" items="${allRoles}" itemLabel="name" itemValue="id" htmlEscape="false" class="required" style="vertical-align:middle;display:inline-block;margin-bottom:4px"/>
<span class="help-inline "><font color="red">*</font> </span>
</div>
</div>
<c:if test="${not empty user.id}">
<div class="control-group">
<label class="control-label">创建时间:</label>
<div class="controls">
<label class="lbl"><fmt:formatDate value="${user.createTime}" type="both" dateStyle="full"/></label>
<div class="form-group">
<label class="col-md-3 control-label">创建时间:</label>
<div class="col-md-4">
<label class="lbl form-control"><fmt:formatDate value="${user.createTime}" type="both" dateStyle="full"/></label>
</div>
</div>
</c:if>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<shiro:hasPermission name="sys:user:edit"></shiro:hasPermission>
<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;
<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
<button type="submit" class="btn btn-circle green"><spring:message code="submit"></spring:message></button>
<button type="button" class="btn btn-circle grey-salsa btn-outline" onclick="history.go(-1)"><spring:message code="cancel"></spring:message></button>
</div>
</div>
</div>
</form:form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -1,75 +1,114 @@
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<title>个人信息</title>
<script type="text/javascript">
$(document).ready(function() {
$("#inputForm").validate({
submitHandler: function(form){
loading('正在提交,请稍等...');
form.submit();
},
errorContainer: "#messageBox",
errorPlacement: function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
error.appendTo(element.parent().parent());
} else {
error.insertAfter(element);
}
}
<title>个人信息</title>
<script type="text/javascript">
$(document).ready(
function() {
$("#inputForm")
.validate(
{
submitHandler : function(form) {
loading('正在提交,请稍等...');
form.submit();
},
errorContainer : "#messageBox",
errorPlacement : function(error, element) {
$("#messageBox").text("输入有误,请先更正。");
if (element.is(":checkbox")
|| element.is(":radio")
|| element.parent().is(
".input-append")) {
error.appendTo(element.parent()
.parent());
} else {
error.insertAfter(element);
}
}
});
});
});
</script>
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/sys/user/info">个人信息</a></li>
<li><a href="${ctx}/sys/user/modifyPwd">修改密码</a></li>
</ul><br/>
<form:form id="inputForm" modelAttribute="user" action="${ctx}/sys/user/info" method="post" class="form-horizontal">
<sys:message content="${message}"/>
<div class="control-group">
<label class="control-label">头像:</label>
<div class="controls">
<form:hidden id="nameImage" path="photo" htmlEscape="false" maxlength="255" class="input-xlarge"/>
<sys:ckfinder input="nameImage" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
<div class="page-content">
<div class="row">
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/sys/user/info">个人信息</a></li>
<li><a href="${ctx}/sys/user/modifyPwd">修改密码</a></li>
</ul>
<br />
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
<spring:message code="userInfo" />
</div>
</div>
<div class="portlet-body form">
<form:form id="inputForm" modelAttribute="user"
action="${ctx}/sys/user/info" method="post"
class="form-horizontal form-striped">
<sys:message content="${message}" />
<div class="form-body">
<div class="form-group">
<label class="col-md-3 control-label">头像:</label>
<div class="col-md-4">
<form:hidden id="nameImage" path="photo" htmlEscape="false"
maxlength="255" class="input-xlarge" />
<sys:ckfinder input="nameImage" type="images"
uploadPath="/photo" selectMultiple="false" maxWidth="100"
maxHeight="100" />
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">姓名:</label>
<div class="col-md-4">
<form:input path="name" htmlEscape="false" maxlength="50"
class="required form-control" readonly="true" />
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">邮箱:</label>
<div class="col-md-4">
<form:input path="email" htmlEscape="false" maxlength="50"
class="email form-control" />
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">用户部门:</label>
<div class="col-md-4">
<label class="lbl control-label">${user.office.name}</label>
</div>
</div>
<div class="form-group">
<label class="col-md-3 control-label">用户角色:</label>
<div class="col-md-4">
<label class="lbl control-label">${user.roleNames}</label>
</div>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<button id="btnSubmit" type="submit" class="btn btn-primary">
<spring:message code="submit"></spring:message>
</button>
</div>
</div>
</div>
</form:form>
</div>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">姓名:</label>
<div class="controls">
<form:input path="name" htmlEscape="false" maxlength="50" class="required" readonly="true"/>
</div>
</div>
<div class="control-group">
<label class="control-label">邮箱:</label>
<div class="controls">
<form:input path="email" htmlEscape="false" maxlength="50" class="email"/>
</div>
</div>
<div class="control-group">
<label class="control-label">用户部门:</label>
<div class="controls">
<label class="lbl">${user.office.name}</label>
</div>
</div>
<div class="control-group">
<label class="control-label">用户角色:</label>
<div class="controls">
<label class="lbl">${user.roleNames}</label>
</div>
</div>
<div class="form-actions">
<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
</div>
</form:form>
</div>
</body>
</html>

View File

@@ -5,95 +5,199 @@
<title>用户管理</title>
<script type="text/javascript">
$(document).ready(function() {
$("#btnExport").click(function(){
top.$.jBox.confirm("确认要导出用户数据吗?","系统提示",function(v,h,f){
if(v=="ok"){
$("#searchForm").attr("action","${ctx}/sys/user/export");
$("#btnExport").click(function() {
top.$.jBox.confirm("确认要导出用户数据吗?", "系统提示", function(v, h, f) {
if (v == "ok") {
$("#searchForm").attr("action", "${ctx}/sys/user/export");
$("#searchForm").submit();
}
},{buttonsFocus:1});
top.$('.jbox-body .jbox-icon').css('top','55px');
}, {
buttonsFocus : 1
});
top.$('.jbox-body .jbox-icon').css('top', '55px');
});
$("#btnImport").click(function(){
$.jBox($("#importBox").html(), {title:"导入数据", buttons:{"关闭":true},
bottomText:"导入文件不能超过5M仅允许导入“xls”或“xlsx”格式文件"});
$("#btnImport").click(function() {
$.jBox($("#importBox").html(), {
title : "导入数据",
buttons : {
"关闭" : true
},
bottomText : "导入文件不能超过5M仅允许导入“xls”或“xlsx”格式文件"
});
});
});
function page(n,s){
if(n) $("#pageNo").val(n);
if(s) $("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/sys/user/list");
function page(n, s) {
if (n)
$("#pageNo").val(n);
if (s)
$("#pageSize").val(s);
$("#searchForm").attr("action", "${ctx}/sys/user/list");
$("#searchForm").submit();
return false;
}
return false;
}
</script>
</head>
<body>
<div id="importBox" class="hide">
<form id="importForm" action="${ctx}/sys/user/import" method="post" enctype="multipart/form-data"
class="form-search" style="padding-left:20px;text-align:center;" onsubmit="loading('正在导入,请稍等...');"><br/>
<input id="uploadFile" name="file" type="file" style="width:330px"/><br/><br/>  
<input id="btnImportSubmit" class="btn btn-primary" type="submit" value=" 导 入 "/>
<a href="${ctx}/sys/user/import/template">下载模板</a>
</form>
</div>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/sys/user/list">用户列表</a></li>
<shiro:hasPermission name="sys:user:edit"></shiro:hasPermission>
<li><a href="${ctx}/sys/user/form">用户添加</a></li>
</ul>
<form:form id="searchForm" modelAttribute="sysUser" action="${ctx}/sys/user/list" method="post" class="breadcrumb form-search ">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<ul class="ul-form">
<li><label>归属公司:</label><sys:treeselect id="company" name="company.id" value="${user.company.id}" labelName="company.name" labelValue="${user.company.name}"
title="公司" url="/sys/office/treeData?type=1" cssClass="input-small" allowClear="true"/></li>
<li><label>登录名:</label><form:input path="loginId" htmlEscape="false" maxlength="50" class="input-medium"/></li>
<li><label>姓&nbsp;&nbsp;&nbsp;名:</label><form:input path="name" htmlEscape="false" maxlength="50" class="input-medium"/></li>
<li class="clearfix"></li>
<li><label>归属部门:</label><sys:treeselect id="office" name="office.id" value="${user.office.id}" labelName="office.name" labelValue="${user.office.name}"
title="部门" url="/sys/office/treeData?type=3" cssClass="input-small" allowClear="true" notAllowSelectParent="true"/></li>
<li class="btns"><input id="btnSubmit" class="btn btn-primary" type="submit" value="查询" onclick="return page();"/>
<input id="btnImport" class="btn btn-success" type="button" value="导入"/>
<input id="btnExport" class="btn btn btn-inverse" type="button" value="导出"/>
<div class="page-content">
<div id="importBox" class="hide">
<form id="importForm" action="${ctx}/sys/user/import" method="post"
enctype="multipart/form-data" class="form-search"
style="padding-left: 20px; text-align: center;"
onsubmit="loading('正在导入,请稍等...');">
<br /> <input id="uploadFile" name="file" type="file"
style="width: 330px" /><br />
<br /> <input id="btnImportSubmit" class="btn btn-primary"
type="submit" value=" 导 入 " /> <a
href="${ctx}/sys/user/import/template">下载模板</a>
</form>
</div>
<!-- <ul class="nav nav-tabs"> -->
<%-- <li class="active"><a href="${ctx}/sys/user/list">用户列表</a></li> --%>
<%-- <shiro:hasPermission name="sys:user:edit"></shiro:hasPermission> --%>
<%-- <li><a href="${ctx}/sys/user/form">用户添加</a></li> --%>
<!-- </ul> -->
<shiro:hasPermission name="sys:user:edit">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/sys/user/list'"><spring:message code="refresh"></spring:message></button>
<button type="button" class="btn btn-primary"
onClick="javascript:window.location='${ctx}/sys/user/form'">
<i class="fa fa-plus"></i>
<spring:message code="add" />
</button>
</div>
</shiro:hasPermission>
<h3 class="page-title">
<spring:message code="userManage"></spring:message>
<small><spring:message code="date_list" /></small>
</h3>
<h5 class="page-header"></h5>
<!-- 筛选搜索内容栏默认隐藏-->
<div class="row">
<div class="col-md-12">
<form:form id="searchForm" modelAttribute="sysUser"
action="${ctx}/sys/user/list" method="post" class="form-search ">
<input id="pageNo" name="pageNo" type="hidden"
value="${page.pageNo}" />
<input id="pageSize" name="pageSize" type="hidden"
value="${page.pageSize}" />
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}"
callback="page();" />
<div class="col-md-12 filter-action-select-panle"
style="background-color: transparent">
<div class="row">
<div class="col-md-3">
<div class="pull-left">
<label>归属公司:</label>
</div>
<div class="pull-left">
<sys:treeselect id="company" name="company.id"
value="${user.company.id}" labelName="company.name"
labelValue="${user.company.name}" title="公司"
url="/sys/office/treeData?type=1" cssClass="form-control"
allowClear="true"/>
</div>
</div>
<div class="col-md-3">
<div class="pull-left">
<label>登录名:</label>
</div>
<div class="pull-left">
<form:input path="loginId" htmlEscape="false" maxlength="50"
class="form-control" />
</div>
</div>
<div class="col-md-3">
<div class="pull-left">
<label>姓名:</label>
</div>
<div class="pull-left">
<form:input path="name" htmlEscape="false" maxlength="50"
class="form-control" />
</div>
</div>
<div class="col-md-3">
<div class="pull-left">
<label>归属部门:</label>
</div>
<div class="pull-left">
<sys:treeselect id="office" name="office.id" value="${user.office.id}" labelName="office.name"
labelValue="${user.office.name}" title="部门"
url="/sys/office/treeData?type=3" cssClass="form-control" allowClear="true"
notAllowSelectParent="true"/>
</div>
</div>
</div>
<div class="row">
<div class="pull-left">
<button type="submit" class="btn blue" onclick="return page();">
<i class="fa fa-search"></i>
<spring:message code="search" />
</button>
<button type="reset" class="btn btn-default">
<i class="fa fa-refresh"></i>
<spring:message code="reset" />
</button>
</div>
</div>
</div>
</form:form>
</div>
</div>
<sys:message content="${message}" />
<table id="contentTable"
class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>所属公司</th>
<th>所属部门</th>
<th class="sort-column login_id">登录名</th>
<th class="sort-column name">姓名</th>
<th>身份标识</th>
<th>邮箱</th>
<th>创建时间</th>
<%--<th>角色</th> --%>
<shiro:hasPermission name="sys:user:edit">
<th>操作</th>
</shiro:hasPermission>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="user">
<tr>
<td>${user.company.name}</td>
<td>${fns:getOfficeDesc(user.office.id)}</td>
<td><a href="${ctx}/sys/user/form?id=${user.id}">${user.loginId}</a></td>
<td>${user.name}</td>
<td>${user.identity eq 1 ?'信访办':'办理人员'}</td>
<td>${user.email}</td>
<td><fmt:formatDate value="${user.createTime}"
pattern="yyyy-MM-dd HH:mm:ss" /></td>
<shiro:hasPermission name="sys:user:edit"></shiro:hasPermission>
<td><a href="${ctx}/sys/user/form?id=${user.id}">修改</a> <a
href="${ctx}/sys/user/delete?id=${user.id}"
onclick="return confirmx('确认要删除该用户吗?', this.href)">删除</a></td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</li>
<li class="clearfix"></li>
</ul>
</form:form>
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<thead><tr><th>所属公司</th><th>所属部门</th><th class="sort-column login_id">登录名</th><th class="sort-column name">姓名</th><th>身份标识</th><th>邮箱</th><th>创建时间</th><%--<th>角色</th> --%><shiro:hasPermission name="sys:user:edit"><th>操作</th></shiro:hasPermission></tr></thead>
<tbody>
<c:forEach items="${page.list}" var="user">
<tr>
<td>${user.company.name}</td>
<td>${fns:getOfficeDesc(user.office.id)}</td>
<td><a href="${ctx}/sys/user/form?id=${user.id}">${user.loginId}</a></td>
<td>${user.name}</td>
<td>${user.identity eq 1 ?'信访办':'办理人员'}</td>
<td>${user.email}</td>
<td><fmt:formatDate value="${user.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<shiro:hasPermission name="sys:user:edit"></shiro:hasPermission>
<td>
<a href="${ctx}/sys/user/form?id=${user.id}">修改</a>
<a href="${ctx}/sys/user/delete?id=${user.id}" onclick="return confirmx('确认要删除该用户吗?', this.href)">删除</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="pagination">${page}</div>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<html>
<head>
<title>修改密码</title>
<script type="text/javascript">
<script type="text/javascript">
$(document).ready(function() {
$("#oldPassword").focus();
$("#inputForm").validate({
@@ -30,37 +30,61 @@
</script>
</head>
<body>
<div class="page-content">
<div class="row">
<ul class="nav nav-tabs">
<li><a href="${ctx}/sys/user/info">个人信息</a></li>
<li class="active"><a href="${ctx}/sys/user/modifyPwd">修改密码</a></li>
</ul><br/>
<div class="col-md-12">
<div class="portlet box blue">
<div class="portlet-title">
<div class="caption">
<i class="fa fa-gift"></i>
<spring:message code="updatePwd" />
</div>
</div>
<div class="portlet-body form">
<form:form id="inputForm" modelAttribute="user" action="${ctx}/sys/user/modifyPwd" method="post" class="form-horizontal">
<form:hidden path="id"/>
<sys:message content="${message}"/>
<div class="control-group">
<label class="control-label">旧密码:</label>
<div class="controls">
<input id="oldPassword" name="oldPassword" type="password" value="" maxlength="50" minlength="3" class="required"/>
<span class="help-inline"><font color="red">*</font> </span>
<div class="form-body">
<div class="form-group">
<label class="col-md-3 control-label">旧密码:</label>
<div class="col-md-4">
<input id="oldPassword" name="oldPassword" type="password" value="" maxlength="50" minlength="3" class="required form-control"/>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="control-group">
<label class="control-label">新密码:</label>
<div class="controls">
<input id="newPassword" name="newPassword" type="password" value="" maxlength="50" minlength="3" class="required"/>
<span class="help-inline"><font color="red">*</font> </span>
<div class="form-group">
<label class="col-md-3 control-label">新密码:</label>
<div class="col-md-4">
<input id="newPassword" name="newPassword" type="password" value="" maxlength="50" minlength="3" class="required form-control"/>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="control-group">
<label class="control-label">确认新密码:</label>
<div class="controls">
<input id="confirmNewPassword" name="confirmNewPassword" type="password" value="" maxlength="50" minlength="3" class="required" equalTo="#newPassword"/>
<span class="help-inline"><font color="red">*</font> </span>
<div class="form-group">
<label class="col-md-3 control-label">确认新密码:</label>
<div class="col-md-4">
<input id="confirmNewPassword" name="confirmNewPassword" type="password" value="" maxlength="50" minlength="3" class="required form-control" equalTo="#newPassword"/>
</div>
<span class="help-inline"><font color="red">*</font> </span>
</div>
<div class="form-actions">
<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
<div class="row">
<div class="col-md-offset-3 col-md-9">
<button id="btnSubmit" type="submit" class="btn btn-primary">
<spring:message code="submit"></spring:message>
</button>
</div>
</div>
</div>
</div>
</form:form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -21574,5 +21574,39 @@ Color library demo
margin-right: 3px;
}
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ*/
.sort-column {
cursor: pointer;
}
.sort-column i {
top: 2px;
position: relative;
display: inline-table;
}
.sort-icon {
width: 9px;
height: 13px;
background-image: url('../img/bee.png');
background-position: -232px -59px;
}
.sort-icon-down {
width: 9px;
height: 12px;
background-image: url('../img/bee.png');
background-position: -232px -73px;
}
.sort-icon-up {
width: 9px;
height: 13px;
background-image: url('../img/bee.png');
background-position: -232px -86px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -0,0 +1,254 @@
Bootstrap 3 Typeahead
=====================
For simple autocomplete use cases there seems to be nothing wrong with the dropped typeahead plugin. Here you will find the typeahead autocomplete plugin for Twitter's Bootstrap 2 ready to use with Twitter's Bootstrap 3. The original code is written by [@mdo](http://twitter.com/mdo) and [@fat](http://twitter.com/fat).
Users who migrate their website or app from Twitter's Bootstrap 2 to Bootstrap 3 can also use this plugin to keep their current autocomplete functions. See for a complete list of migrations steps: [Migrate your templates from Twitter Bootstrap 2.x to Twitter Bootstrap 3](http://bassjobsen.weblogs.fm/migrate-your-templates-from-twitter-bootstrap-2-x-to-twitter-bootstrap-3/)
With Twitter Bootstrap 3 the typeahead plugin had been dropped. [@mdo](http://twitter.com/mdo) says: "in favor of folks using [Twitter's typeahead](https://github.com/twitter/typeahead.js). Twitter's typeahead has more features than the old bootstrap-typeahead.js and less bugs." Twitter's typeahead don't work direct with Bootstrap 3. The DOM structure of the dropdown menu used by `typeahead.js` differs from the DOM structure of the Bootstrap dropdown menu. You'll need to load some additional CSS in order to get the `typeahead.js` dropdown menu to fit the default Bootstrap theme. Try [extended Bootstrap LESS](https://github.com/bassjobsen/typeahead.js-bootstrap-css) or if your are looking for a more extended version try: [typeahead.js-bootstrap3.less](https://github.com/hyspace/typeahead.js-bootstrap3.less/blob/master/typeahead.less).
~~`Typeahead.js` doesn't seem ready for the new Twitter Bootstrap 3 at the moment. Code is not up to date and fixes are needed. See also:
[Typeahead problems with Bootstrap 3.0 RC1](http://stackoverflow.com/questions/18167246/typeahead-problems-with-bootstrap-3-0-rc1).~~
Download
========
- Download the latest [bootstrap3-typeahead.js](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.js) or [bootstrap3-typeahead.min.js](https://github.com/bassjobsen/Bootstrap-3-Typeahead/blob/master/bootstrap3-typeahead.min.js).
- Include it in your source after jQuery and Bootstrap's JavaScript.
Full integration with Bootstrap 3 Typeahead
-------------------------------------------
Download the latest version of Boostrap from [Bootstrap](https://github.com/twbs/bootstrap/archive/master.zip). Copy `bootstrap3-typeahead.js` to the js/ folder. Edit `gruntfile.js` and add `bootstrap3-typeahead.js` to the plugins list.
Build your own version with typeahead with `grunt dist`.
CSS
===
There is no additional CSS required to use the plugin. Bootstrap's CSS contains all required styles in the `.dropdown-menu` class. The original CSS adds a `z-index` of 1051 to the dropdownmenu via the typeahead class. You could add this if you need it.
`.typeahead { z-index: 1051; }` (less or css).
Usage
=====
<input type="text" data-provide="typeahead">
You'll want to set `autocomplete="off"` to prevent default browser menus from appearing over the Bootstrap typeahead dropdown.
Via data attributes
-------------------
Add data attributes to register an element with typeahead functionality as shown in the example above.
Via JavaScript
--------------
Call the typeahead manually with:
$('.typeahead').typeahead()
Destroys previously initialized typeaheads. This entails reverting DOM modifications and removing event handlers:
$('.typeahead').typeahead('destroy')
Javascript Example
=============
Loading a collection
--------------------
$.get('example_collection.json', function(data){
$("#name").typeahead({ source:data });
},'json');
//example_collection.json
// ["item1","item2","item3"]
Using JSON objects instead of simple strings
--------------------------------------------
You can add all the properties you wish on your objects, as long as you provide a "name" attribute OR you provide your own displayText method. The other values allow you to match the selected item with something in your model.
var $input = $('.typeahead');
$input.typeahead({source:[{id: "someId1", name: "Display name 1"},
{id: "someId2", name: "Display name 2"}],
autoSelect: true});
$input.change(function() {
var current = $input.typeahead("getActive");
if (current) {
// Some item from your model is active!
if (current.name == $input.val()) {
// This means the exact match is found. Use toLowerCase() if you want case insensitive match.
} else {
// This means it is only a partial match, you can either add a new item
// or take the active if you don't want new items
}
} else {
// Nothing is active so it is a new value (or maybe empty value)
}
});
Options
=======
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-source=""`.
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 50px;">Type</th>
<th style="width: 100px;">Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>source</td>
<td>array, function</td>
<td>[ ]</td>
<td>The data source to query against. May be an array of strings, an array of JSON object with a name property or a function. The function accepts two arguments, the <code>query</code> value in the input field and the <code>process</code> callback. The function may be used synchronously by returning the data source directly or asynchronously via the <code>process</code> callback's single argument.</td>
</tr>
<tr>
<td>items</td>
<td>number</td>
<td>8</td>
<td>The max number of items to display in the dropdown. Can also be set to 'all'</td>
</tr>
<tr>
<td>minLength</td>
<td>number</td>
<td>1</td>
<td>The minimum character length needed before triggering autocomplete suggestions. You can set it to 0 so suggestion are shown even when there is no text when lookup function is called.</td>
</tr>
<tr>
<td>showHintOnFocus</td>
<td>boolean</td>
<td>false</td>
<td>If hints should be shown when applicable as soon as the input gets focus.</td>
</tr>
<tr>
<td>scrollHeight</td>
<td>number, function</td>
<td>0</td>
<td>Number of pixels the scrollable parent container scrolled down (scrolled out the viewport).</td>
</tr>
<tr>
<td>matcher</td>
<td>function</td>
<td>case insensitive</td>
<td>The method used to determine if a query matches an item. Accepts a single argument, the <code>item</code> against which to test the query. Access the current query with <code>this.query</code>. Return a boolean <code>true</code> if query is a match.</td>
</tr>
<tr>
<td>sorter</td>
<td>function</td>
<td>exact match,<br> case sensitive,<br> case insensitive</td>
<td>Method used to sort autocomplete results. Accepts a single argument <code>items</code> and has the scope of the typeahead instance. Reference the current query with <code>this.query</code>.</td>
</tr>
<tr>
<td>updater</td>
<td>function</td>
<td>returns selected item</td>
<td>The method used to return selected item. Accepts a single argument, the <code>item</code> and has the scope of the typeahead instance.</td>
</tr>
<tr>
<td>highlighter</td>
<td>function</td>
<td>highlights all default matches</td>
<td>Method used to highlight autocomplete results. Accepts a single argument <code>item</code> and has the scope of the typeahead instance. Should return html.</td>
</tr>
<tr>
<td>displayText</td>
<td>function</td>
<td>item.name || item</td>
<td>Method used to get textual representation of an item of the sources. Accepts a single argument <code>item</code> and has the scope of the typeahead instance. Should return a String.</td>
</tr>
<tr>
<td>autoSelect</td>
<td>boolean</td>
<td>true</td>
<td>Allows you to dictate whether or not the first suggestion is selected automatically. Turning autoselect off also means that the input won't clear if nothing is selected and <kbd>enter</kbd> or <kbd>tab</kbd> is hit.</td>
</tr>
<tr>
<td>afterSelect</td>
<td>function</td>
<td>$.noop()</td>
<td>Call back function to execute after selected an item. It gets the current active item in parameter if any.</td>
</tr>
<tr>
<td>delay</td>
<td>integer</td>
<td>0</td>
<td>Adds a delay between lookups.</td>
</tr>
<tr>
<tr>
<td>addItem</td>
<td>JSON object</td>
<td>false</td>
<td>Adds an item to the end of the list, for example "New Entry". This could be used, for example, to pop a dialog when an item is not found in the list of data. Example: <a href="http://cl.ly/image/2u170I1q1G3A/addItem.png">http://cl.ly/image/2u170I1q1G3A/addItem.png</a></td>
</tbody>
</table>
Methods
=======
.typeahead(options): Initializes an input with a typeahead.
.lookup: To trigger the lookup function externally
.getActive: To get the currently active item, you will get a String or a JSOn object depending on how you initialized typeahead. Works only for the first match.
Bower
=====
To use with [Bower](http://bower.io/). Add to your bower.json file:
{
"name": "MyProject",
"dependencies": {
"bootstrap3-typeahead": "git@github.com:bassjobsen/Bootstrap-3-Typeahead.git#master"
}
}
Bloodhound
==========
[Bloodhound](https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md) is the [typeahead.js](https://github.com/twitter/typeahead.js) suggestion engine, since version 0.10.0. Bloodhound is robust, flexible, and offers advanced functionalities such as prefetching, intelligent caching, fast lookups, and backfilling with remote data. To use Bloodhound with Bootstrap-3-Typeahead:
// instantiate the bloodhound suggestion engine
var numbers = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
local: ["(A)labama","Alaska","Arizona","Arkansas","Arkansas2","Barkansas"]
});
// initialize the bloodhound suggestion engine
numbers.initialize();
$('.typeahead').typeahead(
{
items: 4,
source:numbers.ttAdapter()
});
Bootstrap Tags Input
====================
[Bootstrap Tags Input](http://timschlechter.github.io/bootstrap-tagsinput/examples/) is a jQuery plugin providing a Twitter Bootstrap user interface for managing tags. Bootstrap Tags Input has a typeahead option which allows you to set the source:
$('input').tagsinput({
typeahead: {
source: ['Amsterdam', 'Washington', 'Sydney', 'Beijing', 'Cairo']
}
});
or
$('input').tagsinput({
typeahead: {
source: function(query) {
return $.get('http://someservice.com');
}
}
});
See also: https://github.com/bassjobsen/Bootstrap-3-Typeahead/issues/40

File diff suppressed because one or more lines are too long

View File

@@ -591,16 +591,32 @@
width: 350,
height: 'auto',
bottomText: '',
buttons: { '确定': 'ok' },
buttons: { 'ok': 'ok' },
buttonsFocus: 0,
loaded: function (h) { },
submit: function (v, h, f) { return true; },
closed: function () { }
};
$.jBox.stateDefaults = { content: '', buttons: { '确定': 'ok' }, buttonsFocus: 0, submit: function (v, h, f) { return true; } };
//国际化切换
var type=navigator.appName;
if(type=="Netscape"){
var lang = navigator.language;//获取浏览器语言配置支持非IE
}else{
var lang = navigator.userLanguage;//支持IE
}
var lang = lang.toLowerCase();
if(lang.indexOf("zh")!=-1) {
$.jBox.stateDefaults = { content: '', buttons: { '确定': 'ok' }, buttonsFocus: 0, submit: function (v, h, f) { return true; } };
$.jBox.languageDefaults = { close: '关闭', ok: '确定', yes: '是', no: '否', cancel: '取消' };
}else{
$.jBox.stateDefaults = { content: '', buttons: { 'ok': 'ok' }, buttonsFocus: 0, submit: function (v, h, f) { return true; } };
$.jBox.languageDefaults = { close: 'close', ok: 'ok', yes: 'yes', no: 'no', cancel: 'cancel' };
}
$.jBox.tipDefaults = { content: '', icon: 'info', top: '40%', width: 'auto', height: 'auto', opacity: 0, timeout: 3000, closed: function () { } };
$.jBox.messagerDefaults = { content: '', title: 'jBox', icon: 'none', width: 350, height: 'auto', timeout: 3000, showType: 'slide', showSpeed: 600, border: 0, buttons: {}, buttonsFocus: 0, loaded: function () { }, submit: function (v, h, f) { return true; }, closed: function () { } };
$.jBox.languageDefaults = { close: '关闭', ok: '确定', yes: '是', no: '否', cancel: '取消' };
$.jBox.setDefaults = function (configs) {
$.jBox.defaults = $.extend({}, $.jBox.defaults, configs.defaults);

View File

@@ -1,19 +0,0 @@
Copyright (c) 2013-2014 Twitter, Inc
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -1,188 +0,0 @@
[![build status](https://secure.travis-ci.org/twitter/typeahead.js.png?branch=master)](http://travis-ci.org/twitter/typeahead.js)
[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)
[typeahead.js][gh-page]
=======================
Inspired by [twitter.com]'s autocomplete search functionality, typeahead.js is
a flexible JavaScript library that provides a strong foundation for building
robust typeaheads.
The typeahead.js library consists of 2 components: the suggestion engine,
[Bloodhound], and the UI view, [Typeahead].
The suggestion engine is responsible for computing suggestions for a given
query. The UI view is responsible for rendering suggestions and handling DOM
interactions. Both components can be used separately, but when used together,
they can provide a rich typeahead experience.
<!-- section links -->
[gh-page]: http://twitter.github.io/typeahead.js/
[twitter.com]: https://twitter.com
[Bloodhound]: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
[Typeahead]: https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
Getting Started
---------------
How you acquire typeahead.js is up to you.
Preferred method:
* Install with [Bower]: `$ bower install typeahead.js`
Other methods:
* [Download zipball of latest release][zipball].
* Download the latest dist files individually:
* *[bloodhound.js]* (standalone suggestion engine)
* *[typeahead.jquery.js]* (standalone UI view)
* *[typeahead.bundle.js]* (*bloodhound.js* + *typeahead.jquery.js*)
* *[typeahead.bundle.min.js]*
**Note:** both *bloodhound.js* and *typeahead.jquery.js* have a dependency on
[jQuery] 1.9+.
<!-- section links -->
[Bower]: http://bower.io/
[zipball]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.js.zip
[bloodhound.js]: http://twitter.github.com/typeahead.js/releases/latest/bloodhound.js
[typeahead.jquery.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.jquery.js
[typeahead.bundle.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.js
[typeahead.bundle.min.js]: http://twitter.github.com/typeahead.js/releases/latest/typeahead.bundle.min.js
[jQuery]: http://jquery.com/
Documentation
-------------
* [Typeahead Docs]
* [Bloodhound Docs]
[Typeahead Docs]: https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md
[Bloodhound Docs]: https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md
Examples
--------
For some working examples of typeahead.js, visit the [examples page].
<!-- section links -->
[examples page]: http://twitter.github.io/typeahead.js/examples
Browser Support
---------------
* Chrome
* Firefox 3.5+
* Safari 4+
* Internet Explorer 7+
* Opera 11+
**NOTE:** typeahead.js is not tested on mobile browers.
Customer Support
----------------
For general questions about typeahead.js, tweet at [@typeahead].
For technical questions, you should post a question on [Stack Overflow] and tag
it with [typeahead.js][so tag].
<!-- section links -->
[Stack Overflow]: http://stackoverflow.com/
[@typeahead]: https://twitter.com/typeahead
[so tag]: http://stackoverflow.com/questions/tagged/typeahead.js
Issues
------
Discovered a bug? Please create an issue here on GitHub!
https://github.com/twitter/typeahead.js/issues
Versioning
----------
For transparency and insight into our release cycle, releases will be numbered
with the follow format:
`<major>.<minor>.<patch>`
And constructed with the following guidelines:
* Breaking backwards compatibility bumps the major
* New additions without breaking backwards compatibility bumps the minor
* Bug fixes and misc changes bump the patch
For more information on semantic versioning, please visit http://semver.org/.
Testing
-------
Tests are written using [Jasmine] and ran with [Karma]. To run
the test suite with PhantomJS, run `$ npm test`.
<!-- section links -->
[Jasmine]: http://pivotal.github.com/jasmine/
[Karma]: http://karma-runner.github.io/
Developers
----------
If you plan on contributing to typeahead.js, be sure to read the
[contributing guidelines]. A good starting place for new contributors are issues
labeled with [entry-level]. Entry-level issues tend to require minor changes
and provide developers a chance to get more familiar with typeahead.js before
taking on more challenging work.
In order to build and test typeahead.js, you'll need to install its dev
dependencies (`$ npm install`) and have [grunt-cli]
installed (`$ npm install -g grunt-cli`). Below is an overview of the available
Grunt tasks that'll be useful in development.
* `grunt build` Builds *typeahead.js* from source.
* `grunt lint` Runs source and test files through JSHint.
* `grunt watch` Rebuilds *typeahead.js* whenever a source file is modified.
* `grunt server` Serves files from the root of typeahead.js on localhost:8888.
Useful for using *test/playground.html* for debugging/testing.
* `grunt dev` Runs `grunt watch` and `grunt server` in parallel.
<!-- section links -->
[contributing guidelines]: https://github.com/twitter/typeahead.js/blob/master/CONTRIBUTING.md
[entry-level]: https://github.com/twitter/typeahead.js/issues?&labels=entry-level&state=open
[grunt-cli]: https://github.com/gruntjs/grunt-cli
Maintainers
-----------
* **Jake Harding**
* [@JakeHarding](https://twitter.com/JakeHarding)
* [GitHub](https://github.com/jharding)
* **You?**
Authors
-------
* **Jake Harding**
* [@JakeHarding](https://twitter.com/JakeHarding)
* [GitHub](https://github.com/jharding)
* **Veljko Skarich**
* [@vskarich](https://twitter.com/vskarich)
* [GitHub](https://github.com/vskarich)
* **Tim Trueman**
* [@timtrueman](https://twitter.com/timtrueman)
* [GitHub](https://github.com/timtrueman)
License
-------
Copyright 2013 Twitter, Inc.
Licensed under the MIT License

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,68 +0,0 @@
.twitter-typeahead {
width: 100%;
display: table !important;
}
.twitter-typeahead .form-control {
margin: 0 !important;
}
.tt-hint,
.tt-input {
color: #999;
font-size: 14px;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.428571429;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.tt-hint[disabled] {
background-color: #fff !important;
}
.tt-menu {
min-width: 160px;
margin-top: 2px;
padding: 5px 0;
background-color: #fff;
border: 1px solid #ebebeb;
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
background-clip: padding-box;
width: 100%;
overflow-y: auto;
max-height: 250px;
}
.tt-menu h3 {
margin: 5px 0;
padding: 6px 12px;
font-size: 18px;
font-weight: 700;
border-bottom: 1px solid #eee;
}
.modal-open .tt-menu {
z-index: 10055 !important;
}
.tt-suggestion {
padding: 6px 12px;
font-size: 14px;
line-height: 16px;
}
.tt-suggestion:hover {
cursor: pointer;
background: #eee;
}
.tt-suggestion p {
margin: 0;
}

File diff suppressed because one or more lines are too long

View File

@@ -325,13 +325,13 @@ function filterActionInit() {
function fiterPanleShow() {
$("#filter-btn").find("i").removeClass("fa-angle-double-down").addClass("fa-angle-double-up");
$(".btn-search").addClass("hide");
//$(".btn-search").addClass("hide");
$(".filter-action-select-panle").removeClass("hide");
}
function fiterPanleHide() {
$("#filter-btn").find("i").removeClass("fa-angle-double-up").addClass("fa-angle-double-down");
$(".btn-search").removeClass("hide");
//$(".btn-search").removeClass("hide");
$(".filter-action-select-panle").addClass("hide");
}

View File

@@ -945,7 +945,7 @@
background:0 0;
margin:0;
padding:0;
margin-top:1px!important
margin-top:2px!important
}
.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a {
display:block;
@@ -968,7 +968,8 @@
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu {
margin:0
}
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a {
.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.su
b-menu>li>.sub-menu>li>a {
padding-left:80px
}
.page-sidebar .page-sidebar-menu .sub-menu.always-open,.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu.always-open,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu {
@@ -989,7 +990,7 @@
padding-bottom:8px
}
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child {
margin-top:0!important
}
.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a {
padding-left:15px;

View File

@@ -260,8 +260,9 @@
/* All links */ }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a,
.page-sidebar .page-sidebar-menu > li > a {
border-top: 1px solid #484848;
color: #d9d9d9; }
color: #fff;
border-top: 1px solid #484848 !important;
}
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu > li > a > i,
.page-sidebar .page-sidebar-menu > li > a > i {
color: #888888; }
@@ -324,7 +325,7 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li > a > .arrow.open:before,
.page-sidebar .page-sidebar-menu li > a > .arrow:before,
.page-sidebar .page-sidebar-menu li > a > .arrow.open:before {
color: #777777; }
color: #fff; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover > a > .arrow.open:before,
.page-sidebar .page-sidebar-menu li:hover > a > .arrow:before,
.page-sidebar .page-sidebar-menu li:hover > a > .arrow.open:before {
@@ -350,7 +351,7 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow:before, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li > a > .arrow.open:before,
.page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow:before,
.page-sidebar .page-sidebar-menu .sub-menu > li > a > .arrow.open:before {
color: #777777; }
color: #fff; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.open > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu > li.active > a,
.page-sidebar .page-sidebar-menu .sub-menu > li:hover > a,
.page-sidebar .page-sidebar-menu .sub-menu > li.open > a,
@@ -376,18 +377,20 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li:hover > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.open > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li:hover > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.open > a {
background: #424242; }
background: #303030; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {
background: #474747;
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a {
background: #303030;
border-left: 4px solid #d64635;
color: #f1f1f1; }
color: #f1f1f1;
}
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a {
background: #303030;}
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a:hover,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a:hover {
border-left: 4px solid #d64635;
background: #424242; }
background: #303030; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i, .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active > a > i,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li.active.open > a > i {
@@ -405,7 +408,8 @@
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li:hover > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.open > a,
.page-sidebar .page-sidebar-menu.page-sidebar-menu-light > li .sub-menu > li.active > a {
background: #474747 !important; }
color: #ffffff !important;
background: #575757 !important; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler,
.page-sidebar .sidebar-toggler {
background: #303030; }
@@ -432,10 +436,10 @@
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group,
.page-sidebar .sidebar-search .input-group {
border-bottom: 1px solid #484848; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,
.page-sidebar-closed.pagek-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control,
.page-sidebar .sidebar-search .input-group .form-control {
background-color: #3d3d3d;
color: #5c5c5c; }
color: #fffdfd; }
.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder,
.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder {
color: #5c5c5c;

View File

@@ -175,7 +175,7 @@ var Layout = function () {
'scrollTo': (the.position()).top
});
} else {
App.scrollTo(the, slideOffeset);
//App.scrollTo();
}
}
handleSidebarAndContentHeight();
@@ -190,7 +190,7 @@ var Layout = function () {
'scrollTo': (the.position()).top
});
} else {
App.scrollTo(the, slideOffeset);
//App.scrollTo(the, slideOffeset);
}
}
handleSidebarAndContentHeight();

View File

@@ -39,6 +39,31 @@ var home = function () {
}
//点击顶部菜单,默认展开左侧菜单,如果左侧菜单已有被选中的则忽视
var left_menu_lis = $(menuId).find("li");
if(!(left_menu_lis.hasClass("active") ||
left_menu_lis.hasClass("open"))) {
var $li1 = $(menuId).find("li:first");
var $li2 = $(menuId).find("li:first").find("li:first");
var hasSubMenu1 = $li1.children().hasClass('sub-menu');
if(hasSubMenu1) {
$li1.addClass('open');
$li1.find('> a > .arrow').addClass('open');
$li1.find('> .sub-menu').slideDown();
var hasSubMenu2 = $li2.children().hasClass('sub-menu');
if(hasSubMenu2) {
$li2.addClass('open');
$li2.find('> a > .arrow').addClass('open');
$li2.find('> .sub-menu').slideDown();
}
}
}
})