diff --git a/src/main/java/cc/ryanc/halo/config/SwaggerConfiguration.java b/src/main/java/cc/ryanc/halo/config/SwaggerConfiguration.java
index b93eb124f..cd0f9fdf8 100644
--- a/src/main/java/cc/ryanc/halo/config/SwaggerConfiguration.java
+++ b/src/main/java/cc/ryanc/halo/config/SwaggerConfiguration.java
@@ -67,6 +67,15 @@ public class SwaggerConfiguration {
.enable(!haloProperties.getDocDisabled());
}
+ @Bean
+ public Docket haloAdminApi() {
+ log.debug("Doc disabled: [{}]", haloProperties.getDocDisabled());
+ return buildApiDocket("cc.ryanc.halo.admin",
+ "cc.ryanc.halo.web.controller.admin",
+ "/api/admin/**")
+ .enable(!haloProperties.getDocDisabled());
+ }
+
@Bean
SecurityConfiguration security() {
return SecurityConfigurationBuilder.builder()
diff --git a/src/main/java/cc/ryanc/halo/listener/StartedListener.java b/src/main/java/cc/ryanc/halo/listener/StartedListener.java
index d2d0afe62..7da4ab939 100644
--- a/src/main/java/cc/ryanc/halo/listener/StartedListener.java
+++ b/src/main/java/cc/ryanc/halo/listener/StartedListener.java
@@ -1,12 +1,14 @@
package cc.ryanc.halo.listener;
import cc.ryanc.halo.config.properties.HaloProperties;
+import cc.ryanc.halo.model.enums.BlogProperties;
import cc.ryanc.halo.model.support.HaloConst;
import cc.ryanc.halo.model.support.Theme;
import cc.ryanc.halo.service.OptionService;
import cc.ryanc.halo.utils.HaloUtils;
import cc.ryanc.halo.utils.ThemeUtils;
import cc.ryanc.halo.web.controller.content.base.BaseContentController;
+import cc.ryanc.halo.web.controller.support.PageJacksonSerializer;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import freemarker.template.TemplateModelException;
@@ -23,6 +25,9 @@ import java.io.FileNotFoundException;
import java.nio.charset.Charset;
import java.util.List;
+import static cc.ryanc.halo.model.support.HaloConst.DEFAULT_THEME_NAME;
+import static cc.ryanc.halo.model.support.HaloConst.OPTIONS;
+
/**
*
* 应用启动完成后所执行的方法
@@ -79,12 +84,8 @@ public class StartedListener implements ApplicationListener {
/**
- * Convert value to corresponding enum.
+ * Converts value to corresponding enum.
*
* @param enumType enum type
* @param value database value
@@ -33,9 +34,10 @@ public interface ValueEnum {
}
/**
- * Get enum value.
+ * Gets enum value.
*
* @return enum value
*/
+ @JsonValue
T getValue();
}
diff --git a/src/main/java/cc/ryanc/halo/model/support/HaloConst.java b/src/main/java/cc/ryanc/halo/model/support/HaloConst.java
index ea1308c1f..0196a336f 100644
--- a/src/main/java/cc/ryanc/halo/model/support/HaloConst.java
+++ b/src/main/java/cc/ryanc/halo/model/support/HaloConst.java
@@ -17,6 +17,12 @@ import java.util.Map;
*/
public class HaloConst {
+
+ /**
+ * Default theme name.
+ */
+ public final static String DEFAULT_THEME_NAME = "anatole";
+
/**
* version constant
*/
diff --git a/src/main/java/cc/ryanc/halo/service/OptionService.java b/src/main/java/cc/ryanc/halo/service/OptionService.java
index 62bc25f3b..215008847 100755
--- a/src/main/java/cc/ryanc/halo/service/OptionService.java
+++ b/src/main/java/cc/ryanc/halo/service/OptionService.java
@@ -4,8 +4,10 @@ import cc.ryanc.halo.model.entity.Option;
import cc.ryanc.halo.model.enums.BlogProperties;
import cc.ryanc.halo.service.base.CrudService;
import org.springframework.lang.NonNull;
+import org.springframework.lang.Nullable;
import java.util.Map;
+import java.util.Optional;
/**
* Option service.
@@ -46,8 +48,36 @@ public interface OptionService extends CrudService