From 14d69f28e47a125672f461356a23608df5b9b123 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Tue, 2 Apr 2019 22:55:29 +0800 Subject: [PATCH] Refactor ThemeService --- .../java/cc/ryanc/halo/model/support/ThemeFile.java | 2 ++ .../ryanc/halo/service/impl/ThemeServiceImpl.java | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/main/java/cc/ryanc/halo/model/support/ThemeFile.java b/src/main/java/cc/ryanc/halo/model/support/ThemeFile.java index 09b7f11df..c0fd0b2f5 100644 --- a/src/main/java/cc/ryanc/halo/model/support/ThemeFile.java +++ b/src/main/java/cc/ryanc/halo/model/support/ThemeFile.java @@ -19,5 +19,7 @@ public class ThemeFile { private Boolean isFile; + private Boolean canEdit; + private List node; } diff --git a/src/main/java/cc/ryanc/halo/service/impl/ThemeServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/ThemeServiceImpl.java index ac6fc0ea5..ced557b9f 100644 --- a/src/main/java/cc/ryanc/halo/service/impl/ThemeServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/ThemeServiceImpl.java @@ -5,6 +5,7 @@ import cc.ryanc.halo.model.support.Theme; import cc.ryanc.halo.model.support.ThemeFile; import cc.ryanc.halo.model.support.ThemeProperties; import cc.ryanc.halo.service.ThemeService; +import cc.ryanc.halo.utils.FilenameUtils; import cc.ryanc.halo.web.controller.content.base.BaseContentController; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.StrUtil; @@ -13,6 +14,7 @@ import org.springframework.stereotype.Service; import java.io.File; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; /** @@ -22,6 +24,8 @@ import java.util.List; @Service public class ThemeServiceImpl implements ThemeService { + private static String[] CAN_EDIT_SUFFIX = {"ftl", "css", "js"}; + /** * Gets all themes * @@ -80,6 +84,14 @@ public class ThemeServiceImpl implements ThemeService { file.setName(base.getName()); file.setPath(base.getAbsolutePath()); file.setIsFile(true); + for (String suffix : CAN_EDIT_SUFFIX) { + if (FilenameUtils.getExtension(file.getName()).equals(suffix)) { + file.setCanEdit(true); + break; + } else { + file.setCanEdit(false); + } + } } templates.add(file); } @@ -87,6 +99,7 @@ public class ThemeServiceImpl implements ThemeService { } catch (Exception e) { throw new RuntimeException("Failed to get theme template", e); } + templates.sort(Comparator.comparing(ThemeFile::getIsFile)); return templates; }