diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/DataSetSourceParseException.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/DataSetSourceParseException.java new file mode 100644 index 00000000..b5ffb298 --- /dev/null +++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/DataSetSourceParseException.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018 datagear.tech. All Rights Reserved. + */ + +/** + * + */ +package org.datagear.analysis.support; + +import org.datagear.analysis.DataSetException; + +/** + * 数据集源解析异常。 + * + * @author datagear@163.com + * + */ +public class DataSetSourceParseException extends DataSetException +{ + private static final long serialVersionUID = 1L; + + public DataSetSourceParseException() + { + super(); + } + + public DataSetSourceParseException(String message) + { + super(message); + } + + public DataSetSourceParseException(Throwable cause) + { + super(cause); + } + + public DataSetSourceParseException(String message, Throwable cause) + { + super(message, cause); + } +} diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDataSetSupport.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDataSetSupport.java index 4f83ce2c..c2e0ae76 100644 --- a/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDataSetSupport.java +++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDataSetSupport.java @@ -42,9 +42,10 @@ public class JsonDataSetSupport extends JsonSupport * * @param jsonValue * @return + * @throws DataSetSourceParseException * @throws DataSetException */ - public Object resolveValue(String jsonValue) throws DataSetException + public Object resolveValue(String jsonValue) throws DataSetSourceParseException, DataSetException { StringReader reader = new StringReader(jsonValue); return resolveValue(reader); @@ -55,9 +56,10 @@ public class JsonDataSetSupport extends JsonSupport * * @param jsonReader * @return + * @throws DataSetSourceParseException * @throws DataSetException */ - public Object resolveValue(Reader jsonReader) throws DataSetException + public Object resolveValue(Reader jsonReader) throws DataSetSourceParseException, DataSetException { try { @@ -74,10 +76,12 @@ public class JsonDataSetSupport extends JsonSupport * * @param jsonValue * @return - * @throws DataSetException + * @throws DataSetSourceParseException * @throws UnsupportedJsonResultDataException + * @throws DataSetException */ - public Object resolveResultData(String jsonValue) throws DataSetException, UnsupportedJsonResultDataException + public Object resolveResultData(String jsonValue) + throws DataSetSourceParseException, UnsupportedJsonResultDataException, DataSetException { StringReader reader = new StringReader(jsonValue); return resolveResultData(reader); @@ -89,11 +93,12 @@ public class JsonDataSetSupport extends JsonSupport * @param file * @param encoding * @return - * @throws DataSetException + * @throws DataSetSourceParseException * @throws UnsupportedJsonResultDataException + * @throws DataSetException */ public Object resolveResultData(File file, String encoding) - throws DataSetException, UnsupportedJsonResultDataException + throws DataSetSourceParseException, UnsupportedJsonResultDataException, DataSetException { Reader reader = null; @@ -102,7 +107,7 @@ public class JsonDataSetSupport extends JsonSupport reader = IOUtil.getReader(file, encoding); return resolveResultData(reader); } - catch(IOException e) + catch (IOException e) { throw new DataSetException(e); } @@ -117,10 +122,12 @@ public class JsonDataSetSupport extends JsonSupport * * @param reader * @return - * @throws DataSetException + * @throws DataSetSourceParseException * @throws UnsupportedJsonResultDataException + * @throws DataSetException */ - public Object resolveResultData(Reader reader) throws DataSetException, UnsupportedJsonResultDataException + public Object resolveResultData(Reader reader) + throws DataSetSourceParseException, UnsupportedJsonResultDataException, DataSetException { JsonNode jsonNode = null; @@ -130,7 +137,7 @@ public class JsonDataSetSupport extends JsonSupport } catch (Throwable t) { - throw new DataSetException(t); + throw new DataSetSourceParseException(t); } if (!isLegalResultDataJsonNode(jsonNode)) diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDirectoryFileDataSet.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDirectoryFileDataSet.java new file mode 100644 index 00000000..f4614ce5 --- /dev/null +++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonDirectoryFileDataSet.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2018 datagear.tech. All Rights Reserved. + */ + +/** + * + */ +package org.datagear.analysis.support; + +import java.io.File; +import java.util.List; +import java.util.Map; + +import org.datagear.analysis.DataSet; +import org.datagear.analysis.DataSetException; +import org.datagear.analysis.DataSetProperty; +import org.datagear.util.FileUtil; + +/** + * 目录内JSON文件{@linkplain DataSet}。 + * + * @author datagear@163.com + * + */ +public class JsonDirectoryFileDataSet extends AbstractJsonFileDataSet +{ + /** JSON文件所在的目录 */ + private File directory; + + /** JSON文件名 */ + private String fileName; + + public JsonDirectoryFileDataSet() + { + super(); + } + + public JsonDirectoryFileDataSet(String id, String name, File directory, String fileName) + { + super(id, name); + this.directory = directory; + this.fileName = fileName; + } + + public JsonDirectoryFileDataSet(String id, String name, List properties, File directory, + String fileName) + { + super(id, name, properties); + this.directory = directory; + this.fileName = fileName; + } + + public File getDirectory() + { + return directory; + } + + public void setDirectory(File directory) + { + this.directory = directory; + } + + public String getFileName() + { + return fileName; + } + + public void setFileName(String fileName) + { + this.fileName = fileName; + } + + @Override + protected File getJsonFile(Map paramValues) throws DataSetException + { + String fileName = resolveTemplate(this.fileName, paramValues); + File jsonFile = FileUtil.getFile(directory, fileName); + return jsonFile; + } +} diff --git a/datagear-management/src/main/java/org/datagear/management/domain/JsonFileDataSetEntity.java b/datagear-management/src/main/java/org/datagear/management/domain/JsonFileDataSetEntity.java index fc903d01..b272edd0 100644 --- a/datagear-management/src/main/java/org/datagear/management/domain/JsonFileDataSetEntity.java +++ b/datagear-management/src/main/java/org/datagear/management/domain/JsonFileDataSetEntity.java @@ -10,31 +10,20 @@ package org.datagear.management.domain; import java.io.File; import java.util.Date; import java.util.List; -import java.util.Map; -import org.datagear.analysis.DataSetException; import org.datagear.analysis.DataSetProperty; -import org.datagear.analysis.support.AbstractJsonFileDataSet; -import org.datagear.util.FileUtil; - -import com.fasterxml.jackson.annotation.JsonIgnore; +import org.datagear.analysis.support.JsonDirectoryFileDataSet; /** - * {@linkplain AbstractJsonFileDataSet}实体。 + * {@linkplain JsonDirectoryFileDataSet}实体。 * * @author datagear@163.com * */ -public class JsonFileDataSetEntity extends AbstractJsonFileDataSet implements DataSetEntity +public class JsonFileDataSetEntity extends JsonDirectoryFileDataSet implements DataSetEntity { private static final long serialVersionUID = 1L; - /** JSON文件所在的目录 */ - private File directory; - - /** JSON文件名 */ - private String fileName; - /** 展示名 */ private String displayName; @@ -56,36 +45,12 @@ public class JsonFileDataSetEntity extends AbstractJsonFileDataSet implements Da public JsonFileDataSetEntity(String id, String name, List properties, File directory, String fileName, String displayName, User createUser) { - super(id, name, properties); - this.directory = directory; - this.fileName = fileName; + super(id, name, properties, directory, fileName); this.displayName = displayName; this.createTime = new Date(); this.createUser = createUser; } - @JsonIgnore - public File getDirectory() - { - return directory; - } - - @JsonIgnore - public void setDirectory(File directory) - { - this.directory = directory; - } - - public String getFileName() - { - return fileName; - } - - public void setFileName(String fileName) - { - this.fileName = fileName; - } - public String getDisplayName() { return displayName; @@ -144,12 +109,4 @@ public class JsonFileDataSetEntity extends AbstractJsonFileDataSet implements Da { this.dataPermission = dataPermission; } - - @Override - protected File getJsonFile(Map paramValues) throws DataSetException - { - String fileName = resolveTemplate(this.fileName, paramValues); - File jsonFile = FileUtil.getFile(directory, fileName); - return jsonFile; - } } diff --git a/datagear-management/src/main/java/org/datagear/management/service/DataSetEntityService.java b/datagear-management/src/main/java/org/datagear/management/service/DataSetEntityService.java index 08283512..354efe77 100644 --- a/datagear-management/src/main/java/org/datagear/management/service/DataSetEntityService.java +++ b/datagear-management/src/main/java/org/datagear/management/service/DataSetEntityService.java @@ -11,7 +11,6 @@ import java.io.File; import org.datagear.analysis.DataSet; import org.datagear.management.domain.DataSetEntity; -import org.datagear.management.domain.JsonFileDataSetEntity; /** * {@linkplain DataSetEntity}业务服务接口。 @@ -30,16 +29,10 @@ public interface DataSetEntityService extends DataPermissionEntityService params) { @@ -291,14 +281,17 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit else if (DataSetEntity.DATA_SET_TYPE_JsonFile.equals(obj.getDataSetType())) obj = getJsonFileDataSetEntityById(obj.getId()); - Map sqlParams = buildParamMapWithIdentifierQuoteParameter(); - sqlParams.put("dataSetId", obj.getId()); + if (obj == null) + return null; - List propertyPOs = selectListMybatis("getPropertyPOs", sqlParams); + Map params = buildParamMapWithIdentifierQuoteParameter(); + params.put("dataSetId", obj.getId()); + + List propertyPOs = selectListMybatis("getPropertyPOs", params); List dataSetProperties = DataSetPropertyPO.to(propertyPOs); obj.setProperties(dataSetProperties); - List paramPOs = selectListMybatis("getParamPOs", sqlParams); + List paramPOs = selectListMybatis("getParamPOs", params); List dataSetParams = DataSetParamPO.to(paramPOs); obj.setParams(dataSetParams); @@ -333,7 +326,7 @@ public class DataSetEntityServiceImpl extends AbstractMybatisDataPermissionEntit JsonFileDataSetEntity entity = selectOneMybatis("getJsonFileDataSetEntityById", params); if (entity != null) - entity.setDirectory(getDataSetJsonFileDirectory()); + entity.setDirectory(getDataSetDirectory(id)); return entity; } diff --git a/datagear-web/src/main/java/org/datagear/web/config/CoreConfiguration.java b/datagear-web/src/main/java/org/datagear/web/config/CoreConfiguration.java index 91694d29..01cff105 100644 --- a/datagear-web/src/main/java/org/datagear/web/config/CoreConfiguration.java +++ b/datagear-web/src/main/java/org/datagear/web/config/CoreConfiguration.java @@ -228,9 +228,9 @@ public class CoreConfiguration implements InitializingBean } @Bean - public File dataSetResourceRootDirectory() throws IOException + public File dataSetRootDirectory() throws IOException { - return createDirectory(environment.getProperty("directory.dataSetResource"), true); + return createDirectory(environment.getProperty("directory.dataSet"), true); } protected File createDirectory(String directoryName, boolean createIfInexistence) throws IOException @@ -391,7 +391,7 @@ public class CoreConfiguration implements InitializingBean { DataSetEntityServiceImpl bean = new DataSetEntityServiceImpl(this.sqlSessionFactory().getObject(), this.connectionSource(), this.schemaService(), this.authorizationService(), - this.dataSetResourceRootDirectory()); + this.dataSetRootDirectory()); return bean; } diff --git a/datagear-web/src/main/java/org/datagear/web/controller/ControllerAdvice.java b/datagear-web/src/main/java/org/datagear/web/controller/ControllerAdvice.java index f9d205d2..d0e05264 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/ControllerAdvice.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/ControllerAdvice.java @@ -9,6 +9,7 @@ import java.sql.SQLException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.datagear.analysis.support.DataSetSourceParseException; import org.datagear.analysis.support.SqlDataSetUnsupportedSqlTypeException; import org.datagear.analysis.support.TemplateResolverException; import org.datagear.analysis.support.UnsupportedJsonResultDataException; @@ -422,6 +423,17 @@ public class ControllerAdvice extends AbstractController return getErrorView(request, response); } + @ExceptionHandler(DataSetSourceParseException.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + public String handleAnalysisDataSetSourceParseException(HttpServletRequest request, HttpServletResponse response, + DataSetSourceParseException exception) + { + setOperationMessageForThrowable(request, buildMessageCode(DataSetSourceParseException.class), exception, false, + exception.getMessage()); + + return getErrorView(request, response); + } + @ExceptionHandler(SaveSchemaUrlPermissionDeniedException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public String handleServicePermissionDeniedException(HttpServletRequest request, HttpServletResponse response, diff --git a/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java b/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java index bf3ee825..c338048f 100644 --- a/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java +++ b/datagear-web/src/main/java/org/datagear/web/controller/DataSetController.java @@ -5,6 +5,7 @@ package org.datagear.web.controller; import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.sql.SQLException; import java.util.ArrayList; @@ -19,10 +20,12 @@ import javax.servlet.http.HttpServletResponse; import org.datagear.analysis.DataSetParam; import org.datagear.analysis.DataSetProperty; +import org.datagear.analysis.ResolvedDataSetResult; import org.datagear.analysis.support.AbstractFmkTemplateDataSet; import org.datagear.analysis.support.AbstractJsonDataSet; import org.datagear.analysis.support.DataSetFmkTemplateResolver; import org.datagear.analysis.support.DataSetParamValueConverter; +import org.datagear.analysis.support.JsonDirectoryFileDataSet; import org.datagear.analysis.support.SqlDataSetSupport; import org.datagear.analysis.support.TemplateContext; import org.datagear.management.domain.DataSetEntity; @@ -212,7 +215,7 @@ public class DataSetController extends AbstractSchemaConnController @RequestMapping(value = "/saveAddForJsonFile", produces = CONTENT_TYPE_JSON) @ResponseBody public ResponseEntity saveAddForJsonFile(HttpServletRequest request, HttpServletResponse response, - @RequestBody JsonFileDataSetEntity dataSet) + @RequestBody JsonFileDataSetEntity dataSet) throws Throwable { User user = WebUtils.getUser(request, response); @@ -222,6 +225,7 @@ public class DataSetController extends AbstractSchemaConnController checkSaveJsonFileDataSetEntity(dataSet); this.dataSetEntityService.add(user, dataSet); + copyToJsonFileDataSetEntityDirectoryIf(dataSet, ""); return buildOperationMessageSaveSuccessResponseEntity(request, dataSet); } @@ -243,6 +247,9 @@ public class DataSetController extends AbstractSchemaConnController model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSet.editDataSet"); model.addAttribute(KEY_FORM_ACTION, "saveEditFor" + dataSet.getDataSetType()); + if (DataSetEntity.DATA_SET_TYPE_JsonFile.equals(dataSet.getDataSetType())) + model.addAttribute("availableCharsetNames", getAvailableCharsetNames()); + return buildFormView(dataSet.getDataSetType()); } @@ -277,13 +284,15 @@ public class DataSetController extends AbstractSchemaConnController @RequestMapping(value = "/saveEditFor" + DataSetEntity.DATA_SET_TYPE_JsonFile, produces = CONTENT_TYPE_JSON) @ResponseBody public ResponseEntity saveEditForJsonFile(HttpServletRequest request, - HttpServletResponse response, @RequestBody JsonFileDataSetEntity dataSet) + HttpServletResponse response, @RequestBody JsonFileDataSetEntity dataSet, + @RequestParam("originalFileName") String originalFileName) throws Throwable { User user = WebUtils.getUser(request, response); checkSaveJsonFileDataSetEntity(dataSet); this.dataSetEntityService.update(user, dataSet); + copyToJsonFileDataSetEntityDirectoryIf(dataSet, originalFileName); return buildOperationMessageSaveSuccessResponseEntity(request, dataSet); } @@ -333,6 +342,9 @@ public class DataSetController extends AbstractSchemaConnController model.addAttribute(KEY_TITLE_MESSAGE_KEY, "dataSet.viewDataSet"); model.addAttribute(KEY_READONLY, true); + if (DataSetEntity.DATA_SET_TYPE_JsonFile.equals(dataSet.getDataSetType())) + model.addAttribute("availableCharsetNames", getAvailableCharsetNames()); + return buildFormView(dataSet.getDataSetType()); } @@ -387,6 +399,9 @@ public class DataSetController extends AbstractSchemaConnController { String id = ids[i]; this.dataSetEntityService.deleteById(user, id); + + File dataSetDirectory = getDataSetEntityService().getDataSetDirectory(id); + FileUtil.deleteFile(dataSetDirectory); } return buildOperationMessageDeleteSuccessResponseEntity(request); @@ -468,16 +483,47 @@ public class DataSetController extends AbstractSchemaConnController org.springframework.ui.Model springModel, @RequestBody JsonFileDataSetEntityPreview preview) throws Throwable { - JsonFileDataSetEntity dataSet = preview.getDataSet(); + JsonDirectoryFileDataSet dataSet = preview.getDataSet(); + setJsonDirectoryFileDataSetDirectory(dataSet, preview.getOriginalFileName()); - getDataSetEntityService().inflateJsonFileDataSetEntity(dataSet); - Object data = dataSet.getResult(preview.getParamValues()); - List dataSetProperties = AbstractJsonDataSet.JSON_DATA_SET_SUPPORT - .resolveDataSetProperties(data); + ResolvedDataSetResult result = dataSet.resolve(preview.getParamValues()); - DataSetPreviewResult result = new DataSetPreviewResult(dataSet.getFileName(), data, dataSetProperties); + DataSetPreviewResult previewResult = new DataSetPreviewResult("", result.getResult().getData(), + result.getProperties()); - return result; + return previewResult; + } + + protected boolean copyToJsonFileDataSetEntityDirectoryIf(JsonFileDataSetEntity entity, String originalFileName) + throws IOException + { + String fileName = entity.getFileName(); + + if (isEmpty(entity.getId())) + return false; + + if (!isEmpty(originalFileName) && originalFileName.equals(fileName)) + return false; + + File dataSetDirectory = getDataSetEntityService().getDataSetDirectory(entity.getId()); + FileUtil.clearDirectory(dataSetDirectory); + + File tmpFile = FileUtil.getFile(getTempDataSetDirectory(), fileName); + File entityFile = FileUtil.getFile(dataSetDirectory, fileName); + + IOUtil.copy(tmpFile, entityFile, false); + + return true; + } + + protected void setJsonDirectoryFileDataSetDirectory(JsonDirectoryFileDataSet dataSet, String originalFileName) + { + String fileName = dataSet.getFileName(); + + if (!isEmpty(dataSet.getId()) && !isEmpty(originalFileName) && originalFileName.equals(fileName)) + dataSet.setDirectory(getDataSetEntityService().getDataSetDirectory(dataSet.getId())); + else + dataSet.setDirectory(getTempDataSetDirectory()); } protected String buildFormView(String dataSetType) @@ -875,7 +921,9 @@ public class DataSetController extends AbstractSchemaConnController public static class JsonFileDataSetEntityPreview { - private JsonFileDataSetEntity dataSet; + private JsonDirectoryFileDataSet dataSet; + + private String originalFileName; @SuppressWarnings("unchecked") private Map paramValues = Collections.EMPTY_MAP; @@ -885,23 +933,26 @@ public class DataSetController extends AbstractSchemaConnController super(); } - public JsonFileDataSetEntityPreview(JsonFileDataSetEntity dataSet, Map paramValues) - { - super(); - this.dataSet = dataSet; - this.paramValues = paramValues; - } - - public JsonFileDataSetEntity getDataSet() + public JsonDirectoryFileDataSet getDataSet() { return dataSet; } - public void setDataSet(JsonFileDataSetEntity dataSet) + public void setDataSet(JsonDirectoryFileDataSet dataSet) { this.dataSet = dataSet; } + public String getOriginalFileName() + { + return originalFileName; + } + + public void setOriginalFileName(String originalFileName) + { + this.originalFileName = originalFileName; + } + public Map getParamValues() { return paramValues; diff --git a/datagear-web/src/main/resources/org/datagear/web/datagear-applicationContext.xml b/datagear-web/src/main/resources/org/datagear/web/datagear-applicationContext.xml index 342fe4c0..fcbaced5 100644 --- a/datagear-web/src/main/resources/org/datagear/web/datagear-applicationContext.xml +++ b/datagear-web/src/main/resources/org/datagear/web/datagear-applicationContext.xml @@ -58,10 +58,10 @@ - - + + - + @@ -230,7 +230,7 @@ - + diff --git a/datagear-web/src/main/resources/org/datagear/web/datagear.properties b/datagear-web/src/main/resources/org/datagear/web/datagear.properties index c4367225..57b16180 100644 --- a/datagear-web/src/main/resources/org/datagear/web/datagear.properties +++ b/datagear-web/src/main/resources/org/datagear/web/datagear.properties @@ -20,8 +20,8 @@ directory.chartPlugin=${directory.root}/chartPlugin #看板主目录 directory.dashboard=${directory.root}/dashboard -#数据集资源文件主目录 -directory.dataSetResource=${directory.root}/dataset/resource +#数据集文件主目录 +directory.dataSet=${directory.root}/dataSet #数据编辑界面自定义URL构建器脚本文件 schemaUrlBuilderScriptFile=${directory.root}/db_url_builder.js diff --git a/datagear-web/src/main/resources/org/datagear/web/locales/datagear.properties b/datagear-web/src/main/resources/org/datagear/web/locales/datagear.properties index 2c33bead..f55c2590 100644 --- a/datagear-web/src/main/resources/org/datagear/web/locales/datagear.properties +++ b/datagear-web/src/main/resources/org/datagear/web/locales/datagear.properties @@ -109,6 +109,7 @@ error.httpError.400=\u8BF7\u6C42\u65E0\u6548 error.httpError.403=\u7981\u6B62\u8BBF\u95EE error.httpError.404=\u7F51\u9875\u672A\u627E\u5230 error.httpError.500=\u670D\u52A1\u51FA\u9519 +error.Throwable=\u670D\u52A1\u51FA\u9519 error.MethodArgumentNotValidException=\u8F93\u5165\u975E\u6CD5 error.MissingServletRequestParameterException=\u8F93\u5165\u975E\u6CD5 error.BindException=\u8F93\u5165\u6709\u8BEF\uFF0C\u8BF7\u68C0\u67E5 @@ -144,7 +145,7 @@ error.SqlDataSetUnsupportedSqlTypeException=SQL\u6570\u636E\u96C6\u67E5\u8BE2\u7 error.TemplateResolverException=\u53C2\u6570\u5316\u8BED\u53E5\u683C\u5F0F\u6709\u8BEF\uFF1A{0} error.UnsupportedResultDataException=\u4E0D\u652F\u6301\u7684\u6570\u636E\u96C6\u7ED3\u679C\u6570\u636E\u7C7B\u578B\uFF1A{0} error.UnsupportedJsonResultDataException=\u4E0D\u652F\u6301\u7684JSON\u6570\u636E\u7C7B\u578B\uFF0C\u9700\u4E3AJSON\u5BF9\u8C61\u3001JSON\u5BF9\u8C61\u6570\u7EC4 -error.Throwable=\u670D\u52A1\u51FA\u9519 +error.DataSetSourceParseException=\u6587\u4EF6\u89E3\u6790\u9519\u8BEF\uFF1A{0} #data data.queryWithShortcut=\u67E5\u8BE2\uFF08CTRL+ENTER\uFF09 diff --git a/datagear-web/src/main/resources/org/datagear/web/webapp/view/freemarker/analysis/dataSet/dataSet_form_JsonFile.ftl b/datagear-web/src/main/resources/org/datagear/web/webapp/view/freemarker/analysis/dataSet/dataSet_form_JsonFile.ftl index 620954b1..660b9155 100644 --- a/datagear-web/src/main/resources/org/datagear/web/webapp/view/freemarker/analysis/dataSet/dataSet_form_JsonFile.ftl +++ b/datagear-web/src/main/resources/org/datagear/web/webapp/view/freemarker/analysis/dataSet/dataSet_form_JsonFile.ftl @@ -38,7 +38,7 @@ readonly 是否只读操作,允许为null
- +
@@ -111,22 +111,31 @@ readonly 是否只读操作,允许为null if(!fileName) return false; - this.data.fileName = fileName; + this.data.dataSet = {}; + this.data.dataSet.id = po.element("input[name='id']").val(); + this.data.dataSet.name = po.element("input[name='name']").val(); + this.data.dataSet.encoding = po.element("select[name='encoding']").val(); + this.data.dataSet.fileName = fileName; + this.data.originalFileName = po.element("#${pageId}-originalFileName").val(); }; po.previewOptions.beforeMore = function() { - if(!this.data.fileName) + if(!this.data.dataSet || !this.data.dataSet.fileName) return false; }; po.previewOptions.beforeRefresh = function() { - if(!this.data.fileName) + if(!this.data.dataSet || !this.data.dataSet.fileName) return false; }; + po.previewOptions.beforeRequest = function() + { + this.data.dataSet.params = this.data.dataSetParams; + this.data.dataSetParams = undefined; + }; po.previewOptions.success = function(previewResponse) { - po.element("input[name='fileName']").val(this.data.fileName); - po.jsonEditor.focus(); + po.element("input[name='fileName']").val(this.data.dataSet.fileName); }; po.initPreviewOperations(); @@ -184,7 +193,9 @@ readonly 是否只读操作,允许为null formData["properties"] = po.getFormDataSetProperties(); formData["params"] = po.getFormDataSetParams(); - $.postJson("${contextPath}/analysis/dataSet/${formAction}", formData, + var originalFileName = po.element("#${pageId}-originalFileName").val(); + + $.postJson("${contextPath}/analysis/dataSet/${formAction}?originalFileName="+originalFileName, formData, function(response) { po.pageParamCallAfterSave(true, response.data);