forked from p85126437/datagear
添加数据集资源目录管理功能
This commit is contained in:
parent
6341c22401
commit
0c14c644ae
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
* Copyright 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
package org.datagear.management.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 数据集资源目录实体。
|
||||
* <p>
|
||||
* 文件类数据集允许选择服务器端文件,需要限定用户可访问的服务端目录,此类即用于定义访问目录。
|
||||
* </p>
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class DataSetResDirectory extends AbstractStringIdEntity
|
||||
implements CreateUserEntity<String>, DataPermissionEntity<String>
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 授权资源类型 */
|
||||
public static final String AUTHORIZATION_RESOURCE_TYPE = "DataSetDirectory";
|
||||
|
||||
/** 目录 */
|
||||
private String directory;
|
||||
|
||||
/** 描述 */
|
||||
private String desc = "";
|
||||
|
||||
/** 此模式的创建用户 */
|
||||
private User createUser;
|
||||
|
||||
/** 此模式的创建时间 */
|
||||
private Date createTime = new Date();
|
||||
|
||||
/** 权限 */
|
||||
private int dataPermission = PERMISSION_NOT_LOADED;
|
||||
|
||||
public DataSetResDirectory()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public DataSetResDirectory(String id, String directory, User createuUser)
|
||||
{
|
||||
super(id);
|
||||
this.directory = directory;
|
||||
this.createUser = createuUser;
|
||||
}
|
||||
|
||||
public String getDirectory()
|
||||
{
|
||||
return directory;
|
||||
}
|
||||
|
||||
public void setDirectory(String directory)
|
||||
{
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
public String getDesc()
|
||||
{
|
||||
return desc;
|
||||
}
|
||||
|
||||
public void setDesc(String desc)
|
||||
{
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
@Override
|
||||
public User getCreateUser()
|
||||
{
|
||||
return createUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCreateUser(User createUser)
|
||||
{
|
||||
this.createUser = createUser;
|
||||
}
|
||||
|
||||
public Date getCreateTime()
|
||||
{
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public void setCreateTime(Date createTime)
|
||||
{
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDataPermission()
|
||||
{
|
||||
return dataPermission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDataPermission(int dataPermission)
|
||||
{
|
||||
this.dataPermission = dataPermission;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return getClass().getSimpleName() + " [directory=" + directory + ", desc=" + desc + ", createUser=" + createUser
|
||||
+ ", createTime=" + createTime + ", dataPermission=" + dataPermission + "]";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
package org.datagear.management.service;
|
||||
|
||||
import org.datagear.management.domain.DataSetResDirectory;
|
||||
|
||||
/**
|
||||
* {@linkplain DataSetResDirectory}业务服务接口。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public interface DataSetResDirectoryService
|
||||
extends DataPermissionEntityService<String, DataSetResDirectory>, CreateUserEntityService
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
* Copyright 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
package org.datagear.management.service.impl;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.datagear.management.domain.DataSetResDirectory;
|
||||
import org.datagear.management.domain.User;
|
||||
import org.datagear.management.service.DataSetResDirectoryService;
|
||||
import org.datagear.management.service.PermissionDeniedException;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
|
||||
/**
|
||||
* {@linkplain DataSetResDirectoryService}实现类。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class DataSetResDirectoryServiceImpl
|
||||
extends AbstractMybatisDataPermissionEntityService<String, DataSetResDirectory>
|
||||
implements DataSetResDirectoryService
|
||||
{
|
||||
protected static final String SQL_NAMESPACE = DataSetResDirectory.class.getName();
|
||||
|
||||
public DataSetResDirectoryServiceImpl()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public DataSetResDirectoryServiceImpl(SqlSessionFactory sqlSessionFactory)
|
||||
{
|
||||
super(sqlSessionFactory);
|
||||
}
|
||||
|
||||
public DataSetResDirectoryServiceImpl(SqlSessionTemplate sqlSessionTemplate)
|
||||
{
|
||||
super(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getResourceType()
|
||||
{
|
||||
return DataSetResDirectory.AUTHORIZATION_RESOURCE_TYPE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataSetResDirectory getByStringId(User user, String id) throws PermissionDeniedException
|
||||
{
|
||||
return getById(user, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateCreateUserId(String oldUserId, String newUserId)
|
||||
{
|
||||
Map<String, Object> params = buildParamMap();
|
||||
addIdentifierQuoteParameter(params);
|
||||
params.put("oldUserId", oldUserId);
|
||||
params.put("newUserId", newUserId);
|
||||
|
||||
return updateMybatis("updateCreateUserId", params);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void checkAddInput(DataSetResDirectory entity)
|
||||
{
|
||||
if (isBlank(entity.getId()) || isBlank(entity.getDirectory()) || isEmpty(entity.getCreateUser()))
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void checkUpdateInput(DataSetResDirectory entity)
|
||||
{
|
||||
if (isBlank(entity.getId()) || isBlank(entity.getDirectory()))
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addDataPermissionParameters(Map<String, Object> params, User user)
|
||||
{
|
||||
addDataPermissionParameters(params, user, getResourceType(), false, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getSqlNamespace()
|
||||
{
|
||||
return SQL_NAMESPACE;
|
||||
}
|
||||
}
|
|
@ -617,3 +617,15 @@ CREATE INDEX DATAGEAR_DATA_SET_CREATE_USER_ID ON DATAGEAR_DATA_SET(DS_CREATE_USE
|
|||
CREATE INDEX DATAGEAR_HTML_CHART_WIDGET_CREATE_USER_ID ON DATAGEAR_HTML_CHART_WIDGET(HCW_CREATE_USER_ID);
|
||||
|
||||
CREATE INDEX DATAGEAR_HTML_DASHBOARD_CREATE_USER_ID ON DATAGEAR_HTML_DASHBOARD(HD_CREATE_USER_ID);
|
||||
|
||||
--2020-09-26
|
||||
--数据集资源目录
|
||||
CREATE TABLE DATAGEAR_DSR_DIRECTORY
|
||||
(
|
||||
DD_ID VARCHAR(50) NOT NULL,
|
||||
DD_DIRECTORY VARCHAR(250) NOT NULL,
|
||||
DD_DESC VARCHAR(500),
|
||||
DD_CREATE_USER_ID VARCHAR(50),
|
||||
DD_CREATE_TIME TIMESTAMP,
|
||||
PRIMARY KEY (DD_ID)
|
||||
);
|
||||
|
|
|
@ -0,0 +1,151 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="org.datagear.management.domain.DataSetResDirectory">
|
||||
|
||||
<insert id="insert">
|
||||
INSERT INTO DATAGEAR_DSR_DIRECTORY
|
||||
(
|
||||
DD_ID, DD_DIRECTORY, DD_DESC, DD_CREATE_USER_ID, DD_CREATE_TIME
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
#{entity.id}, #{entity.directory}, #{entity.desc}, #{entity.createUser.id}, #{entity.createTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="update">
|
||||
UPDATE DATAGEAR_DSR_DIRECTORY SET
|
||||
DD_DIRECTORY = #{entity.directory},
|
||||
DD_DESC = #{entity.desc}
|
||||
WHERE
|
||||
DD_ID = #{entity.id}
|
||||
</update>
|
||||
|
||||
<update id="updateCreateUserId">
|
||||
UPDATE DATAGEAR_DSR_DIRECTORY SET
|
||||
DD_CREATE_USER_ID = #{newUserId}
|
||||
WHERE
|
||||
DD_CREATE_USER_ID = #{oldUserId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteById">
|
||||
DELETE FROM DATAGEAR_DSR_DIRECTORY
|
||||
WHERE
|
||||
DD_ID = #{id}
|
||||
</delete>
|
||||
|
||||
<select id="getById" resultType="org.datagear.management.domain.DataSetResDirectory">
|
||||
SELECT
|
||||
T.*
|
||||
FROM
|
||||
(<include refid="queryViewDataPermission" />) T
|
||||
WHERE
|
||||
T.${_iq_}id${_iq_} = #{id}
|
||||
</select>
|
||||
|
||||
<select id="getDataIdPermissions" resultType="org.datagear.management.domain.DataIdPermission">
|
||||
SELECT
|
||||
T.DATA_ID as ${_iq_}dataId${_iq_},
|
||||
T.DATA_PERMISSION as ${_iq_}dataPermission${_iq_}
|
||||
FROM
|
||||
(
|
||||
<include refid="commonDataPermission.dataIdPermissionQueryViewHead" />
|
||||
<include refid="queryViewDataPermissionId" />
|
||||
<include refid="commonDataPermission.dataIdPermissionQueryViewFoot" />
|
||||
) T
|
||||
WHERE
|
||||
<foreach item="item" collection="ids" separator=" OR ">T.DATA_ID = #{item}</foreach>
|
||||
</select>
|
||||
|
||||
<select id="query" resultType="org.datagear.management.domain.DataSetResDirectory">
|
||||
SELECT
|
||||
T.*
|
||||
FROM
|
||||
(<include refid="queryViewDataPermission" />) T
|
||||
WHERE
|
||||
<include refid="queryCondition" />
|
||||
<include refid="common.queryOrder" />
|
||||
</select>
|
||||
|
||||
<select id="pagingQueryCount" resultType="int">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
(<include refid="queryViewDataPermission" />) T
|
||||
WHERE
|
||||
<include refid="queryCondition" />
|
||||
</select>
|
||||
|
||||
<select id="pagingQuery" resultType="org.datagear.management.domain.DataSetResDirectory">
|
||||
<include refid="common.pagingQueryHead" />
|
||||
SELECT
|
||||
T.*
|
||||
FROM
|
||||
(<include refid="queryViewDataPermission" />) T
|
||||
WHERE
|
||||
<include refid="queryCondition" />
|
||||
<include refid="common.queryOrder" />
|
||||
<include refid="common.pagingQueryFoot" />
|
||||
</select>
|
||||
|
||||
<sql id="queryViewDataPermission">
|
||||
<choose><when test="DP_CURRENT_USER == null">
|
||||
<include refid="queryView" />
|
||||
</when><otherwise>
|
||||
SELECT
|
||||
T0.*,
|
||||
T1.DATA_PERMISSION as ${_iq_}dataPermission${_iq_}
|
||||
FROM
|
||||
(<include refid="queryView" />) T0
|
||||
INNER JOIN
|
||||
(
|
||||
<include refid="commonDataPermission.dataIdPermissionQueryViewHead" />
|
||||
<include refid="queryViewDataPermissionId" />
|
||||
<include refid="commonDataPermission.dataIdPermissionQueryViewFoot" />
|
||||
) T1
|
||||
ON
|
||||
T0.${_iq_}id${_iq_} = T1.DATA_ID
|
||||
WHERE
|
||||
T1.DATA_PERMISSION >= ${DP_MIN_READ_PERMISSION}
|
||||
</otherwise></choose>
|
||||
</sql>
|
||||
|
||||
<sql id="queryViewDataPermissionId">
|
||||
SELECT
|
||||
A.DD_ID AS DP_AUTH_DATA_ID,
|
||||
A.DD_CREATE_USER_ID AS DP_AUTH_DATA_CREATOR_ID
|
||||
FROM
|
||||
DATAGEAR_DSR_DIRECTORY A
|
||||
</sql>
|
||||
|
||||
<sql id="queryView">
|
||||
SELECT
|
||||
A.DD_ID AS ${_iq_}id${_iq_},
|
||||
A.DD_DIRECTORY AS ${_iq_}directory${_iq_},
|
||||
A.DD_DESC AS ${_iq_}desc${_iq_},
|
||||
A.DD_CREATE_TIME AS ${_iq_}createTime${_iq_},
|
||||
A.DD_CREATE_USER_ID AS ${_iq_}createUser.id${_iq_},
|
||||
<include refid="common.fieldsForCreateUser" />
|
||||
FROM
|
||||
DATAGEAR_DSR_DIRECTORY A
|
||||
LEFT JOIN
|
||||
DATAGEAR_USER USR
|
||||
ON
|
||||
A.DD_CREATE_USER_ID = USR.USER_ID
|
||||
</sql>
|
||||
|
||||
<sql id="queryCondition">
|
||||
1 = 1
|
||||
<if test="queryKeyword != null">
|
||||
AND
|
||||
(
|
||||
${_iq_}directory${_iq_} LIKE #{queryKeyword}
|
||||
OR ${_iq_}desc${_iq_} LIKE #{queryKeyword}
|
||||
)
|
||||
</if>
|
||||
<include refid="commonDataPermission.dataFilterCondition" />
|
||||
<include refid="common.queryCondition" />
|
||||
</sql>
|
||||
|
||||
</mapper>
|
|
@ -51,6 +51,7 @@ import org.datagear.management.service.AnalysisProjectService;
|
|||
import org.datagear.management.service.AuthorizationService;
|
||||
import org.datagear.management.service.DataPermissionEntityService;
|
||||
import org.datagear.management.service.DataSetEntityService;
|
||||
import org.datagear.management.service.DataSetResDirectoryService;
|
||||
import org.datagear.management.service.HtmlChartWidgetEntityService;
|
||||
import org.datagear.management.service.HtmlTplDashboardWidgetEntityService;
|
||||
import org.datagear.management.service.RoleService;
|
||||
|
@ -61,6 +62,7 @@ import org.datagear.management.service.UserService;
|
|||
import org.datagear.management.service.impl.AnalysisProjectServiceImpl;
|
||||
import org.datagear.management.service.impl.AuthorizationServiceImpl;
|
||||
import org.datagear.management.service.impl.DataSetEntityServiceImpl;
|
||||
import org.datagear.management.service.impl.DataSetResDirectoryServiceImpl;
|
||||
import org.datagear.management.service.impl.HtmlChartWidgetEntityServiceImpl;
|
||||
import org.datagear.management.service.impl.HtmlTplDashboardWidgetEntityServiceImpl;
|
||||
import org.datagear.management.service.impl.RoleServiceImpl;
|
||||
|
@ -562,6 +564,13 @@ public class CoreConfiguration implements InitializingBean
|
|||
return bean;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DataSetResDirectoryService dataSetResDirectoryService() throws Exception
|
||||
{
|
||||
DataSetResDirectoryService bean = new DataSetResDirectoryServiceImpl(this.sqlSessionFactory().getObject());
|
||||
return bean;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SqlHistoryService sqlHistoryService() throws Exception
|
||||
{
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.datagear.util.StringUtil;
|
|||
import org.datagear.web.OperationMessage;
|
||||
import org.datagear.web.convert.StringToJsonConverter;
|
||||
import org.datagear.web.freemarker.WriteJsonTemplateDirectiveModel;
|
||||
import org.datagear.web.util.DeliverContentTypeExceptionHandlerExceptionResolver;
|
||||
import org.datagear.web.util.WebContextPath;
|
||||
import org.datagear.web.util.WebUtils;
|
||||
import org.datagear.web.vo.APIDDataFilterPagingQuery;
|
||||
|
@ -323,6 +324,46 @@ public abstract class AbstractController
|
|||
WebUtils.setOperationMessage(request, operationMessage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取错误信息视图。
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
protected String getErrorView(HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
setAttributeIfIsJsonResponse(request, response);
|
||||
return ERROR_PAGE_URL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置JSON响应的错误页面属性。
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
*/
|
||||
protected void setAttributeIfIsJsonResponse(HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
String expectedContentType = DeliverContentTypeExceptionHandlerExceptionResolver.getHandlerContentType(request);
|
||||
if (expectedContentType != null && !expectedContentType.isEmpty())
|
||||
response.setContentType(expectedContentType);
|
||||
|
||||
boolean isJsonResponse = WebUtils.isJsonResponse(response);
|
||||
|
||||
request.setAttribute("isJsonResponse", isJsonResponse);
|
||||
|
||||
if (isJsonResponse)
|
||||
{
|
||||
OperationMessage operationMessage = getOperationMessageForHttpError(request, response);
|
||||
|
||||
request.setAttribute(WebUtils.KEY_OPERATION_MESSAGE,
|
||||
WriteJsonTemplateDirectiveModel.toWriteJsonTemplateModel(operationMessage));
|
||||
|
||||
response.setContentType(CONTENT_TYPE_JSON);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建操作成功消息(无消息内容)对应的{@linkplain ResponseEntity}。
|
||||
* <p>
|
||||
|
|
|
@ -38,10 +38,6 @@ import org.datagear.persistence.support.NoColumnDefinedException;
|
|||
import org.datagear.persistence.support.SqlParamValueSqlExpressionException;
|
||||
import org.datagear.persistence.support.SqlParamValueVariableExpressionException;
|
||||
import org.datagear.persistence.support.UnsupportedDialectException;
|
||||
import org.datagear.web.OperationMessage;
|
||||
import org.datagear.web.freemarker.WriteJsonTemplateDirectiveModel;
|
||||
import org.datagear.web.util.DeliverContentTypeExceptionHandlerExceptionResolver;
|
||||
import org.datagear.web.util.WebUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.core.convert.ConversionException;
|
||||
|
@ -543,46 +539,6 @@ public class ControllerAdvice extends AbstractController
|
|||
LOGGER.error("", t);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取错误信息视图。
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
protected String getErrorView(HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
setAttributeIfIsJsonResponse(request, response);
|
||||
return ERROR_PAGE_URL;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置JSON响应的错误页面属性。
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
*/
|
||||
protected void setAttributeIfIsJsonResponse(HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
String expectedContentType = DeliverContentTypeExceptionHandlerExceptionResolver.getHandlerContentType(request);
|
||||
if (expectedContentType != null && !expectedContentType.isEmpty())
|
||||
response.setContentType(expectedContentType);
|
||||
|
||||
boolean isJsonResponse = WebUtils.isJsonResponse(response);
|
||||
|
||||
request.setAttribute("isJsonResponse", isJsonResponse);
|
||||
|
||||
if (isJsonResponse)
|
||||
{
|
||||
OperationMessage operationMessage = getOperationMessageForHttpError(request, response);
|
||||
|
||||
request.setAttribute(WebUtils.KEY_OPERATION_MESSAGE,
|
||||
WriteJsonTemplateDirectiveModel.toWriteJsonTemplateModel(operationMessage));
|
||||
|
||||
response.setContentType(CONTENT_TYPE_JSON);
|
||||
}
|
||||
}
|
||||
|
||||
protected String buildMessageCode(Class<? extends Throwable> clazz)
|
||||
{
|
||||
return buildMessageCode(clazz.getSimpleName());
|
||||
|
|
|
@ -0,0 +1,218 @@
|
|||
/*
|
||||
* Copyright 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
package org.datagear.web.controller;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.datagear.management.domain.DataSetResDirectory;
|
||||
import org.datagear.management.domain.User;
|
||||
import org.datagear.management.service.DataSetResDirectoryService;
|
||||
import org.datagear.persistence.PagingData;
|
||||
import org.datagear.persistence.PagingQuery;
|
||||
import org.datagear.util.FileUtil;
|
||||
import org.datagear.util.IDUtil;
|
||||
import org.datagear.web.OperationMessage;
|
||||
import org.datagear.web.util.WebUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
/**
|
||||
* 数据集资源目录控制器。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/dataSetResDirectory")
|
||||
public class DataSetResDirectoryController extends AbstractController
|
||||
{
|
||||
static
|
||||
{
|
||||
AuthorizationResourceMetas.registerForShare(DataSetResDirectory.AUTHORIZATION_RESOURCE_TYPE,
|
||||
"dataSetResDirectory");
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private DataSetResDirectoryService dataSetResDirectoryService;
|
||||
|
||||
public DataSetResDirectoryController()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public DataSetResDirectoryService getDataSetResDirectoryService()
|
||||
{
|
||||
return dataSetResDirectoryService;
|
||||
}
|
||||
|
||||
public void setDataSetResDirectoryService(DataSetResDirectoryService dataSetResDirectoryService)
|
||||
{
|
||||
this.dataSetResDirectoryService = dataSetResDirectoryService;
|
||||
}
|
||||
|
||||
@ExceptionHandler(DataSetResDirectoryNotFoundException.class)
|
||||
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||
public String handleDataSetResDirectoryNotFoundException(HttpServletRequest request,
|
||||
HttpServletResponse response, DataSetResDirectoryNotFoundException exception)
|
||||
{
|
||||
setOperationMessageForThrowable(request, "dataSetResDirectory.DataSetResDirectoryNotFoundException", exception,
|
||||
false, exception.getDirectory());
|
||||
|
||||
return getErrorView(request, response);
|
||||
}
|
||||
|
||||
@RequestMapping("/add")
|
||||
public String add(HttpServletRequest request, org.springframework.ui.Model model)
|
||||
{
|
||||
DataSetResDirectory dataSetResDirectory = new DataSetResDirectory();
|
||||
|
||||
model.addAttribute("dataSetResDirectory", dataSetResDirectory);
|
||||
model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSetResDirectory.addDataSetResDirectory");
|
||||
model.addAttribute(KEY_FORM_ACTION, "saveAdd");
|
||||
|
||||
return "/dataSetResDirectory/dataSetResDirectory_form";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/saveAdd", produces = CONTENT_TYPE_JSON)
|
||||
@ResponseBody
|
||||
public ResponseEntity<OperationMessage> saveAdd(HttpServletRequest request, HttpServletResponse response,
|
||||
@RequestBody DataSetResDirectory dataSetResDirectory)
|
||||
{
|
||||
checkSaveEntity(dataSetResDirectory);
|
||||
|
||||
User user = WebUtils.getUser(request, response);
|
||||
|
||||
dataSetResDirectory.setId(IDUtil.randomIdOnTime20());
|
||||
dataSetResDirectory.setCreateUser(user);
|
||||
|
||||
this.dataSetResDirectoryService.add(dataSetResDirectory);
|
||||
|
||||
return buildOperationMessageSaveSuccessResponseEntity(request, dataSetResDirectory);
|
||||
}
|
||||
|
||||
@RequestMapping("/edit")
|
||||
public String edit(HttpServletRequest request, HttpServletResponse response, org.springframework.ui.Model model,
|
||||
@RequestParam("id") String id)
|
||||
{
|
||||
User user = WebUtils.getUser(request, response);
|
||||
|
||||
DataSetResDirectory dataSetResDirectory = this.dataSetResDirectoryService.getByIdForEdit(user, id);
|
||||
|
||||
if (dataSetResDirectory == null)
|
||||
throw new RecordNotFoundException();
|
||||
|
||||
model.addAttribute("dataSetResDirectory", dataSetResDirectory);
|
||||
model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSetResDirectory.editDataSetResDirectory");
|
||||
model.addAttribute(KEY_FORM_ACTION, "saveEdit");
|
||||
|
||||
return "/dataSetResDirectory/dataSetResDirectory_form";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/saveEdit", produces = CONTENT_TYPE_JSON)
|
||||
@ResponseBody
|
||||
public ResponseEntity<OperationMessage> save(HttpServletRequest request, HttpServletResponse response,
|
||||
@RequestBody DataSetResDirectory dataSetResDirectory)
|
||||
{
|
||||
checkSaveEntity(dataSetResDirectory);
|
||||
|
||||
User user = WebUtils.getUser(request, response);
|
||||
|
||||
this.dataSetResDirectoryService.update(user, dataSetResDirectory);
|
||||
|
||||
return buildOperationMessageSaveSuccessResponseEntity(request, dataSetResDirectory);
|
||||
}
|
||||
|
||||
@RequestMapping("/view")
|
||||
public String view(HttpServletRequest request, HttpServletResponse response, org.springframework.ui.Model model,
|
||||
@RequestParam("id") String id)
|
||||
{
|
||||
User user = WebUtils.getUser(request, response);
|
||||
|
||||
DataSetResDirectory dataSetResDirectory = this.dataSetResDirectoryService.getById(user, id);
|
||||
|
||||
if (dataSetResDirectory == null)
|
||||
throw new RecordNotFoundException();
|
||||
|
||||
model.addAttribute("dataSetResDirectory", dataSetResDirectory);
|
||||
model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSetResDirectory.viewDataSetResDirectory");
|
||||
model.addAttribute(KEY_READONLY, true);
|
||||
|
||||
return "/dataSetResDirectory/dataSetResDirectory_form";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/delete", produces = CONTENT_TYPE_JSON)
|
||||
@ResponseBody
|
||||
public ResponseEntity<OperationMessage> delete(HttpServletRequest request, HttpServletResponse response,
|
||||
@RequestBody String[] ids)
|
||||
{
|
||||
User user = WebUtils.getUser(request, response);
|
||||
|
||||
for (int i = 0; i < ids.length; i++)
|
||||
{
|
||||
String id = ids[i];
|
||||
this.dataSetResDirectoryService.deleteById(user, id);
|
||||
}
|
||||
|
||||
return buildOperationMessageDeleteSuccessResponseEntity(request);
|
||||
}
|
||||
|
||||
@RequestMapping("/pagingQuery")
|
||||
public String pagingQuery(HttpServletRequest request, HttpServletResponse response,
|
||||
org.springframework.ui.Model model)
|
||||
{
|
||||
User user = WebUtils.getUser(request, response);
|
||||
model.addAttribute("currentUser", user);
|
||||
|
||||
model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSetResDirectory.manageDataSetResDirectory");
|
||||
|
||||
return "/dataSetResDirectory/dataSetResDirectory_grid";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/select")
|
||||
public String select(HttpServletRequest request, HttpServletResponse response, org.springframework.ui.Model model)
|
||||
{
|
||||
model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSetResDirectory.selectDataSetResDirectory");
|
||||
model.addAttribute(KEY_SELECT_OPERATION, true);
|
||||
setIsMultipleSelectAttribute(request, model);
|
||||
|
||||
return "/dataSetResDirectory/dataSetResDirectory_grid";
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/pagingQueryData", produces = CONTENT_TYPE_JSON)
|
||||
@ResponseBody
|
||||
public PagingData<DataSetResDirectory> pagingQueryData(HttpServletRequest request, HttpServletResponse response,
|
||||
final org.springframework.ui.Model springModel,
|
||||
@RequestBody(required = false) PagingQuery pagingQueryParam) throws Exception
|
||||
{
|
||||
User user = WebUtils.getUser(request, response);
|
||||
final PagingQuery pagingQuery = inflatePagingQuery(request, pagingQueryParam);
|
||||
|
||||
PagingData<DataSetResDirectory> pagingData = this.dataSetResDirectoryService.pagingQuery(user, pagingQuery);
|
||||
|
||||
return pagingData;
|
||||
}
|
||||
|
||||
protected void checkSaveEntity(DataSetResDirectory dataSetResDirectory)
|
||||
{
|
||||
if (isBlank(dataSetResDirectory.getDirectory()))
|
||||
throw new IllegalInputException();
|
||||
|
||||
File directory = FileUtil.getDirectory(dataSetResDirectory.getDirectory(), false);
|
||||
|
||||
if (!directory.exists())
|
||||
throw new DataSetResDirectoryNotFoundException(dataSetResDirectory.getDirectory());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Copyright 2018 datagear.tech. All Rights Reserved.
|
||||
*/
|
||||
|
||||
package org.datagear.web.controller;
|
||||
|
||||
import org.datagear.management.domain.DataSetResDirectory;
|
||||
|
||||
/**
|
||||
* {@linkplain DataSetResDirectory#getDirectory()}未找到异常。
|
||||
*
|
||||
* @author datagear@163.com
|
||||
*
|
||||
*/
|
||||
public class DataSetResDirectoryNotFoundException extends IllegalInputException
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String directory;
|
||||
|
||||
public DataSetResDirectoryNotFoundException(String directory)
|
||||
{
|
||||
super();
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
public DataSetResDirectoryNotFoundException(String directory, String message)
|
||||
{
|
||||
super(message);
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
public DataSetResDirectoryNotFoundException(String directory, Throwable cause)
|
||||
{
|
||||
super(cause);
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
public DataSetResDirectoryNotFoundException(String directory, String message, Throwable cause)
|
||||
{
|
||||
super(message, cause);
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
public String getDirectory()
|
||||
{
|
||||
return directory;
|
||||
}
|
||||
|
||||
protected void setDirectory(String directory)
|
||||
{
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
}
|
|
@ -274,6 +274,10 @@
|
|||
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="dataSetResDirectoryService" class="org.datagear.management.service.impl.DataSetResDirectoryServiceImpl">
|
||||
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="sqlHistoryService" class="org.datagear.management.service.impl.SqlHistoryServiceImpl">
|
||||
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
|
||||
</bean>
|
||||
|
|
|
@ -60,6 +60,12 @@
|
|||
<intercept-url pattern="${subContextPath}/analysis/chartPlugin/chartPluginManager.js" access="IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER" />
|
||||
<intercept-url pattern="${subContextPath}/analysis/chartPlugin/**" access="ROLE_ADMIN" />
|
||||
|
||||
<!-- 数据集资源目录管理 -->
|
||||
<intercept-url pattern="${subContextPath}/dataSetResDirectory/view" access="#{sercurityDisableAnonymous.value ? 'ROLE_USER' : 'IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER'}" />
|
||||
<intercept-url pattern="${subContextPath}/dataSetResDirectory/select" access="#{sercurityDisableAnonymous.value ? 'ROLE_USER' : 'IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER'}" />
|
||||
<intercept-url pattern="${subContextPath}/dataSetResDirectory/pagingQueryData" access="#{sercurityDisableAnonymous.value ? 'ROLE_USER' : 'IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER'}" />
|
||||
<intercept-url pattern="${subContextPath}/dataSetResDirectory/**" access="ROLE_ADMIN" />
|
||||
|
||||
<!-- 图表、看板展示功能始终允许匿名用户访问,用于支持外部系统iframe嵌套场景 -->
|
||||
<intercept-url pattern="${subContextPath}/analysis/chart/show/**" access="IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER" />
|
||||
<intercept-url pattern="${subContextPath}/analysis/chart/showData" access="IS_AUTHENTICATED_ANONYMOUSLY,ROLE_USER" />
|
||||
|
|
|
@ -235,6 +235,7 @@ main.manageRole=管理用户组
|
|||
main.manageSchemaAuth=数据源授权
|
||||
main.manageChartPlugin=管理图表插件
|
||||
main.uploadChartPlugin=上传图表插件
|
||||
main.manageDataSetResDirectory=管理数据集资源目录
|
||||
main.personalSet=个人设置
|
||||
main.changeTheme=切换肤色
|
||||
main.changeTheme.light=浅色
|
||||
|
@ -830,4 +831,17 @@ analysisProject.auth.resouceTypeLabel=数据分析项目
|
|||
analysisProject.name=名称
|
||||
analysisProject.desc=描述
|
||||
analysisProject.createUser=创建用户
|
||||
analysisProject.createTime=创建时间
|
||||
analysisProject.createTime=创建时间
|
||||
|
||||
#数据集资源目录
|
||||
dataSetResDirectory.manageDataSetResDirectory=管理数据集资源目录
|
||||
dataSetResDirectory.addDataSetResDirectory=添加数据集资源目录
|
||||
dataSetResDirectory.editDataSetResDirectory=编辑数据集资源目录
|
||||
dataSetResDirectory.viewDataSetResDirectory=查看数据集资源目录
|
||||
dataSetResDirectory.selectDataSetResDirectory=选择数据集资源目录
|
||||
dataSetResDirectory.auth.resouceTypeLabel=数据集资源目录
|
||||
dataSetResDirectory.directory=目录
|
||||
dataSetResDirectory.desc=描述
|
||||
dataSetResDirectory.createUser=创建用户
|
||||
dataSetResDirectory.createTime=创建时间
|
||||
dataSetResDirectory.DataSetResDirectoryNotFoundException=目录[{0}]不存在
|
|
@ -0,0 +1,92 @@
|
|||
<#include "../include/import_global.ftl">
|
||||
<#include "../include/html_doctype.ftl">
|
||||
<#--
|
||||
titleMessageKey 标题标签I18N关键字,不允许null
|
||||
formAction 表单提交action,允许为null
|
||||
readonly 是否只读操作,允许为null
|
||||
-->
|
||||
<#assign formAction=(formAction!'#')>
|
||||
<#assign readonly=(readonly!false)>
|
||||
<#assign isAdd=(formAction == 'saveAdd')>
|
||||
<html>
|
||||
<head>
|
||||
<#include "../include/html_head.ftl">
|
||||
<title><#include "../include/html_title_app_name.ftl"><@spring.message code='${titleMessageKey}' /></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="${pageId}" class="page-form page-form-dataSetResDirectory">
|
||||
<form id="${pageId}-form" action="${contextPath}/dataSetResDirectory/${formAction}" method="POST">
|
||||
<div class="form-head"></div>
|
||||
<div class="form-content">
|
||||
<input type="hidden" name="id" value="${(dataSetResDirectory.id)!''?html}" />
|
||||
<div class="form-item">
|
||||
<div class="form-item-label">
|
||||
<label><@spring.message code='dataSetResDirectory.directory' /></label>
|
||||
</div>
|
||||
<div class="form-item-value">
|
||||
<input type="text" name="directory" value="${(dataSetResDirectory.directory)!''?html}" class="ui-widget ui-widget-content" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item-label">
|
||||
<label><@spring.message code='dataSetResDirectory.desc' /></label>
|
||||
</div>
|
||||
<div class="form-item-value">
|
||||
<textarea name="desc" class="ui-widget ui-widget-content">${(dataSetResDirectory.desc)!''?html}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-foot" style="text-align:center;">
|
||||
<#if !readonly>
|
||||
<input type="submit" value="<@spring.message code='save' />" class="recommended" />
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<#include "../include/page_js_obj.ftl" >
|
||||
<#include "../include/page_obj_form.ftl">
|
||||
<script type="text/javascript">
|
||||
(function(po)
|
||||
{
|
||||
$.initButtons(po.element());
|
||||
|
||||
po.url = function(action)
|
||||
{
|
||||
return "${contextPath}/dataSetResDirectory/" + action;
|
||||
};
|
||||
|
||||
<#if !readonly>
|
||||
po.form().validate(
|
||||
{
|
||||
rules :
|
||||
{
|
||||
"directory" : "required"
|
||||
},
|
||||
messages :
|
||||
{
|
||||
"directory" : "<@spring.message code='validation.required' />"
|
||||
},
|
||||
submitHandler : function(form)
|
||||
{
|
||||
var data = $.formToJson(form);
|
||||
|
||||
$.ajaxJson($(form).attr("action"),
|
||||
{
|
||||
data: data,
|
||||
success : function(response)
|
||||
{
|
||||
po.pageParamCallAfterSave(true, response.data);
|
||||
}
|
||||
});
|
||||
},
|
||||
errorPlacement : function(error, element)
|
||||
{
|
||||
error.appendTo(element.closest(".form-item-value"));
|
||||
}
|
||||
});
|
||||
</#if>
|
||||
})
|
||||
(${pageId});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,158 @@
|
|||
<#include "../include/import_global.ftl">
|
||||
<#include "../include/html_doctype.ftl">
|
||||
<#--
|
||||
titleMessageKey 标题标签I18N关键字,不允许null
|
||||
selectOperation 是否选择操作,允许为null
|
||||
-->
|
||||
<#assign selectOperation=(selectOperation!false)>
|
||||
<#assign DataSetResDirectory=statics['org.datagear.management.domain.DataSetResDirectory']>
|
||||
<html>
|
||||
<head>
|
||||
<#include "../include/html_head.ftl">
|
||||
<title><#include "../include/html_title_app_name.ftl"><@spring.message code='${titleMessageKey}' /></title>
|
||||
</head>
|
||||
<body class="fill-parent">
|
||||
<#if !isAjaxRequest>
|
||||
<div class="fill-parent">
|
||||
</#if>
|
||||
<#include "../include/page_js_obj.ftl">
|
||||
<div id="${pageId}" class="page-grid page-grid-dataSetResDirectory">
|
||||
<div class="head">
|
||||
<div class="search search-dataSetResDirectory">
|
||||
<#include "../include/page_obj_searchform.html.ftl">
|
||||
</div>
|
||||
<div class="operation">
|
||||
<#if selectOperation>
|
||||
<input name="confirmButton" type="button" class="recommended" value="<@spring.message code='confirm' />" />
|
||||
<input name="viewButton" type="button" class="view-button" value="<@spring.message code='view' />" />
|
||||
<#else>
|
||||
<input name="addButton" type="button" value="<@spring.message code='add' />" />
|
||||
<input name="editButton" type="button" value="<@spring.message code='edit' />" />
|
||||
<input name="viewButton" type="button" value="<@spring.message code='view' />" />
|
||||
<#if !(currentUser.anonymous)>
|
||||
<input name="shareButton" type="button" value="<@spring.message code='share' />" />
|
||||
</#if>
|
||||
<input name="deleteButton" type="button" value="<@spring.message code='delete' />" />
|
||||
</#if>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<table id="${pageId}-table" width="100%" class="hover stripe">
|
||||
</table>
|
||||
</div>
|
||||
<div class="foot">
|
||||
<div class="pagination-wrapper">
|
||||
<div id="${pageId}-pagination" class="pagination"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#if !isAjaxRequest>
|
||||
</div>
|
||||
</#if>
|
||||
<#include "../include/page_obj_searchform_js.ftl">
|
||||
<#include "../include/page_obj_pagination.ftl">
|
||||
<#include "../include/page_obj_grid.ftl">
|
||||
<#include "../include/page_obj_data_permission.ftl" >
|
||||
<script type="text/javascript">
|
||||
(function(po)
|
||||
{
|
||||
$.initButtons(po.element(".operation"));
|
||||
|
||||
po.currentUser = <@writeJson var=currentUser />;
|
||||
|
||||
po.url = function(action)
|
||||
{
|
||||
return "${contextPath}/dataSetResDirectory/" + action;
|
||||
};
|
||||
|
||||
po.element("input[name=addButton]").click(function()
|
||||
{
|
||||
po.open(po.url("add"),
|
||||
{
|
||||
<#if selectOperation>
|
||||
pageParam:
|
||||
{
|
||||
afterSave: function(data)
|
||||
{
|
||||
po.pageParamCallSelect(true, data);
|
||||
}
|
||||
}
|
||||
</#if>
|
||||
});
|
||||
});
|
||||
|
||||
po.element("input[name=editButton]").click(function()
|
||||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
var data = {"id" : row.id};
|
||||
|
||||
po.open(po.url("edit"), { data : data });
|
||||
});
|
||||
});
|
||||
|
||||
po.element("input[name=viewButton]").click(function()
|
||||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
var data = {"id" : row.id};
|
||||
|
||||
po.open(po.url("view"),
|
||||
{
|
||||
data : data
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
po.element("input[name=shareButton]").click(function()
|
||||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
if(!po.canAuthorize(row, po.currentUser))
|
||||
{
|
||||
$.tipInfo("<@spring.message code='error.PermissionDeniedException' />");
|
||||
return;
|
||||
}
|
||||
|
||||
var options = {};
|
||||
$.setGridPageHeightOption(options);
|
||||
po.open(contextPath+"/authorization/${DataSetResDirectory.AUTHORIZATION_RESOURCE_TYPE}/query?"
|
||||
+"${statics['org.datagear.web.controller.AuthorizationController'].PARAM_ASSIGNED_RESOURCE}="+encodeURIComponent(row.id), options);
|
||||
});
|
||||
});
|
||||
|
||||
po.element("input[name=deleteButton]").click(
|
||||
function()
|
||||
{
|
||||
po.executeOnSelects(function(rows)
|
||||
{
|
||||
po.confirmDeleteEntities(po.url("delete"), rows);
|
||||
});
|
||||
});
|
||||
|
||||
po.element("input[name=confirmButton]").click(function()
|
||||
{
|
||||
po.executeOnSelect(function(row)
|
||||
{
|
||||
po.pageParamCallSelect(true, row);
|
||||
});
|
||||
});
|
||||
|
||||
var tableColumns = [
|
||||
$.buildDataTablesColumnSimpleOption("<@spring.message code='id' />", "id", true),
|
||||
$.buildDataTablesColumnSimpleOption($.buildDataTablesColumnTitleSearchable("<@spring.message code='dataSetResDirectory.directory' />"), "directory"),
|
||||
$.buildDataTablesColumnSimpleOption($.buildDataTablesColumnTitleSearchable("<@spring.message code='dataSetResDirectory.desc' />"), "desc"),
|
||||
$.buildDataTablesColumnSimpleOption("<@spring.message code='dataSetResDirectory.createUser' />", "createUser.realName", true),
|
||||
$.buildDataTablesColumnSimpleOption("<@spring.message code='dataSetResDirectory.createTime' />", "createTime", true)
|
||||
];
|
||||
|
||||
po.initPagination();
|
||||
|
||||
var tableSettings = po.buildDataTableSettingsAjax(tableColumns, po.url("pagingQueryData"));
|
||||
po.initDataTable(tableSettings);
|
||||
po.bindResizeDataTable();
|
||||
})
|
||||
(${pageId});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -841,6 +841,12 @@ ${detectNewVersionScript}
|
|||
$.setGridPageHeightOption(options);
|
||||
po.open(contextPath+"/user/query", options);
|
||||
}
|
||||
else if($item.hasClass("system-set-dataSetResDirectory-manage"))
|
||||
{
|
||||
var options = {};
|
||||
$.setGridPageHeightOption(options);
|
||||
po.open(contextPath+"/dataSetResDirectory/pagingQuery", options);
|
||||
}
|
||||
else if($item.hasClass("system-set-rold-manage"))
|
||||
{
|
||||
var options = {};
|
||||
|
@ -1406,6 +1412,8 @@ ${detectNewVersionScript}
|
|||
<li class="system-set-chartPlugin-manage"><a href="javascript:void(0);"><@spring.message code='main.manageChartPlugin' /></a></li>
|
||||
<li class="system-set-chartPlugin-upload"><a href="javascript:void(0);"><@spring.message code='main.uploadChartPlugin' /></a></li>
|
||||
<li class="ui-widget-header"></li>
|
||||
<li class="system-set-dataSetResDirectory-manage"><a href="javascript:void(0);"><@spring.message code='main.manageDataSetResDirectory' /></a></li>
|
||||
<li class="ui-widget-header"></li>
|
||||
<li class="system-set-user-manage"><a href="javascript:void(0);"><@spring.message code='main.manageUser' /></a></li>
|
||||
<li class="system-set-user-add"><a href="javascript:void(0);"><@spring.message code='main.addUser' /></a></li>
|
||||
<li class="system-set-rold-manage"><a href="javascript:void(0);"><@spring.message code='main.manageRole' /></a></li>
|
||||
|
|
Loading…
Reference in New Issue