Selaa lähdekoodia

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

AE86 1 vuosi sitten
vanhempi
säilyke
f7f037d353
21 muutettua tiedostoa jossa 97 lisäystä ja 722 poistoa
  1. 13 0
      dbsyncer-common/src/main/java/org/dbsyncer/common/config/AppConfig.java
  2. 1 0
      dbsyncer-parser/src/main/java/org/dbsyncer/parser/flush/impl/GeneralBufferActuator.java
  3. 7 0
      dbsyncer-web/src/main/java/org/dbsyncer/web/controller/DefaultController.java
  4. 4 6
      dbsyncer-web/src/main/java/org/dbsyncer/web/controller/index/IndexController.java
  5. 2 0
      dbsyncer-web/src/main/resources/application.properties
  6. 35 18
      dbsyncer-web/src/main/resources/public/index.html
  7. 4 4
      dbsyncer-web/src/main/resources/public/index/index.html
  8. 2 1
      dbsyncer-web/src/main/resources/public/login.html
  9. 1 1
      dbsyncer-web/src/main/resources/static/css/common.css
  10. 9 8
      dbsyncer-web/src/main/resources/static/css/index/index.css
  11. 2 2
      dbsyncer-web/src/main/resources/static/plugins/css/bootstrap-select/bootstrap-select.min.css
  12. 0 0
      dbsyncer-web/src/main/resources/static/plugins/css/bootstrap-switch/bootstrap-switch.min.css
  13. 5 1
      dbsyncer-web/src/main/resources/static/plugins/css/bootstrap-tagsinput/bootstrap-tagsinput.min.css
  14. 0 0
      dbsyncer-web/src/main/resources/static/plugins/css/bootstrap/bootstrap.min.css
  15. 0 0
      dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-fileinput/fileinput.min.js
  16. 2 2
      dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-select/bootstrap-select.min.js
  17. 7 7
      dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-switch/bootstrap-switch.min.js
  18. 2 2
      dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-tagsinput/bootstrap-tagsinput.min.js
  19. 0 0
      dbsyncer-web/src/main/resources/static/plugins/js/echarts/echarts.min.js
  20. 0 0
      dbsyncer-web/src/main/resources/static/plugins/js/sql-formatter/sql-formatter.min.js
  21. 1 670
      dbsyncer-web/src/main/resources/static/plugins/js/tablednd/jquery.tablednd.js

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

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

+ 1 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/flush/impl/GeneralBufferActuator.java

@@ -224,6 +224,7 @@ public class GeneralBufferActuator extends AbstractBufferActuator<WriterRequest,
             }
             }
         } catch (Exception e) {
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             logger.error(e.getMessage(), e);
+            return;
         }
         }
         logger.warn("暂只支持MYSQL解析DDL");
         logger.warn("暂只支持MYSQL解析DDL");
     }
     }

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

@@ -1,5 +1,6 @@
 package org.dbsyncer.web.controller;
 package org.dbsyncer.web.controller;
 
 
+import org.dbsyncer.common.config.AppConfig;
 import org.springframework.boot.web.server.ErrorPage;
 import org.springframework.boot.web.server.ErrorPage;
 import org.springframework.boot.web.server.ErrorPageRegistrar;
 import org.springframework.boot.web.server.ErrorPageRegistrar;
 import org.springframework.boot.web.server.ErrorPageRegistry;
 import org.springframework.boot.web.server.ErrorPageRegistry;
@@ -8,19 +9,25 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 
 @Controller
 @Controller
 @RequestMapping("/")
 @RequestMapping("/")
 public class DefaultController implements ErrorPageRegistrar {
 public class DefaultController implements ErrorPageRegistrar {
 
 
+    @Resource
+    private AppConfig appConfig;
+
     @RequestMapping("")
     @RequestMapping("")
     public String index(HttpServletRequest request, ModelMap model) {
     public String index(HttpServletRequest request, ModelMap model) {
+        model.put("enableCDN", appConfig.isEnableCDN());
         return "index.html";
         return "index.html";
     }
     }
 
 
     @RequestMapping({"/login", "/login.html"})
     @RequestMapping({"/login", "/login.html"})
     public String index(ModelMap model) {
     public String index(ModelMap model) {
+        model.put("enableCDN", appConfig.isEnableCDN());
         return "login.html";
         return "login.html";
     }
     }
 
 

+ 4 - 6
dbsyncer-web/src/main/java/org/dbsyncer/web/controller/index/IndexController.java

@@ -5,27 +5,26 @@ import org.dbsyncer.biz.vo.ProjectGroupVo;
 import org.dbsyncer.biz.vo.RestResult;
 import org.dbsyncer.biz.vo.RestResult;
 import org.dbsyncer.biz.vo.VersionVo;
 import org.dbsyncer.biz.vo.VersionVo;
 import org.dbsyncer.common.config.AppConfig;
 import org.dbsyncer.common.config.AppConfig;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 
-import javax.servlet.http.HttpServletRequest;
+import javax.annotation.Resource;
 
 
 @Controller
 @Controller
 @RequestMapping("/index")
 @RequestMapping("/index")
 public class IndexController {
 public class IndexController {
 
 
-    @Autowired
+    @Resource
     private ProjectGroupService projectGroupService;
     private ProjectGroupService projectGroupService;
 
 
-    @Autowired
+    @Resource
     private AppConfig appConfig;
     private AppConfig appConfig;
 
 
     @GetMapping("")
     @GetMapping("")
-    public String index(HttpServletRequest request, ModelMap model, String projectGroupId) {
+    public String index(ModelMap model, String projectGroupId) {
         ProjectGroupVo projectGroup = projectGroupService.getProjectGroup(projectGroupId);
         ProjectGroupVo projectGroup = projectGroupService.getProjectGroup(projectGroupId);
         model.put("connectorSize", projectGroup.getConnectorSize());
         model.put("connectorSize", projectGroup.getConnectorSize());
         model.put("connectors", projectGroup.getConnectors());
         model.put("connectors", projectGroup.getConnectors());
@@ -40,5 +39,4 @@ public class IndexController {
     public RestResult version() {
     public RestResult version() {
         return RestResult.restSuccess(new VersionVo(appConfig.getName(), appConfig.getCopyright()));
         return RestResult.restSuccess(new VersionVo(appConfig.getName(), appConfig.getCopyright()));
     }
     }
-
 }
 }

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

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

+ 35 - 18
dbsyncer-web/src/main/resources/public/index.html

@@ -13,13 +13,19 @@
     <meta name="author" content="AE86">
     <meta name="author" content="AE86">
     <title>dbsyncer</title>
     <title>dbsyncer</title>
     <link type="image/x-icon" rel="icon" th:href="@{/img/logo.ico}"/>
     <link type="image/x-icon" rel="icon" th:href="@{/img/logo.ico}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/font-awesome.min.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap/bootstrap.min.css}"/>
+    <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css"/>
+    <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:href="@{/plugins/css/bootstrap-dialog/bootstrap-dialog.min.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-select/bootstrap-select.min.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-switch/bootstrap-switch.min.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-tagsinput/bootstrap-tagsinput.min.css}"/>
-    <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/bootstrap-fileinput/fileinput.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"/>
+    <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/bootstrap-switch/bootstrap-switch.min.css}"/>
+    <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="https://cdn.bootcss.com/bootstrap-tagsinput/0.8.0/bootstrap-tagsinput.css"/>
+    <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/bootstrap-tagsinput/bootstrap-tagsinput.min.css}"/>
+    <link type="text/css" rel="stylesheet" th:if="${enableCDN}" href="https://cdn.bootcdn.net/ajax/libs/bootstrap-fileinput/5.1.5/css/fileinput.min.css"/>
+    <link type="text/css" rel="stylesheet" th:if="${!enableCDN}" th:href="@{/plugins/css/bootstrap-fileinput/fileinput.min.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/icheck/all.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/icheck/all.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/loading-plus/loading-plus.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/plugins/css/loading-plus/loading-plus.css}"/>
     <link type="text/css" rel="stylesheet" th:href="@{/css/common.css}">
     <link type="text/css" rel="stylesheet" th:href="@{/css/common.css}">
@@ -37,26 +43,37 @@
 <div th:replace="footer :: copy"></div>
 <div th:replace="footer :: copy"></div>
 
 
 </body>
 </body>
-<script th:src="@{/plugins/js/bootstrap/respond.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap/html5shiv.min.js}"></script>
+<script th:if="${enableCDN}" src="https://cdn.bootcdn.net/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap/respond.min.js}"></script>
+<script th:if="${enableCDN}" src="http://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap/html5shiv.min.js}"></script>
 <!-- 上述2个js文件解决IE8以上bootstrap的兼容性问题 -->
 <!-- 上述2个js文件解决IE8以上bootstrap的兼容性问题 -->
-<script th:src="@{/plugins/js/jquery/jquery-1.11.3.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap/bootstrap.min.js}"></script>
-<script th:src="@{/plugins/js/tablednd/jquery.tablednd.js}"></script>
-<script th:src="@{/plugins/js/bootstrap-dialog/bootstrap-dialog.min.js}"></script>
+<script th:if="${enableCDN}" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/jquery/jquery-1.11.3.min.js}"></script>
+<script th:if="${enableCDN}" src="http://cdn.bootcss.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
+<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}" 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:src="@{/plugins/js/bootstrap-growl/jquery.bootstrap-growl.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap-select/bootstrap-select.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap-switch/bootstrap-switch.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap-tagsinput/bootstrap-tagsinput.min.js}"></script>
-<script th:src="@{/plugins/js/bootstrap-fileinput/fileinput.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>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/bootstrap-switch/bootstrap-switch.min.js}"></script>
+<script th:if="${enableCDN}" src="https://cdn.bootcss.com/bootstrap-tagsinput/0.8.0/bootstrap-tagsinput.min.js"></script>
+<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-fileinput/theme.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/bootstrap-fileinput/zh.js}"></script>
 <script th:src="@{/plugins/js/icheck/icheck.min.js}"></script>
 <script th:src="@{/plugins/js/icheck/icheck.min.js}"></script>
 <script th:src="@{/plugins/js/loading-plus/loading-plus.js}"></script>
 <script th:src="@{/plugins/js/loading-plus/loading-plus.js}"></script>
 <script th:src="@{/plugins/js/placeholder/jquery.placeholder.js}"></script>
 <script th:src="@{/plugins/js/placeholder/jquery.placeholder.js}"></script>
 <script th:src="@{/plugins/js/formValidate/formValidate.js}"></script>
 <script th:src="@{/plugins/js/formValidate/formValidate.js}"></script>
-<script th:src="@{/plugins/js/sql-formatter/sql-formatter.min.js}"></script>
-<script th:src="@{/plugins/js/echarts/echarts.min.js}"></script>
+<script th:if="${enableCDN}" src="https://cdn.bootcdn.net/ajax/libs/sql-formatter/13.0.0/sql-formatter.min.js"></script>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/sql-formatter/sql-formatter.min.js}"></script>
+<script th:if="${enableCDN}" src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/echarts/echarts.min.js}"></script>
 <script th:src="@{/js/common.js}"></script>
 <script th:src="@{/js/common.js}"></script>
 <script th:src="@{/js/index.js}"></script>
 <script th:src="@{/js/index.js}"></script>
 </html>
 </html>

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

@@ -60,7 +60,7 @@
                                 <div class="row connectorList">
                                 <div class="row connectorList">
                                     <!-- 连接__开始 -->
                                     <!-- 连接__开始 -->
                                     <div class="col-md-1" th:each="c,state : ${connectors}">
                                     <div class="col-md-1" th:each="c,state : ${connectors}">
-                                        <div th:id="${c?.id}" class="jumbotron dbsyncer_block">
+                                        <div th:id="${c?.id}" class="dbsyncer_block">
                                             <div class="row">
                                             <div class="row">
                                                 <img draggable="false" th:src="@{'/img/'+ ${c?.config?.connectorType} + '.png'}">
                                                 <img draggable="false" th:src="@{'/img/'+ ${c?.config?.connectorType} + '.png'}">
                                             </div>
                                             </div>
@@ -107,14 +107,14 @@
                                 <div class="row mappingList">
                                 <div class="row mappingList">
                                     <!-- 驱动__开始 -->
                                     <!-- 驱动__开始 -->
                                     <div class="col-md-4" th:each="m,state : ${mappings}">
                                     <div class="col-md-4" th:each="m,state : ${mappings}">
-                                        <div th:id="${m?.id}" th:class="${m?.model eq 'full'} ? 'jumbotron dbsyncer_block dbsyncer_block_full' : 'jumbotron dbsyncer_block dbsyncer_block_increment'">
+                                        <div th:id="${m?.id}" th:class="${m?.model eq 'full'} ? 'dbsyncer_block dbsyncer_block_full' : 'dbsyncer_block dbsyncer_block_increment'">
                                             <!--驱动标题信息 -->
                                             <!--驱动标题信息 -->
                                             <div class="row text-center dbsyncer_driver_name" th:text="${m?.name}" th:title="${m?.name}"></div>
                                             <div class="row text-center dbsyncer_driver_name" th:text="${m?.name}" th:title="${m?.name}"></div>
 
 
                                             <div class="row">
                                             <div class="row">
                                                 <!--左边驱动信息 -->
                                                 <!--左边驱动信息 -->
                                                 <div class="col-md-5">
                                                 <div class="col-md-5">
-                                                    <div class="well well-lg">
+                                                    <div class="mapping_well">
                                                         <div class="col-md-4">
                                                         <div class="col-md-4">
                                                             <img draggable="false" th:src="@{'/img/'+ ${m?.sourceConnector?.config?.connectorType} + '.png'}">
                                                             <img draggable="false" th:src="@{'/img/'+ ${m?.sourceConnector?.config?.connectorType} + '.png'}">
                                                         </div>
                                                         </div>
@@ -139,7 +139,7 @@
 
 
                                                 <!-- 右边驱动信息 -->
                                                 <!-- 右边驱动信息 -->
                                                 <div class="col-md-5">
                                                 <div class="col-md-5">
-                                                    <div class="well well-lg">
+                                                    <div class="mapping_well">
                                                         <div class="col-md-4">
                                                         <div class="col-md-4">
                                                             <img draggable="false" th:src="@{'/img/'+ ${m?.targetConnector?.config?.connectorType} + '.png'}">
                                                             <img draggable="false" th:src="@{'/img/'+ ${m?.targetConnector?.config?.connectorType} + '.png'}">
                                                         </div>
                                                         </div>

+ 2 - 1
dbsyncer-web/src/main/resources/public/login.html

@@ -8,7 +8,8 @@
 <link type="text/css" rel="stylesheet" th:href="@{/css/login/login.css}"/>
 <link type="text/css" rel="stylesheet" th:href="@{/css/login/login.css}"/>
 </head>
 </head>
 <body></body>
 <body></body>
-<script th:src="@{/plugins/js/jquery/jquery-1.11.3.min.js}"></script>
+<script th:if="${enableCDN}" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script th:if="${!enableCDN}" th:src="@{/plugins/js/jquery/jquery-1.11.3.min.js}"></script>
 <script th:src="@{/plugins/js/placeholder/jquery.placeholder.js}"></script>
 <script th:src="@{/plugins/js/placeholder/jquery.placeholder.js}"></script>
 <!-- 上述1个js文件解决IE10以上placeholder的兼容性问题 -->
 <!-- 上述1个js文件解决IE10以上placeholder的兼容性问题 -->
 <script th:src="@{/js/login/login.js}"></script>
 <script th:src="@{/js/login/login.js}"></script>

+ 1 - 1
dbsyncer-web/src/main/resources/static/css/common.css

@@ -2,7 +2,7 @@
 .dbsyncer_img {border-radius: 5%;}
 .dbsyncer_img {border-radius: 5%;}
 .dbsyncer_pointer {cursor: pointer;}
 .dbsyncer_pointer {cursor: pointer;}
 .dbsyncer_over_hidden{overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
 .dbsyncer_over_hidden{overflow: hidden; text-overflow:ellipsis; white-space: nowrap;}
-.dbsyncer_block {border:1px solid #ffffff;}
+.dbsyncer_block {border-radius: 6px;padding: 20px 15px;background-color: #f2f2f2;}
 .dbsyncer_block:hover { cursor:pointer; background-color: #EBEBEB; -moz-box-shadow:2px 2px 5px; -webkit-box-shadow:2px 2px 5px; box-shadow:2px 2px 5px; -webkit-transform:translateY(-3px); transform: translateY(-3px); transition: all 0.3s ease-in-out;}
 .dbsyncer_block:hover { cursor:pointer; background-color: #EBEBEB; -moz-box-shadow:2px 2px 5px; -webkit-box-shadow:2px 2px 5px; box-shadow:2px 2px 5px; -webkit-transform:translateY(-3px); transform: translateY(-3px); transition: all 0.3s ease-in-out;}
 .driverVerifcateRequired{color:#d9534f;}
 .driverVerifcateRequired{color:#d9534f;}
 .dbsyncerVerifcateError{border-color: #b94a48;}
 .dbsyncerVerifcateError{border-color: #b94a48;}

+ 9 - 8
dbsyncer-web/src/main/resources/static/css/index/index.css

@@ -7,14 +7,14 @@
 .connectorList .dropdown-menu {left: auto; top: 15px;}
 .connectorList .dropdown-menu {left: auto; top: 15px;}
 .connectorList .dropdown-menu i{font-size: 20px;}
 .connectorList .dropdown-menu i{font-size: 20px;}
 
 
-.mappingList .jumbotron .line{margin: 43px -30px;width: 188px;border-top: 1px solid #8c7c7c;}
-.mappingList .jumbotron .line .running-through-rate{position: absolute;left: calc(50% - 11px);top: 13px;font-size: 26px;font-weight: bold;}
-.mappingList .jumbotron .line .running-state{position: absolute;left: calc(50% - 22px);;top: 45px;font-weight: bold;}
-.mappingList .jumbotron .well-sign-left{position: absolute;top: -10px;left: 3px;}
-.mappingList .jumbotron .well-sign-right{position: absolute;top: -31px;left: -7px;}
-.mappingList .well {word-wrap: break-word;word-break: normal;overflow:hidden;}
-.mappingList .well img{float:left;padding:8px 2px; border-radius: 20%;}
-.mappingList .well span{float:left;margin:21px 10px;}
+.mappingList .line{margin: 43px -30px;width: 188px;border-top: 1px solid #8c7c7c;}
+.mappingList .line .running-through-rate{position: absolute;left: calc(50% - 11px);top: 13px;font-size: 26px;font-weight: bold;}
+.mappingList .line .running-state{position: absolute;left: calc(50% - 22px);;top: 45px;font-weight: bold;}
+.mappingList .well-sign-left{position: absolute;top: -10px;left: 3px;}
+.mappingList .well-sign-right{position: absolute;top: -31px;left: -7px;}
+.mappingList .mapping_well {word-wrap: break-word;word-break: normal;overflow:hidden;background-color: #ffffff;border: 1px solid #8c7c7c;border-radius: 6px;}
+.mappingList .mapping_well img{float:left;padding:8px 2px; border-radius: 20%;}
+.mappingList .mapping_well span{float:left;margin:21px 10px;}
 .mappingList .well-sign-green{color: #808040;}
 .mappingList .well-sign-green{color: #808040;}
 .mappingList .well-sign-red{color: #ff0000;}
 .mappingList .well-sign-red{color: #ff0000;}
 .mappingList .well-sign-operation{position: absolute; right:12px; color: #999999; border-radius: 50%;}
 .mappingList .well-sign-operation{position: absolute; right:12px; color: #999999; border-radius: 50%;}
@@ -22,6 +22,7 @@
 .mappingList .dropdown {position: absolute; right:0px; top: 0px;}
 .mappingList .dropdown {position: absolute; right:0px; top: 0px;}
 .mappingList .dropdown-menu {right: 12px;left: auto; top: 28px;}
 .mappingList .dropdown-menu {right: 12px;left: auto; top: 28px;}
 .mappingList .dropdown-menu i{font-size: 20px;}
 .mappingList .dropdown-menu i{font-size: 20px;}
+.mappingList .text-right {margin-right: -10px;}
 
 
 .dbsyncer_driver_name { margin-bottom: 5px;}
 .dbsyncer_driver_name { margin-bottom: 5px;}
 .dbsyncer_block_increment { background: -webkit-linear-gradient(left, #ffffff, #dffbdc);}
 .dbsyncer_block_increment { background: -webkit-linear-gradient(left, #ffffff, #dffbdc);}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 2
dbsyncer-web/src/main/resources/static/plugins/css/bootstrap-select/bootstrap-select.min.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/css/bootstrap-switch/bootstrap-switch.min.css


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

@@ -1 +1,5 @@
-.bootstrap-tagsinput{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;padding:4px 6px;color:#555;vertical-align:middle;border-radius:4px;width:100%;line-height:22px;cursor:text;}.bootstrap-tagsinput input{border:none;box-shadow:none;outline:none;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit;}.bootstrap-tagsinput.form-control input::-moz-placeholder{color:#777;opacity:1;}.bootstrap-tagsinput.form-control input:-ms-input-placeholder{color:#777;}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder{color:#777;}.bootstrap-tagsinput input:focus{border:none;box-shadow:none;}.bootstrap-tagsinput .tag{margin-right:2px;color:white;}.bootstrap-tagsinput .tag [data-role="remove"]{margin-left:8px;cursor:pointer;}.bootstrap-tagsinput .tag [data-role="remove"]:after{content:"x";padding:0px 2px;}.bootstrap-tagsinput .tag [data-role="remove"]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);}.bootstrap-tagsinput .tag [data-role="remove"]:hover:active{box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);}
+/*
+ * bootstrap-tagsinput v0.8.0
+ *
+ */
+.bootstrap-tagsinput {background-color: #fff;border: 1px solid #ccc;box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);display: inline-block;padding: 4px 6px;color: #555;vertical-align: middle;border-radius: 4px;max-width: 100%;line-height: 22px;cursor: text;}.bootstrap-tagsinput input {border: none;box-shadow: none;outline: none;background-color: transparent;padding: 0 6px;margin: 0;width: auto;max-width: inherit;}.bootstrap-tagsinput.form-control input::-moz-placeholder {color: #777;opacity: 1;}.bootstrap-tagsinput.form-control input:-ms-input-placeholder {color: #777;}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder {color: #777;}.bootstrap-tagsinput input:focus {border: none;box-shadow: none;}.bootstrap-tagsinput .tag {margin-right: 2px;color: white;}.bootstrap-tagsinput .tag [data-role="remove"] {margin-left: 8px;cursor: pointer;}.bootstrap-tagsinput .tag [data-role="remove"]:after {content: "x";padding: 0px 2px;}.bootstrap-tagsinput .tag [data-role="remove"]:hover {box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);}.bootstrap-tagsinput .tag [data-role="remove"]:hover:active {box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);}

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/css/bootstrap/bootstrap.min.css


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-fileinput/fileinput.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 2
dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-select/bootstrap-select.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 7 - 7
dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-switch/bootstrap-switch.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 2 - 2
dbsyncer-web/src/main/resources/static/plugins/js/bootstrap-tagsinput/bootstrap-tagsinput.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/js/echarts/echarts.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
dbsyncer-web/src/main/resources/static/plugins/js/sql-formatter/sql-formatter.min.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 670
dbsyncer-web/src/main/resources/static/plugins/js/tablednd/jquery.tablednd.js


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä