forked from p85126437/datagear
[web]完善数据库URL构建器代码编辑功能,添加预览功能和代码说明
This commit is contained in:
parent
de3d2c5f39
commit
55c70c98c9
|
@ -106,11 +106,22 @@ public class SchemaUrlBuilderController extends AbstractSchemaModelController im
|
|||
return buildOperationMessageSaveSuccessResponseEntity(request);
|
||||
}
|
||||
|
||||
@RequestMapping("/previewScriptCode")
|
||||
public String previewScriptCode(HttpServletRequest request,
|
||||
@RequestParam(value = "scriptCode", required = false) String scriptCode) throws IOException
|
||||
{
|
||||
request.setAttribute("scriptCode", scriptCode);
|
||||
request.setAttribute("preview", "1");
|
||||
|
||||
return "/schema/schema_build_url";
|
||||
}
|
||||
|
||||
@RequestMapping("/buildUrl")
|
||||
public String buildSchemaUrl(HttpServletRequest request, HttpServletResponse response,
|
||||
org.springframework.ui.Model springModel) throws IOException
|
||||
public String buildSchemaUrl(HttpServletRequest request, @RequestParam(value = "url", required = false) String url)
|
||||
throws IOException
|
||||
{
|
||||
request.setAttribute("scriptCode", getUrlBuilderScript());
|
||||
request.setAttribute("url", url);
|
||||
|
||||
return "/schema/schema_build_url";
|
||||
}
|
||||
|
@ -120,6 +131,11 @@ public class SchemaUrlBuilderController extends AbstractSchemaModelController im
|
|||
if (scriptCode == null)
|
||||
scriptCode = "";
|
||||
|
||||
scriptCode = scriptCode.trim();
|
||||
|
||||
if (scriptCode.endsWith(","))
|
||||
scriptCode = scriptCode.substring(0, scriptCode.length() - 1);
|
||||
|
||||
Writer out = IOUtil.getWriter(this.schemaUrlBuilderScriptFile, DB_URL_BUILDER_ENCODING);
|
||||
|
||||
try
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
<!-- 设置数据库URL构建器脚本 -->
|
||||
<intercept-url pattern="/schemaUrlBuilder/editScriptCode" access="ROLE_ADMIN" />
|
||||
<intercept-url pattern="/schemaUrlBuilder/saveScriptCode" access="ROLE_ADMIN" />
|
||||
<intercept-url pattern="/schemaUrlBuilder/previewScriptCode" access="ROLE_ADMIN" />
|
||||
|
||||
<intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY, ROLE_USER, ROLE_ADMIN" />
|
||||
|
||||
|
|
|
@ -39,6 +39,9 @@ advancedSetting=\u9AD8\u7EA7\u8BBE\u7F6E
|
|||
import=\u5BFC\u5165
|
||||
export=\u5BFC\u51FA
|
||||
find=\u67E5\u627E
|
||||
colon=\uFF1A
|
||||
comma=\uFF0C
|
||||
preview=\u9884\u89C8
|
||||
|
||||
dataTables.noData=\u6CA1\u6709\u6570\u636E
|
||||
dataTables.zeroRecords=\u6CA1\u6709\u7ED3\u679C
|
||||
|
@ -237,6 +240,15 @@ schema.loadUrlBuilderScriptError=\u52A0\u8F7D\u6570\u636E\u5E93URL\u6784\u5EFA\u
|
|||
#schemaUrlBuilder
|
||||
schemaUrlBuilder.schemaUrlBuilder=\u6570\u636E\u5E93URL\u6784\u5EFA\u5668
|
||||
schemaUrlBuilder.scriptCode=\u6784\u5EFA\u5668\u4EE3\u7801
|
||||
schemaUrlBuilder.scriptCodeNote.0=\u6784\u5EFA\u5668\u4EE3\u7801\u683C\u5F0F\u5982\u4E0B\uFF1A
|
||||
schemaUrlBuilder.scriptCodeNote.required=\u5FC5\u586B
|
||||
schemaUrlBuilder.scriptCodeNote.optional=\u9009\u586B
|
||||
schemaUrlBuilder.scriptCodeNote.dbName=\u6570\u636E\u5E93\u540D\u79F0
|
||||
schemaUrlBuilder.scriptCodeNote.template=URL\u6A21\u677F
|
||||
schemaUrlBuilder.scriptCodeNote.defaultValue=\u9ED8\u8BA4\u503C
|
||||
schemaUrlBuilder.scriptCodeNote.dbDesc=\u6570\u636E\u5E93\u63CF\u8FF0
|
||||
schemaUrlBuilder.scriptCodeNote.order=\u5C55\u793A\u6392\u5E8F\u503C
|
||||
schemaUrlBuilder.scriptCodeNote.1=\u591A\u4E2A\u6784\u5EFA\u5668\u4EE3\u7801\u4E4B\u95F4\u4EE5\u82F1\u6587\u201C,\u201D\u9694\u5F00
|
||||
|
||||
#user
|
||||
user.addUser=\u6DFB\u52A0\u7528\u6237
|
||||
|
|
|
@ -7,28 +7,24 @@
|
|||
<%@ include file="../include/jsp_import.jsp" %>
|
||||
<%@ include file="../include/jsp_ajax_request.jsp" %>
|
||||
<%@ include file="../include/jsp_jstl.jsp" %>
|
||||
<%@ include file="../include/jsp_method_get_string_value.jsp" %>
|
||||
<%@ include file="../include/jsp_page_id.jsp" %>
|
||||
<%@ include file="../include/html_doctype.jsp" %>
|
||||
<%
|
||||
boolean isPreview = "1".equals(getStringValue(request, "preview"));
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<%@ include file="../include/html_head.jsp" %>
|
||||
<script type="text/javascript">
|
||||
$.schemaUrlBuilder.clear();
|
||||
try
|
||||
{
|
||||
$.schemaUrlBuilder.add(
|
||||
<%=request.getAttribute("scriptCode")%>
|
||||
);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
$.tipError("<fmt:message key='schema.loadUrlBuilderScriptError' />");
|
||||
}
|
||||
</script>
|
||||
<title><%@ include file="../include/html_title_app_name.jsp" %><fmt:message key='schema.schemaBuildUrl' /></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="${pageId}" class="schema-build-url-form">
|
||||
<div id="${pageId}" class="page-data-form page-data-form-buildSchemaUrl">
|
||||
<div id="dbUrlBuilderScriptCode" style="display: none;">
|
||||
$.schemaUrlBuilder.add(
|
||||
<%=request.getAttribute("scriptCode")%>
|
||||
);
|
||||
</div>
|
||||
<form id="${pageId}-form" action="#" method="POST">
|
||||
<div class="form-head"></div>
|
||||
<div class="form-content">
|
||||
|
@ -70,6 +66,9 @@ catch(e)
|
|||
<input type="submit" value="<fmt:message key='confirm' />" class="recommended" />
|
||||
</div>
|
||||
</form>
|
||||
<%if(isPreview){%>
|
||||
<div class="url-preview"></div>
|
||||
<%}%>
|
||||
</div>
|
||||
<%@ include file="../include/page_js_obj.jsp" %>
|
||||
<script type="text/javascript">
|
||||
|
@ -78,12 +77,21 @@ catch(e)
|
|||
pageObj.form = pageObj.element("#${pageId}-form");
|
||||
pageObj.dbNameSelect = pageObj.element("select[name='dbName']");
|
||||
|
||||
var pageParam = pageObj.pageParam();
|
||||
|
||||
pageObj.initUrl = (pageParam && pageParam.initUrl ? pageParam.initUrl : "");
|
||||
pageObj.initUrl = "<c:out value='${url}' />";
|
||||
|
||||
$("input:submit, input:button, input:reset, button", pageObj.page).button();
|
||||
|
||||
$.schemaUrlBuilder.clear();
|
||||
var scriptCode = pageObj.element("#dbUrlBuilderScriptCode").text();
|
||||
try
|
||||
{
|
||||
eval(scriptCode);
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
$.tipError("<fmt:message key='schema.loadUrlBuilderScriptError' /><fmt:message key='colon' />" + e.message);
|
||||
}
|
||||
|
||||
var builderInfos = $.schemaUrlBuilder.list();
|
||||
for(var i=0; i<builderInfos.length; i++)
|
||||
{
|
||||
|
@ -137,15 +145,21 @@ catch(e)
|
|||
{
|
||||
submitHandler : function(form)
|
||||
{
|
||||
var url = pageObj.buildFormUrl();
|
||||
|
||||
<%if(isPreview){%>
|
||||
pageObj.element(".url-preview").text(url);
|
||||
<%}else{%>
|
||||
var pageParam = pageObj.pageParam();
|
||||
|
||||
var close = true;
|
||||
|
||||
if(pageParam && pageParam.setSchemaUrl)
|
||||
close = (pageParam.setSchemaUrl(pageObj.buildFormUrl()) != false);
|
||||
close = (pageParam.setSchemaUrl(url) != false);
|
||||
|
||||
if(close)
|
||||
pageObj.close();
|
||||
<%}%>
|
||||
|
||||
return false;
|
||||
},
|
||||
|
|
|
@ -132,10 +132,10 @@ boolean readonly = ("true".equalsIgnoreCase(getStringValue(request, SchemaContro
|
|||
{
|
||||
pageObj.open(contextPath+"/schemaUrlBuilder/buildUrl",
|
||||
{
|
||||
data : { url : pageObj.element("input[name='url']").val() },
|
||||
width: "60%",
|
||||
pageParam :
|
||||
{
|
||||
"initUrl" : pageObj.element("input[name='url']").val(),
|
||||
"setSchemaUrl" : function(url)
|
||||
{
|
||||
pageObj.element("input[name='url']").val(url);
|
||||
|
|
|
@ -24,8 +24,37 @@
|
|||
<div class="form-item-label">
|
||||
<label><fmt:message key='schemaUrlBuilder.scriptCode' /></label>
|
||||
</div>
|
||||
<div class="form-item-value form-item-value-scriptCode">
|
||||
<textarea name="scriptCode" class="ui-widget ui-widget-content script-code-textarea"><c:out value='${scriptCode}' /></textarea>
|
||||
<div class="script-code-note">
|
||||
<span><fmt:message key='schemaUrlBuilder.scriptCodeNote.0' /></span>
|
||||
<pre>
|
||||
{
|
||||
//<fmt:message key='schemaUrlBuilder.scriptCodeNote.required' /><fmt:message key='comma' /><fmt:message key='schemaUrlBuilder.scriptCodeNote.dbName' />
|
||||
dbName : "...",
|
||||
|
||||
//<fmt:message key='schemaUrlBuilder.scriptCodeNote.required' /><fmt:message key='comma' /><fmt:message key='schemaUrlBuilder.scriptCodeNote.template' />
|
||||
template : "...{host}...{port}...{name}...",
|
||||
|
||||
//<fmt:message key='schemaUrlBuilder.scriptCodeNote.optional' /><fmt:message key='comma' /><fmt:message key='schemaUrlBuilder.scriptCodeNote.defaultValue' />
|
||||
defaultValue : { host : "...", port : "...", name : "" },
|
||||
|
||||
//<fmt:message key='schemaUrlBuilder.scriptCodeNote.optional' /><fmt:message key='comma' /><fmt:message key='schemaUrlBuilder.scriptCodeNote.dbDesc' />
|
||||
dbDesc : "...",
|
||||
|
||||
//<fmt:message key='schemaUrlBuilder.scriptCodeNote.optional' /><fmt:message key='comma' /><fmt:message key='schemaUrlBuilder.scriptCodeNote.order' />
|
||||
order : 6
|
||||
}</pre>
|
||||
<span><fmt:message key='schemaUrlBuilder.scriptCodeNote.1' /></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<div class="form-item-label">
|
||||
<label> </label>
|
||||
</div>
|
||||
<div class="form-item-value">
|
||||
<textarea name="scriptCode" style="width:30em; height: 20em;"><c:out value='${scriptCode}' /></textarea>
|
||||
<button id="previewScriptCode" type="button" class="preview-script-code-button"><fmt:message key='preview' /></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -44,6 +73,14 @@
|
|||
|
||||
pageObj.form = pageObj.element("#${pageId}-form");
|
||||
|
||||
pageObj.element("#previewScriptCode").click(function()
|
||||
{
|
||||
pageObj.open(contextPath+"/schemaUrlBuilder/previewScriptCode",
|
||||
{
|
||||
data : { "scriptCode" : pageObj.element("textarea[name='scriptCode']").val() }
|
||||
});
|
||||
});
|
||||
|
||||
pageObj.form.validate(
|
||||
{
|
||||
submitHandler : function(form)
|
||||
|
|
|
@ -180,7 +180,7 @@
|
|||
{
|
||||
var myBuilder = ele[j];
|
||||
|
||||
if(myBuilder.dbName)
|
||||
if(myBuilder && myBuilder.dbName)
|
||||
{
|
||||
if(myBuilder.order == undefined)
|
||||
myBuilder.order = order;
|
||||
|
|
|
@ -827,8 +827,35 @@ table.dataTable tbody tr.selected .checkbox .ui-icon{
|
|||
height: 0;
|
||||
}
|
||||
|
||||
.schema-build-url-form .schema-build-url-dbtype-select.ui-button{
|
||||
width: 13em;
|
||||
.page-data-form-buildSchemaUrl .schema-build-url-dbtype-select.ui-button{
|
||||
width: 18em;
|
||||
}
|
||||
.page-data-form-buildSchemaUrl .url-preview{
|
||||
margin-top: 1em;
|
||||
text-align: center;
|
||||
height: 2em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.page-data-form-schemaUrlBuilder .form-item-value-scriptCode{
|
||||
display: block;
|
||||
}
|
||||
.page-data-form-schemaUrlBuilder .preview-script-code-button.ui-button{
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
}
|
||||
.page-data-form-schemaUrlBuilder form .form-content .form-item .form-item-value textarea.script-code-textarea{
|
||||
width: 30em;
|
||||
height: 22em;
|
||||
}
|
||||
.page-data-form-schemaUrlBuilder .script-code-note{
|
||||
display: inline-block;
|
||||
width: 15em;
|
||||
height: 22em;
|
||||
overflow: auto;
|
||||
}
|
||||
.page-data-form-schemaUrlBuilder .script-code-note span{
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.page-data-form-reset-password{
|
||||
|
|
Loading…
Reference in New Issue