Commit da21280b authored by ms-dev's avatar ms-dev
Browse files

配置文件更新

parent 33bb27de
<!DOCTYPE html>
<html lang="en">
<head>
<META HTTP-EQUIV="Refresh" CONTENT="120">
</head>
<body>
***><***
</body>
</html>
\ No newline at end of file
<@ms.html5>
<@ms.nav title="角色设置" back=true>
<@ms.saveButton id="save"/>
<@ms.resetButton id="reset" value="重置" onclick=" " />
</@ms.nav>
<@ms.panel>
<@ms.form isvalidation=true name="saveRoleFrom" style="width: 55%" action="">
<@ms.text name="roleName" label="角色名称:" title="角色名称" maxlength="30" validation={"required":"true", "data-bv-notempty-message":"请填写标题"}/>
<#if flag == false><input type="hidden" name="roleId" value="${role.roleId}"/><input type="hidden" id="oldRoleName" name="oldRoleName" value="${role.roleName}"/></#if>
<!-- 树形模块菜单开始 -->
<#if listModel?has_content>
<@ms.tree label="模块列表:" treeId="tree" json="${listModel?default('')}" jsonId="modelId" jsonPid="modelModelId" jsonName="modelTitle" showIcon="true" expandAll="true" ischeck="true"/>
<#else>
<@ms.treeInput treeId="errorTree" buttonText="暂无数据"/>
</#if>
<!-- 树形模块菜单结束 -->
</@ms.form>
<#if !listModel?has_content>
<@ms.nodata/>
</#if>
</@ms.panel>
</@ms.html5>
<script type="text/javascript">
<#if flag == true>
$("input[name='roleName']").attr("placeholder","请输入角色名称")
<#else>
$("input[name='roleName']").val("${role.roleName}");
</#if>
$(function () {
//前端验证角色名称是否存在
$("input[name='roleName']").blur(function(){
var oldRoleName = $("#oldRoleName").length;
var roleName = $(this).val();
if((oldRoleName != 0 && $("#oldRoleName").val() != roleName) || (oldRoleName == 0)){
$.ajax({
type: "post",
dataType: "json",
url: "${managerPath}/role/judgeRoleNameExist.do",
data: "roleName=" + roleName,
success: function(msg){
if(msg){
<@ms.notify msg= "该角色名称已存在,请再次输入" type= "warning" />
$("input[name='roleName']").val(null);
}
}
});
}
});
//点击重置按钮取消树形菜单的选中
$("#reset").click(function(){
zTreeObjtree.checkAllNodes(false);
});
//更新角色时勾选出该角色所拥有的模块
var nodes = zTreeObjtree.transformToArray(zTreeObjtree.getNodes());
<#if listSelModel?has_content>
<#list listSelModel as selModel>
for(i=0; i<nodes.length; i++){
if(nodes[i].modelId==${selModel.modelId}){
zTreeObjtree.checkNode(nodes[i], true, false);
}
}
</#list>
</#if>
//声明需要获取的树形菜单的每一个子节点的id
var modelId = new Array();
//保存按钮点击提交表单
$("#save").click(function(){
if($("#saveRoleFrom").data('bootstrapValidator').validate().isValid()){
$(this).attr("disabled","true");
var nodes = zTreeObjtree.getCheckedNodes(true);
for(var i=0; i<nodes.length; i++){
modelId[i] = nodes[i].modelId;
}
if(modelId==""||modelId==null||modelId==undefined){
<@ms.notify msg= "请选择功能模块!" type= "warning"/>
$("#save").removeAttr("disabled");
return;
}
var URL = "${managerPath}/role/<#if flag == true>save<#else>update</#if>.do";
$.ajax({
type: "post",
dataType: "json",
url: URL,
data: $("#saveRoleFrom").serialize() + "&modelId=" + modelId,
beforeSend:function(){
$("#save").attr("disabled",true);
},
success: function(msg){
if(msg.result){
<#if flag == true>
<@ms.notify msg= "保存成功" type= "success" />
<#else>
<@ms.notify msg= "更新成功" type= "warning" />
</#if>
location.href = "${managerPath}/role/queryList.do";
} else {
$('.ms-notifications').offset({top:43}).notify({
type:'warning',
message: { text:msg.resultMsg }
}).show();
}
$("#save").removeAttr("disabled");
},error: function(){
<@ms.notify msg= "操作失败" type= "danger" />
$("#save").removeAttr("disabled");
location.href = "${managerPath}/role/queryList.do";
}
});
}
});
});
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<#include "${managerViewPath}/include/meta.ftl"/>
<#include "${managerViewPath}/include/macro.ftl"/>
<style>
</style>
</head>
<body>
<@ms.content>
<@ms.contentBody>
<@ms.contentNav title="角色管理">
<@ms.panelNavBtnGroup>
<@ms.panelNavBtnAdd id="totalAdd"/>
<@ms.panelNavBtnDel id="totalDelete"/>
</@ms.panelNavBtnGroup>
</@ms.contentNav>
<@ms.contentPanel>
<@ms.table head=['<input type="checkbox" id="allCheck"/>,10','编号,50','角色名称']>
<#if listRole?has_content>
<#list listRole as role>
<tr>
<td>
<#if role.roleId!=managerRoleId>
<input type="checkbox" name="ids" value="${role.roleId?c?default(0)}">
</#if>
</td>
<input type="hidden" name="${role.roleId?c?default(0)}" />
<td>${role.roleId?c?default(0)}</td>
<td><a href="${managerPath}/role/${role.roleId}/edit.do" target="_self">${role.roleName?default("匿名")}</a></td>
</tr>
</#list>
<#else>
<tr>
<td colspan="4" class="text-center">
<a href="${managerPath}/role/add.do"><@ms.nodata/></a>
</td>
</tr>
</#if>
</@ms.table>
<@showPage page=page/>
</@ms.contentPanel>
</@ms.contentBody>
<!--=================模态框部分开始=================-->
<!--删除的模态框开始-->
<@ms.modal modalName="delete" title="删除角色">
<@ms.modalBody>
确定删除该角色吗?
</@ms.modalBody>
<@ms.modalButton>
<@ms.button value="返回" id="closeDelete"/>
<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>
</@ms.modalButton>
</@ms.modal>
<!--删除的模态框结束-->
<!--多选删除的模态框开始-->
<@ms.modal modalName="deleteAll" title="多选删除角色">
<@ms.modalBody>
您确定删除您所勾选的角色么?
</@ms.modalBody>
<@ms.modalButton>
<@ms.button value="返回" id="closeAllDelete"/>
<@ms.button class="btn btn-danger" id="deleteButtonAll" value="删除"/>
</@ms.modalButton>
</@ms.modal>
<!--多选删除的模态框结束-->
<!--=================模态框部分结束=================-->
</@ms.content>
<script type="text/javascript">
//触发模态框事件或者是模态框中按钮的事件
$(function(){
var roleId;
//删除角色
$(".del-btn").on("click",function(){
roleId = $(this).attr("data-id");
$(".delete").modal();
});
$("#deleteButton").click(function(){
deleteRole(roleId);
});
$("#closeDelete").click(function(){
$(".delete").modal("hide");
});
$("#totalDelete").click(function(){
$(".deleteAll").modal();
});
$("#closeAllDelete").click(function(){
$(".deleteAll").modal("hide");
});
//全选
$("#allCheck").on("click",function(){
if(this.checked){
$("input[name='ids']").each(function(){this.checked=true;});
}else{
$("input[name='ids']").each(function(){this.checked=false;});
}
});
//批量删除
$("#deleteButtonAll").on("click",function(){
batchDelete();
});
});
//删除角色
function deleteRole(roleId){
//拼接ajax地址
var URL="${managerPath}/role/"+roleId+"/delete.do";
$("#deleteButtonAll").text("删除中");
$("#deleteButtonAll").attr("disabled",true);
$(this).request({url:URL,data:"roleId=" + roleId,type:"json",method:"post",func:function(msg) {
//回调处理方式
if(msg != 0) {
$("input[name="+roleId+"]").parent().remove();
<@ms.notify msg= "删除角色成功!" type= "success" />
if($("tbody tr").length==0 && msg != 1){
location.href = base+"${baseManager}/role/queryList.do?pageNo="+(msg-1);
}else{
location.href = base+"${baseManager}/role/queryList.do?pageNo="+msg;
}
} else {
<@ms.notify msg= "删除失败" type= "danger"/>
}
location.reload();
}});
}
//批量删除角色
function batchDelete(){
var count = 0;
var ids = $("input[name='ids']").serialize();
$("input[name='ids']").each(function(){
if(this.checked==true){
count++;
}
});
if(ids.length != 0) {
var URL= "${managerPath}/role/allDelete.do";
$("#deleteButtonAll").text("删除中");
$("#deleteButtonAll").attr("disabled",true);
$(this).request({url:URL,data:ids,type:"json",method:"post",func:function(msg) {
if(msg != 0) {
<@ms.notify msg= "批量删除成功" type= "success" />
if($("tbody tr").length == count && msg != 1){
location.href = base+"${baseManager}/role/queryList.do?pageNo="+(msg-1);
}else{
location.href = base+"${baseManager}/role/queryList.do?pageNo="+msg;
}
} else {
<@ms.notify msg= "删除角色失败" type= "danger"/>
$("#deleteButtonAll").text("删除");
$("#deleteButtonAll").attr("disabled",false);
$(".deleteAll").modal("hide");
}
}});
} else {
<@ms.notify msg= "删除失败,请先选择管理员" type= "warning" />
$(".deleteAll").modal("hide");
}
}
$("#totalAdd").click(function(){
location.href = "${managerPath}/role/add.do"
});
</script>
</body>
</html>
<@ms.html5>
<@ms.nav title="编辑模版文件" back=true>
<@ms.savebutton id="update" value="修改"/>
</@ms.nav>
<@ms.panel>
<@ms.form name="form" id="editFileForm">
<!--文件名称-->
<@ms.text label="文件名称" value="${name?default('')}" readonly="readonly"/>
<@ms.hidden value="${fileName}" name="fileName" />
<!--文件内容-->
<@ms.textarea name="fileContent" label="文件内容" wrap="Soft" rows="21" size="" value="${fileContent}"/>
<@ms.hidden id="fileName" value="${fileName}" />
<@ms.hidden id="fileNamePrefix" value="${fileNamePrefix}" />
</@ms.form>
</@ms.panel>
</@ms.html5>
<script type="text/javascript">
$(function () {
//修改文件
$("#update").on("click",function(){
var formData = $("#editFileForm").serialize();
var URL=base+"${baseManager}/template/writeFileContent.do"
var oldFileName = $("#fileName").val();
var fileNamePrefix = $("#fileNamePrefix").val();
$(this).text("修改中");
$(this).attr("disabled",true);
$(this).request({url:URL,type:"json",method:"post",data:formData+"&oldFileName="+oldFileName+"&fileNamePrefix="+fileNamePrefix,func:function(msg) {
//回调处理方式
if(msg.result){
<@ms.notify msg= "修改模版文件成功" type= "success" />
} else {
<@ms.notify msg= "修改模版文件失败" type= "warning" />
}
var fileNameUrl = $(".fileNamePrefix").val();
$("#update").text("修改");
$("#update").attr("disabled",false);
}});
});
});
</script>
<@ms.html5>
<@ms.nav title="文件列表" back=true></@ms.nav>
<@ms.panel>
<@shiro.hasPermission name="template:upload"><@ms.uploadFile uploadFloderPath="${uploadFileUrl}" path="" inputName="file" size="20" filetype="*.htm;*.html;*.jpg;*.gif;*.png;*.css;*.js;*.ico;*.swf;*.less" msg="建议上传5M以下htm/html/css/js/jpg/gif/png/swf文件" maxSize="5" callBack="refresh" isRename="false"/></@shiro.hasPermission>
<@ms.table head=['<th class="text-center">图标</th>','模板名称',"<th style='width:20%;text-align:center'>类型</th>","<th class='text-center' style='width:10%;'>操作</th>"]>
<#if fileNameList?has_content>
<#list fileNameList as fileName>
<tr>
<td style="width:10%" class="pic text-center"></td>
<td style="width:35%" class="name">${fileName?replace("\\","/")}</td>
<td class="text-center type"></td>
<td style="width:10%;text-align:center">
<@shiro.hasPermission name="template:del">
<a class="btn btn-xs tooltips deleteIcon" data-toggle="tooltip" data-title="${fileName?replace("\\","/")}" data-original-title="删除">
<i class="glyphicon glyphicon-trash" style="color:#428BCA"></i>
</a>
</@shiro.hasPermission>
<@shiro.hasPermission name="template:update">
<a class="btn btn-xs tooltips editFileBtn" data-toggle="tooltip" data-title="templets/${websiteId}/${fileName?replace("\\","/")}" data-original-title="编辑">
<i class="glyphicon glyphicon-pencil" style="color:#428BCA"></i>
</a>
</@shiro.hasPermission>
</td>
</tr>
</#list>
<#else>
<tr>
<td colspan="5" class="text-left">
<@ms.nodata/>
</td>
</tr>
</#if>
</@ms.table>
</@ms.panel>
</@ms.html5>
<!--=================模态框部分开始=================-->
<@ms.modal modalName="delete" title="删除评论">
<@ms.modalBody>
确定删除该模板吗?
</@ms.modalBody>
<@ms.modalButton>
<@ms.button value="返回" id="closeDelete"/>
<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>
</@ms.modalButton>
</@ms.modal>
<!--=================模态框部分结束=================-->
<script type="text/javascript">
var fileName;
var isSuccess = false;
var fileUrl;
var skinFolderName = "${uploadFileUrl?replace("\\","/")}";
var interval;
function refresh(e){
<@ms.notify msg= "上传成功!" type= "success" />
location.reload();
}
function chat() {
var temp = $(".deleteIcon").attr("data-title");
if(temp == null || temp == ""){
temp = $(".editFileBtn").attr("data-title");
}
if(temp != null && temp != ""){
temp = temp.substring(0,temp.lastIndexOf("/"));
} else {
temp = skinFolderName.substring(skinFolderName.indexOf("/"));
temp = temp.substring(temp.indexOf("/"));
}
//若上传的为zip压缩文件则直接解压
if($("#file").val().substring($("#file").val().lastIndexOf(".")+1) == "zip"){
$.ajax({
type: "post",
url: base+"${baseManager}/template/unZip.do",
data: "fileUrl=" + fileUrl,
success: function(msg){
location.href=base+"${baseManager}/template/showChildFileAndFolder.do?skinFolderName="+temp;
fileName = temp + fileUrl.substring(fileUrl.lastIndexOf("/"));
//deleteTempletsFile();
$("#deleteButton").click();
}
});
} else {
location.href=base+"${baseManager}/template/showChildFileAndFolder.do?skinFolderName="+temp;
}
}
//删除模版文件
$("#deleteButton").click(function(){
var URL = base+"${baseManager}/template/deleteTemplateFile.do";
var DATA = "fileName=" + fileName;
$(this).request({url:URL,data:DATA,type:"json",method:"post",func:function(msg) {
if(msg != 0) {
<@ms.notify msg= "删除模版文件成功" type= "success" />
location.reload();
} else {
<@ms.notify msg= "删除模版文件失败" type= "warning" />
}
}});
});
$(function () {
//加载页面时启动定时器
//若为文件夹,则左侧显示文件夹图标;若为文件,则左侧显示文件图标,且稍向右偏移
$(".name").each(function(i){
var temp = $(this).html();
if(temp.indexOf(".") >= 0){
$(this).parent().find(".pic").prepend("<span class='glyphicon glyphicon-file'></span>")
$(this).parent().find(".type").prepend("文件")
} else {
$(this).parent().find(".pic").prepend("<span class='glyphicon glyphicon-folder-close'></span>")
$(this).parent().find(".type").prepend("文件夹")
$(this).parent().find(".editFileBtn").attr("data-original-title","打开文件夹");
$(this).parent().find(".editFileBtn").find(".glyphicon").removeClass("glyphicon-pencil");
$(this).parent().find(".editFileBtn").find(".glyphicon").addClass("glyphicon-log-in");
$(this).parent().find(".deleteIcon").remove();
}
var suffix = temp.substring(temp.lastIndexOf(".")+1);
if(suffix == "jpg" || suffix == "gif" || suffix == "png"){
$(this).parent().find(".type").prepend("图像")
$(this).parent().find(".editFileBtn").remove();
}
});
//编辑模版文件,若为文件夹,则跳至显示子文件和子文件夹action;若为文件,则直接读取代码内容,且跳至模版文件修改页面
$("table").delegate(".editFileBtn","click",function(){
fileName = $(this).attr("data-title");
if(fileName.indexOf(".") >= 0){
location.href = base+"${baseManager}/template/readFileContent.do?fileName="+encodeURIComponent(fileName);
} else {
location.href=base+"${baseManager}/template/showChildFileAndFolder.do?skinFolderName="+encodeURIComponent(fileName);
}
});
//点击返回按钮,关闭模态框
$("#closeDelete").click(function() {
$(".delete").modal("hide");
})
//删除模版
$("table").delegate(".deleteIcon","click",function(){
fileName = $(this).attr("data-title");
$(".delete").modal();
});
});
</script>
\ No newline at end of file
<@ms.html5>
<@ms.nav title="模板管理"></@ms.nav>
<@ms.panel>
<@shiro.hasPermission name="template:upload"><@ms.uploadFile path="" uploadFloderPath="templets/${websiteId}/" inputName="websiteStyle" size="10" filetype="*.zip" msg="建议上传30M以下的zip文件,模版名称不能使用中文,zip的压缩方式为:存储" maxSize="30" callBack="setUrl" isRename="false"/></@shiro.hasPermission>
<@ms.table head=['<th class="text-center">图标</th>','模板名称',"<th style='width:20%;text-align:center'>类型</th>","<th class='text-center' style='width:10%;'>操作</th>"]>
<#if folderNameList?has_content>
<#list folderNameList as folderName>
<tr>
<td style="width:7%" class="pic text-center"><span class='glyphicon glyphicon-folder-close'></span></td>
<td style="width:35%">${folderName}</td>
<td class="text-center">文件夹</td>
<td style="width:10%;text-align:center">
<@shiro.hasPermission name="template:del">
<a class="btn btn-xs tooltips deleteIcon" data-toggle="tooltip" data-title="${folderName}" data-original-title="删除">
<i class="glyphicon glyphicon-trash" style="color:#428BCA"></i>
</a>
</@shiro.hasPermission>
<@shiro.hasPermission name="template:update">
<a class="btn btn-xs tooltips" href="${managerPath}/template/showChildFileAndFolder.do?skinFolderName=templets/${websiteId}/${folderName}" data-toggle="tooltip" target="_self" data-original-title="打开文件夹" >
<i class="glyphicon glyphicon-log-in" style="color:#428BCA"></i>
</a>
</@shiro.hasPermission>
</td>
</tr>
</#list>
<#else>
<tr>
<td colspan="5" class="text-left">
<@ms.nodata/>
</td>
</tr>
</#if>
</@ms.table>
</@ms.panel>
</@ms.html5>
<!--=================模态框部分开始=================-->
<@ms.modal modalName="delete" title="删除模板">
<@ms.modalBody>
确定删除该模板吗?
</@ms.modalBody>
<@ms.modalButton>
<@ms.button value="返回" id="closeDelete"/>
<@ms.button class="btn btn-danger" id="deleteButton" value="删除"/>
</@ms.modalButton>
</@ms.modal>
<!--=================模态框部分结束=================-->
<script type="text/javascript">
var name;
var fileUrl;
function setUrl(e){
fileUrl = e;
$.ajax({
type: "post",
url: base+"${baseManager}/template/unZip.do",
data: "fileUrl=" + fileUrl,
success: function(msg){
<@ms.notify msg= "模版上传成功!" type= "success" />
location.href=base+"${baseManager}/template/queryTemplateSkin.do"
}
});
}
//点击返回按钮,关闭模态框
$("#closeDelete").click(function() {
$(".delete").modal("hide");
})
//点击删除按钮进行删除模版
$("#deleteButton").click(function(){
var URL = base+"${baseManager}/template/delete.do";
var DATA = "fileName=" + name;
$(this).attr("disabled",true);
$(this).text("删除中");
$(this).request({url:URL,data:DATA,type:"json",method:"post",func:function(msg) {
if(msg){
<@ms.notify msg= "删除模版成功" type= "success" />
location.href=base+"${baseManager}/template/queryTemplateSkin.do"
} else {
<@ms.notify msg= "删除模版失败" type= "warning" />
$("#deleteButton").attr("disabled",false);
$("#deleteButton").text("删除");
}
}});
});
//删除模版
$("table").delegate(".deleteIcon","click",function(){
name = $(this).attr("data-title");
$(".delete").modal();
});
</script>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>mybatis</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml,classpath:spring-mybatis.xml,classpath:spring-shiro.xml</param-value>
</context-param>
<filter>
<description>字符集过滤器</description>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<description>字符集编码</description>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<description>spring监听器</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 防止spring内存溢出监听器 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- spring mvc servlet -->
<servlet>
<description>spring mvc servlet</description>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<description>spring mvc 配置文件</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Apache Shiro -->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>login.do</welcome-file>
</welcome-file-list>
<!-- 配置session超时时间,单位分钟 -->
<error-page>
<error-code>404</error-code>
<location>/error/404.do</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.do</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/error/405.do</location>
</error-page>
<error-page>
<error-code>504</error-code>
<location>/error/504.do</location>
</error-page>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
</web-app>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment