Răsfoiți Sursa

!188 merge
Merge pull request !188 from AE86/ae86_dev

AE86 1 an în urmă
părinte
comite
9510562935

+ 7 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/SystemConfigService.java

@@ -50,4 +50,11 @@ public interface SystemConfigService {
      * @param file
      */
     void refreshConfig(File file);
+
+    /**
+     * 是否启用CDN加速访问静态资源
+     *
+     * @return
+     */
+    boolean isEnableCDN();
 }

+ 2 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/system/SystemConfigChecker.java

@@ -2,6 +2,7 @@ package org.dbsyncer.biz.checker.impl.system;
 
 import org.dbsyncer.biz.checker.AbstractChecker;
 import org.dbsyncer.common.util.BeanUtil;
+import org.dbsyncer.common.util.StringUtil;
 import org.dbsyncer.manager.Manager;
 import org.dbsyncer.parser.logger.LogService;
 import org.dbsyncer.parser.logger.LogType;
@@ -47,6 +48,7 @@ public class SystemConfigChecker extends AbstractChecker {
     public ConfigModel checkEditConfigModel(Map<String, String> params) {
         logger.info("params:{}", params);
         Assert.notEmpty(params, "Config check params is null.");
+        params.put("enableCDN", StringUtil.isNotBlank(params.get("enableCDN")) ? "true" : "false");
 
         SystemConfig systemConfig = manager.getSystemConfig();
         Assert.notNull(systemConfig, "配置文件为空.");

+ 11 - 6
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/SystemConfigServiceImpl.java

@@ -14,10 +14,10 @@ import org.dbsyncer.parser.model.ConfigModel;
 import org.dbsyncer.parser.model.SystemConfig;
 import org.dbsyncer.plugin.enums.FileSuffixEnum;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.Charset;
@@ -34,19 +34,19 @@ import java.util.Map;
 @Service
 public class SystemConfigServiceImpl implements SystemConfigService {
 
-    @Autowired
+    @Resource
     private Manager manager;
 
-    @Autowired
+    @Resource
     private Checker systemConfigChecker;
 
-    @Autowired
+    @Resource
     private PreloadTemplate preloadTemplate;
 
-    @Autowired
+    @Resource
     private LogService logService;
 
-    @Autowired
+    @Resource
     private UserConfigService userConfigService;
 
     @Override
@@ -98,6 +98,11 @@ public class SystemConfigServiceImpl implements SystemConfigService {
         }
     }
 
+    @Override
+    public boolean isEnableCDN() {
+        return getSystemConfig().isEnableCDN();
+    }
+
     private SystemConfig getSystemConfig() {
         SystemConfig config = manager.getSystemConfig();
         if (null != config) {

+ 1 - 13
dbsyncer-common/src/main/java/org/dbsyncer/common/config/AppConfig.java

@@ -21,11 +21,6 @@ public class AppConfig {
 
     private String copyright;
 
-    /**
-     * 是否使用CDN加载静态资源文件
-     */
-    private boolean enableCDN;
-
     public String getName() {
         return name;
     }
@@ -58,11 +53,4 @@ public class AppConfig {
         this.copyright = copyright;
     }
 
-    public boolean isEnableCDN() {
-        return enableCDN;
-    }
-
-    public void setEnableCDN(boolean enableCDN) {
-        this.enableCDN = enableCDN;
-    }
-}
+}

+ 13 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/model/SystemConfig.java

@@ -30,6 +30,11 @@ public class SystemConfig extends ConfigModel {
      */
     private int refreshIntervalSeconds = 5;
 
+    /**
+     * 是否启用CDN加速访问静态资源(false-禁用;true-启动)
+     */
+    private boolean enableCDN;
+
     public int getExpireDataDays() {
         return expireDataDays;
     }
@@ -53,4 +58,12 @@ public class SystemConfig extends ConfigModel {
     public void setRefreshIntervalSeconds(int refreshIntervalSeconds) {
         this.refreshIntervalSeconds = refreshIntervalSeconds;
     }
+
+    public boolean isEnableCDN() {
+        return enableCDN;
+    }
+
+    public void setEnableCDN(boolean enableCDN) {
+        this.enableCDN = enableCDN;
+    }
 }

+ 4 - 4
dbsyncer-web/src/main/java/org/dbsyncer/web/controller/DefaultController.java

@@ -1,6 +1,6 @@
 package org.dbsyncer.web.controller;
 
-import org.dbsyncer.common.config.AppConfig;
+import org.dbsyncer.biz.SystemConfigService;
 import org.springframework.boot.web.server.ErrorPage;
 import org.springframework.boot.web.server.ErrorPageRegistrar;
 import org.springframework.boot.web.server.ErrorPageRegistry;
@@ -17,17 +17,17 @@ import javax.servlet.http.HttpServletRequest;
 public class DefaultController implements ErrorPageRegistrar {
 
     @Resource
-    private AppConfig appConfig;
+    private SystemConfigService systemConfigService;
 
     @RequestMapping("")
     public String index(HttpServletRequest request, ModelMap model) {
-        model.put("enableCDN", appConfig.isEnableCDN());
+        model.put("enableCDN", systemConfigService.isEnableCDN());
         return "index.html";
     }
 
     @RequestMapping({"/login", "/login.html"})
     public String index(ModelMap model) {
-        model.put("enableCDN", appConfig.isEnableCDN());
+        model.put("enableCDN", systemConfigService.isEnableCDN());
         return "login.html";
     }
 

+ 0 - 2
dbsyncer-web/src/main/resources/application.properties

@@ -6,8 +6,6 @@ server.port=18686
 server.servlet.session.timeout=1800
 # 访问服务的路径,‘/’ -> http://${server.ip}:${server.port}/
 server.servlet.context-path=/
-# 启用CDN加速访问静态资源
-info.app.enableCDN=false
 
 #web
 # 机器的唯一编号(单机部署则填默认值; 部署集群时, 要保证编号在集群中唯一)

+ 4 - 2
dbsyncer-web/src/main/resources/public/index.html

@@ -17,7 +17,8 @@
     <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/font-awesome.min.css}"/>
     <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css"/>
     <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/bootstrap/bootstrap.min.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-dialog/bootstrap-dialog.min.css}"/>
+    <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.5/css/bootstrap-dialog.min.css"/>
+    <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/bootstrap-dialog/bootstrap-dialog.min.css}"/>
     <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.17/css/bootstrap-select.min.css"/>
     <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/bootstrap-select/bootstrap-select.min.css}"/>
     <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="https://cdn.bootcdn.net/ajax/libs/bootstrap-switch/3.3.4/css/bootstrap3/bootstrap-switch.min.css"/>
@@ -54,8 +55,8 @@
 <script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap/bootstrap.min.js}"></script>
 <script th:if="${enableCDN}" src="https://cdn.bootcdn.net/ajax/libs/TableDnD/1.0.5/jquery.tablednd.min.js"></script>
 <script th:if="${!enableCDN}" th:src="@{/plugins/js/tablednd/jquery.tablednd.js}"></script>
+<script th:if="${enableCDN}" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.34.5/js/bootstrap-dialog.min.js"></script>
 <script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap-dialog/bootstrap-dialog.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap-growl/jquery.bootstrap-growl.min.js}"></script>
 <script th:if="${enableCDN}" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.17/js/bootstrap-select.min.js"></script>
 <script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap-select/bootstrap-select.min.js}"></script>
 <script th:if="${enableCDN}" src="https://cdn.bootcdn.net/ajax/libs/bootstrap-switch/3.3.4/js/bootstrap-switch.min.js"></script>
@@ -64,6 +65,7 @@
 <script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap-tagsinput/bootstrap-tagsinput.min.js}"></script>
 <script th:if="${enableCDN}" src="https://cdn.bootcdn.net/ajax/libs/bootstrap-fileinput/5.1.5/js/fileinput.min.js"></script>
 <script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap-fileinput/fileinput.min.js}"></script>
+<script th:src="@{/plugins/js/bootstrap-growl/jquery.bootstrap-growl.min.js}"></script>
 <script th:src="@{/plugins/js/bootstrap-fileinput/theme.min.js}"></script>
 <script th:src="@{/plugins/js/bootstrap-fileinput/zh.js}"></script>
 <script th:src="@{/plugins/js/icheck/icheck.min.js}"></script>

+ 6 - 0
dbsyncer-web/src/main/resources/public/system/system.html

@@ -33,6 +33,12 @@
                         <input type="number" class="form-control" min="1" max="60" dbsyncer-valid="require" name="refreshIntervalSeconds" th:value="${config?.refreshIntervalSeconds}"/>
                     </div>
                 </div>
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">CDN静态资源</label>
+                    <div class="col-sm-8">
+                        <input id="enableCDNSwitch" name="enableCDN" th:checked="${config?.enableCDN}" type="checkbox" />
+                    </div>
+                </div>
                 <div class="form-group">
                     <div class="text-right col-sm-4"></div>
                     <div class="text-right col-sm-8">

+ 7 - 1
dbsyncer-web/src/main/resources/static/js/system/index.js

@@ -10,6 +10,13 @@ function submit(data) {
 }
 
 $(function () {
+    $('#enableCDNSwitch').bootstrapSwitch({
+        onText: "Yes",
+        offText: "No",
+        onColor: "success",
+        offColor: "info",
+        size: "normal"
+    });
     //保存
     $("#updateSystemSubBtn").click(function () {
         var $form = $("#configEditForm");
@@ -18,5 +25,4 @@ $(function () {
             submit(data);
         }
     });
-
 })

+ 1 - 1
dbsyncer-web/src/main/resources/static/plugins/css/bootstrap-dialog/bootstrap-dialog.min.css

@@ -1 +1 @@
-.bootstrap-dialog .modal-header{border-top-left-radius:4px;border-top-right-radius:4px}.bootstrap-dialog .bootstrap-dialog-title{color:#fff;display:inline-block;font-size:16px}.bootstrap-dialog .bootstrap-dialog-message{font-size:14px}.bootstrap-dialog .bootstrap-dialog-button-icon{margin-right:3px}.bootstrap-dialog .bootstrap-dialog-close-button{font-size:20px;float:right;opacity:.9;filter:alpha(opacity=90)}.bootstrap-dialog .bootstrap-dialog-close-button:hover{cursor:pointer;opacity:1;filter:alpha(opacity=100)}.bootstrap-dialog.type-default .modal-header{background-color:#fff}.bootstrap-dialog.type-default .bootstrap-dialog-title{color:#333}.bootstrap-dialog.type-info .modal-header{background-color:#5bc0de}.bootstrap-dialog.type-primary .modal-header{background-color:#337ab7}.bootstrap-dialog.type-success .modal-header{background-color:#5cb85c}.bootstrap-dialog.type-warning .modal-header{background-color:#f0ad4e}.bootstrap-dialog.type-danger .modal-header{background-color:#d9534f}.bootstrap-dialog.size-large .bootstrap-dialog-title{font-size:24px}.bootstrap-dialog.size-large .bootstrap-dialog-close-button{font-size:30px}.bootstrap-dialog.size-large .bootstrap-dialog-message{font-size:18px}.bootstrap-dialog .icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
+.bootstrap-dialog .modal-header{border-top-left-radius:4px;border-top-right-radius:4px}.bootstrap-dialog .bootstrap-dialog-title{color:#fff;display:inline-block;font-size:16px}.bootstrap-dialog .bootstrap-dialog-message{font-size:14px}.bootstrap-dialog .bootstrap-dialog-button-icon{margin-right:3px}.bootstrap-dialog .bootstrap-dialog-close-button{font-size:20px;float:right;filter:alpha(opacity=90);-moz-opacity:.9;-khtml-opacity:.9;opacity:.9}.bootstrap-dialog .bootstrap-dialog-close-button:hover{cursor:pointer;filter:alpha(opacity=100);-moz-opacity:1;-khtml-opacity:1;opacity:1}.bootstrap-dialog.type-default .modal-header{background-color:#fff}.bootstrap-dialog.type-default .bootstrap-dialog-title{color:#333}.bootstrap-dialog.type-info .modal-header{background-color:#5bc0de}.bootstrap-dialog.type-primary .modal-header{background-color:#428bca}.bootstrap-dialog.type-success .modal-header{background-color:#5cb85c}.bootstrap-dialog.type-warning .modal-header{background-color:#f0ad4e}.bootstrap-dialog.type-danger .modal-header{background-color:#d9534f}.bootstrap-dialog.size-large .bootstrap-dialog-title{font-size:24px}.bootstrap-dialog.size-large .bootstrap-dialog-close-button{font-size:30px}.bootstrap-dialog.size-large .bootstrap-dialog-message{font-size:18px}.bootstrap-dialog .icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-dialog/bootstrap-dialog.min.js


Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff