[analysis]完善HTM看板渲染代码变量名

This commit is contained in:
interestinglife 2020-05-30 10:47:03 +08:00
parent 1591146872
commit 03700fbce0
3 changed files with 33 additions and 21 deletions

View File

@ -437,11 +437,14 @@ public class HtmlTplDashboardWidgetHtmlRenderer<T extends HtmlRenderContext> ext
protected void writeHtmlTplDashboardScript(T renderContext, HtmlTplDashboard dashboard, DashboardInfo dashboardInfo)
throws IOException
{
String dashboardVar = dashboardInfo.getDashboardVar();
if (StringUtil.isEmpty(dashboardVar))
dashboardVar = getDefaultDashboardVar();
String globalDashboardVar = dashboardInfo.getDashboardVar();
if (StringUtil.isEmpty(globalDashboardVar))
globalDashboardVar = getDefaultDashboardVar();
dashboard.setVarName(dashboardVar);
String tmpRenderContextVarName = HtmlRenderAttributes.generateRenderContextVarName(renderContext);
String localDashboardVarName = HtmlRenderAttributes.generateDashboardVarName(renderContext);
dashboard.setVarName(localDashboardVarName);
Writer out = renderContext.getWriter();
@ -451,13 +454,13 @@ public class HtmlTplDashboardWidgetHtmlRenderer<T extends HtmlRenderContext> ext
out.write("(function(){");
writeNewLine(out);
writeHtmlTplDashboardJSVar(renderContext, out, dashboard);
writeHtmlTplDashboardJSVar(renderContext, out, dashboard, tmpRenderContextVarName);
writeHtmlChartScripts(renderContext, dashboard, dashboardInfo);
writeHtmlTplDashboardJSInit(out, dashboard);
writeHtmlTplDashboardJSFactoryInit(out, dashboard, dashboardInfo.getDashboardFactoryVar());
out.write("window." + dashboardVar + "=" + dashboardVar + ";");
out.write("window." + globalDashboardVar + "=" + localDashboardVarName + ";");
writeNewLine(out);
writeNewLine(out);

View File

@ -789,24 +789,28 @@ public abstract class HtmlTplDashboardWidgetRenderer<T extends HtmlRenderContext
/**
* {@linkplain HtmlTplDashboard} JS变量
* <p>
* <code>var dashboard = {...};</code>
* <code>
* <pre>
* var [tmpRenderContextVarName] = {...};
* var [dashboardVarName] = {...};
* </pre>
* </code>
* </p>
*
* @param renderContext
* @param out
* @param dashboard
* @param tmpRenderContextVarName
* @throws IOException
*/
protected void writeHtmlTplDashboardJSVar(HtmlRenderContext renderContext, Writer out, HtmlTplDashboard dashboard)
protected void writeHtmlTplDashboardJSVar(HtmlRenderContext renderContext, Writer out, HtmlTplDashboard dashboard,
String tmpRenderContextVarName)
throws IOException
{
if (StringUtil.isEmpty(dashboard.getVarName()))
throw new IllegalArgumentException();
String tmpRenderContextVarName = HtmlRenderAttributes
.generateRenderContextVarName(Long.toHexString(System.currentTimeMillis()));
getHtmlRenderContextScriptObjectWriter().writeNoAttributes(out, renderContext, tmpRenderContextVarName);
getHtmlTplDashboardScriptObjectWriter().write(out, dashboard, tmpRenderContextVarName);
}

View File

@ -108,8 +108,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
Assert.assertTrue(html.contains("var myDashboard"));
Assert.assertTrue(html.contains("myDashboardFactory.init(myDashboard);"));
Assert.assertTrue(html.contains("var dataGearDashboard2"));
Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
}
// 看板属性无引号
@ -134,8 +135,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
Assert.assertTrue(html.contains("var myDashboard"));
Assert.assertTrue(html.contains("myDashboardFactory.init(myDashboard);"));
Assert.assertTrue(html.contains("var dataGearDashboard2"));
Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
}
// 看板属性单引号
@ -160,8 +162,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
Assert.assertTrue(html.contains("var myDashboard"));
Assert.assertTrue(html.contains("myDashboardFactory.init(myDashboard);"));
Assert.assertTrue(html.contains("var dataGearDashboard2"));
Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
}
// 看板属性多个导入排除值
@ -186,8 +189,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertFalse(html.contains(IMPORT_CONTENT_THEME));
Assert.assertFalse(html.contains(IMPORT_CONTENT_STYLE));
Assert.assertTrue(html.contains("var myDashboard"));
Assert.assertTrue(html.contains("myDashboardFactory.init(myDashboard);"));
Assert.assertTrue(html.contains("var dataGearDashboard2"));
Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
}
// 看板属性默认
@ -211,8 +215,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
Assert.assertTrue(html.contains("var dashboard"));
Assert.assertTrue(html.contains("dashboardFactory.init(dashboard);"));
Assert.assertTrue(html.contains("var dataGearDashboard2"));
Assert.assertTrue(html.contains("dashboardFactory.init(dataGearDashboard2);"));
Assert.assertTrue(html.contains("window.dashboard=dataGearDashboard2;"));
}
// 图表属性