From 491ff98916c64fdc0a89ae35beb448d0199d9a59 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Mon, 10 Feb 2020 16:20:13 +0800 Subject: [PATCH] fix: Theme refresh issue #553 (#554) --- .../freemarker/FreemarkerConfigAwareListener.java | 11 ++++++++++- .../run/halo/app/service/impl/ThemeServiceImpl.java | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/run/halo/app/listener/freemarker/FreemarkerConfigAwareListener.java b/src/main/java/run/halo/app/listener/freemarker/FreemarkerConfigAwareListener.java index dd7bb0912..2738876e0 100644 --- a/src/main/java/run/halo/app/listener/freemarker/FreemarkerConfigAwareListener.java +++ b/src/main/java/run/halo/app/listener/freemarker/FreemarkerConfigAwareListener.java @@ -10,6 +10,7 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import run.halo.app.event.options.OptionUpdatedEvent; import run.halo.app.event.theme.ThemeActivatedEvent; +import run.halo.app.event.theme.ThemeUpdatedEvent; import run.halo.app.event.user.UserUpdatedEvent; import run.halo.app.handler.theme.config.support.ThemeProperty; import run.halo.app.model.properties.OtherProperties; @@ -23,7 +24,8 @@ import run.halo.app.service.UserService; * Freemarker config aware listener. * * @author johnniang - * @date 19-4-20 + * @author ryanwang + * @date 2019-04-20 */ @Slf4j @Component @@ -68,6 +70,13 @@ public class FreemarkerConfigAwareListener { loadThemeConfig(); } + @EventListener + public void onThemeUpdatedEvent(ThemeUpdatedEvent event) throws TemplateModelException { + log.debug("Received theme updated event"); + + loadThemeConfig(); + } + @EventListener public void onUserUpdate(UserUpdatedEvent event) throws TemplateModelException { log.debug("Received user updated event, user id: [{}]", event.getUserId()); diff --git a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java index 32c9f92a5..3587dbf6c 100644 --- a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java @@ -597,6 +597,8 @@ public class ThemeServiceImpl implements ThemeService { // Coping new theme files to old theme folder. FileUtils.copyFolder(preparePath, Paths.get(updatingTheme.getThemePath())); + eventPublisher.publishEvent(new ThemeUpdatedEvent(this)); + // Gets theme property again. return getProperty(Paths.get(updatingTheme.getThemePath())); } catch (IOException e) {