Commit 1f9d3ad6 authored by Liang Ding's avatar Liang Ding

#12644

parent d6e0746f
......@@ -156,10 +156,7 @@ public class ArticleProcessor {
return;
}
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
context.setRenderer(renderer);
renderer.setTemplateName("article-pwd.ftl");
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(context, "article-pwd.ftl");
final Map<String, Object> dataModel = renderer.getDataModel();
dataModel.put("articleId", articleId);
dataModel.put("articlePermalink", article.optString(Article.ARTICLE_PERMALINK));
......
......@@ -193,11 +193,9 @@ public class IndexProcessor {
return;
}
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(context, "start.ftl");
final Map<String, Object> dataModel = renderer.getDataModel();
final HttpServletRequest request = context.getRequest();
renderer.setTemplateName("start.ftl");
context.setRenderer(renderer);
final Map<String, String> langs = langPropsService.getAll(Locales.getLocale(request));
dataModel.putAll(langs);
dataModel.put(Common.VERSION, SoloServletListener.VERSION);
......
......@@ -125,10 +125,8 @@ public class AdminConsole {
* @param context the specified context
*/
public void showAdminIndex(final RequestContext context) {
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
context.setRenderer(renderer);
final String templateName = "admin-index.ftl";
renderer.setTemplateName(templateName);
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(context, templateName);
final Map<String, String> langs = langPropsService.getAll(Latkes.getLocale());
final Map<String, Object> dataModel = renderer.getDataModel();
dataModel.putAll(langs);
......@@ -175,13 +173,9 @@ public class AdminConsole {
* @param context the specified context
*/
public void showAdminFunctions(final RequestContext context) {
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
context.setRenderer(renderer);
final String requestURI = context.requestURI();
final String templateName = StringUtils.substringBetween(requestURI, Latkes.getContextPath() + '/', ".") + ".ftl";
LOGGER.log(Level.TRACE, "Admin function[templateName={0}]", templateName);
renderer.setTemplateName(templateName);
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(context, templateName);
final Locale locale = Latkes.getLocale();
final Map<String, String> langs = langPropsService.getAll(locale);
......@@ -202,10 +196,8 @@ public class AdminConsole {
* @param context the specified context
*/
public void showAdminPreferenceFunction(final RequestContext context) {
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
context.setRenderer(renderer);
final String templateName = "admin-preference.ftl";
renderer.setTemplateName(templateName);
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(context, templateName);
final Locale locale = Latkes.getLocale();
final Map<String, String> langs = langPropsService.getAll(locale);
......
......@@ -23,14 +23,31 @@ import org.b3log.latke.servlet.renderer.AbstractFreeMarkerRenderer;
import org.b3log.solo.util.Skins;
/**
* <a href="http://freemarker.org">FreeMarker</a> HTTP response renderer for administrator console and initialization rendering.
* <a href="http://freemarker.org">FreeMarker</a> HTTP response renderer for administrator console.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.5, Sep 26, 2018
* @version 1.0.1.6, Feb 7, 2019
* @since 0.4.1
*/
public final class ConsoleRenderer extends AbstractFreeMarkerRenderer {
/**
* HTTP servlet request context.
*/
private final RequestContext context;
/**
* Constructs a skin renderer with the specified request context and template name.
*
* @param context the specified request context
* @param templateName the specified template name
*/
public ConsoleRenderer(final RequestContext context, final String templateName) {
this.context = context;
this.context.setRenderer(this);
setTemplateName("admin/" + templateName);
}
@Override
protected Template getTemplate() {
return Skins.getTemplate(getTemplateName());
......
......@@ -152,9 +152,7 @@ public class PluginConsole {
* @param context the specified http request context
*/
public void toSetting(final RequestContext context) {
final ConsoleRenderer renderer = new ConsoleRenderer();
context.setRenderer(renderer);
renderer.setTemplateName("admin-plugin-setting.ftl");
final ConsoleRenderer renderer = new ConsoleRenderer(context, "admin-plugin-setting.ftl");
final Map<String, Object> dataModel = renderer.getDataModel();
try {
......
......@@ -31,7 +31,7 @@
<title>${adminConsoleLabel} - ${blogTitle}</title>
<link type="text/css" rel="stylesheet" href="${staticServePath}/css/default-base${miniPostfix}.css?${staticResourceVersion}" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/css/default-admin${miniPostfix}.css?${staticResourceVersion}" />
<link type="text/css" rel="stylesheet" href="https://vditor.b3log.org/0.1.3/index.classic.css" />
<link type="text/css" rel="stylesheet" href="https://vditor.b3log.org/0.1.5/index.classic.css" />
<link type="text/css" rel="stylesheet" href="${staticServePath}/js/lib/highlight-9.13.1/styles/github.css?${staticResourceVersion}" />
<link rel="icon" type="image/png" href="${staticServePath}/favicon.png" />
<link rel="manifest" href="${servePath}/manifest.json">
......@@ -169,7 +169,7 @@
</div>
</div>
<script src="${staticServePath}/js/lib/compress/admin-lib.min.js"></script>
<script src="http://vditor.b3log.org/0.1.3/index.min.js"></script>
<script src="http://vditor.b3log.org/0.1.5/index.min.js"></script>
<script src="${staticServePath}/js/common${miniPostfix}.js"></script>
<#if "" == miniPostfix>
<script src="${staticServePath}/js/admin/admin.js"></script>
......
......@@ -17,7 +17,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<#include "macro-common-page.ftl">
<#include "../macro-common-page.ftl">
<@commonPage "${articleViewPwdLabel}">
<h2>
......
Markdown is supported
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