From 5a7b02c4aa74be956118b3e49a2f8709abab226d Mon Sep 17 00:00:00 2001 From: johnniang Date: Sun, 21 Apr 2019 00:52:43 +0800 Subject: [PATCH] Convert theme setting with type --- .../impl/YamlThemeConfigResolverImpl.java | 8 +- .../handler/theme/config/support/Item.java | 14 +++ .../halo/app/model/entity/ThemeSetting.java | 8 -- .../run/halo/app/model/enums/DataType.java | 34 +++++++ .../app/service/impl/ThemeServiceImpl.java | 4 +- .../service/impl/ThemeSettingServiceImpl.java | 93 +++++++++++++++++-- .../controller/admin/api/ThemeController.java | 18 ++-- .../templates/themes/anatole/options.yaml | 5 + .../templates/themes/material/options.yaml | 16 +++- .../halo/app/model/enums/DataTypeTest.java | 22 +++++ 10 files changed, 197 insertions(+), 25 deletions(-) create mode 100644 src/test/java/run/halo/app/model/enums/DataTypeTest.java diff --git a/src/main/java/run/halo/app/handler/theme/config/impl/YamlThemeConfigResolverImpl.java b/src/main/java/run/halo/app/handler/theme/config/impl/YamlThemeConfigResolverImpl.java index 56547dc91..187d2ab09 100644 --- a/src/main/java/run/halo/app/handler/theme/config/impl/YamlThemeConfigResolverImpl.java +++ b/src/main/java/run/halo/app/handler/theme/config/impl/YamlThemeConfigResolverImpl.java @@ -2,6 +2,7 @@ package run.halo.app.handler.theme.config.impl; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.lang.Nullable; import org.springframework.stereotype.Service; import run.halo.app.handler.theme.config.ThemeConfigResolver; @@ -23,6 +24,7 @@ import java.util.Map; * @author johnniang * @date 4/10/19 */ +@Slf4j @Service public class YamlThemeConfigResolverImpl implements ThemeConfigResolver { @@ -109,7 +111,8 @@ public class YamlThemeConfigResolverImpl implements ThemeConfigResolver { item.setName(itemMap.get("name").toString()); item.setLabel(itemMap.getOrDefault("label", item.getName()).toString()); - item.setDataType(DataType.typeOf(itemMap.get("data_type"))); + Object dataType = itemMap.getOrDefault("data-type", itemMap.get("dataType")); + item.setDataType(DataType.typeOf(dataType)); item.setType(InputType.typeOf(itemMap.get("type"))); item.setDefaultValue(itemMap.get("default")); @@ -133,7 +136,8 @@ public class YamlThemeConfigResolverImpl implements ThemeConfigResolver { Item item = new Item(); item.setName(key.toString()); item.setLabel(itemMap.getOrDefault("label", item.getName()).toString()); - item.setDataType(DataType.typeOf(itemMap.get("data_type"))); + Object dataType = itemMap.getOrDefault("data-type", itemMap.get("dataType")); + item.setDataType(DataType.typeOf(dataType)); item.setType(InputType.typeOf(itemMap.get("type"))); item.setDefaultValue(itemMap.get("default")); diff --git a/src/main/java/run/halo/app/handler/theme/config/support/Item.java b/src/main/java/run/halo/app/handler/theme/config/support/Item.java index 61bdd593e..6cf8e86c9 100644 --- a/src/main/java/run/halo/app/handler/theme/config/support/Item.java +++ b/src/main/java/run/halo/app/handler/theme/config/support/Item.java @@ -5,6 +5,7 @@ import run.halo.app.model.enums.DataType; import run.halo.app.model.enums.InputType; import java.util.List; +import java.util.Objects; /** * Theme configuration: item entity @@ -44,4 +45,17 @@ public class Item { * Item's options, default is empty list */ private List