diff --git a/canal-admin/canal-admin-server/src/main/assembly/dev.xml b/canal-admin/canal-admin-server/src/main/assembly/dev.xml index dc5d9e69..e13b0ea9 100644 --- a/canal-admin/canal-admin-server/src/main/assembly/dev.xml +++ b/canal-admin/canal-admin-server/src/main/assembly/dev.xml @@ -29,6 +29,8 @@ logback.xml public/** canal_manager.sql + canal-template.properties + instance-template.properties diff --git a/canal-admin/canal-admin-server/src/main/assembly/release.xml b/canal-admin/canal-admin-server/src/main/assembly/release.xml index 84f3aa16..4b59198f 100644 --- a/canal-admin/canal-admin-server/src/main/assembly/release.xml +++ b/canal-admin/canal-admin-server/src/main/assembly/release.xml @@ -30,6 +30,8 @@ logback.xml public/** canal_manager.sql + canal-template.properties + instance-template.properties diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/common/TemplateConfigLoader.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/common/TemplateConfigLoader.java new file mode 100644 index 00000000..a3378ddd --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/common/TemplateConfigLoader.java @@ -0,0 +1,50 @@ +package com.alibaba.otter.canal.admin.common; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TemplateConfigLoader { + + private static final Logger logger = LoggerFactory.getLogger(TemplateConfigLoader.class); + + public static final String CONF_DIR = "conf"; + public static final String CANAL_CONFIG_TMP = "canal-template.properties"; + public static final String INSTANCE_CONFIG_TMP = "instance-template.properties"; + + public static String loadCanalConfig() { + return loadFile(CANAL_CONFIG_TMP); + } + + public static String loadInstanceConfig() { + return loadFile(INSTANCE_CONFIG_TMP); + } + + private static String loadFile(String fileName) { + File configFile = new File(".." + File.separator + CONF_DIR + File.separator + fileName); + if (!configFile.exists()) { + URL url = TemplateConfigLoader.class.getClassLoader().getResource(""); + if (url != null) { + configFile = new File(url.getPath() + fileName + File.separator); + } + } + if (!configFile.exists()) { + return null; + } + try (InputStream in = new FileInputStream(configFile)) { + byte[] bytes = new byte[in.available()]; + in.read(bytes); + return new String(bytes, StandardCharsets.UTF_8); + } catch (IOException e) { + logger.error("Read " + fileName + " error", e); + } + + return null; + } +} diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalConfigController.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalConfigController.java index 5a3af9f1..32e47285 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalConfigController.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalConfigController.java @@ -1,5 +1,6 @@ package com.alibaba.otter.canal.admin.controller; +import com.alibaba.otter.canal.admin.common.TemplateConfigLoader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -50,4 +51,8 @@ public class CanalConfigController { return BaseModel.getInstance("success"); } + @GetMapping(value = "/config/template") + public BaseModel template(@PathVariable String env) { + return BaseModel.getInstance(TemplateConfigLoader.loadCanalConfig()); + } } diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java index b566cf44..ac5996c1 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/controller/CanalInstanceController.java @@ -3,6 +3,7 @@ package com.alibaba.otter.canal.admin.controller; import java.util.List; import java.util.Map; +import com.alibaba.otter.canal.admin.common.TemplateConfigLoader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -142,7 +143,8 @@ public class CanalInstanceController { * @return 是否成功 */ @PutMapping(value = "/instance/status/{id}") - public BaseModel instanceStart(@PathVariable Long id, @RequestParam String option, @PathVariable String env) { + public BaseModel instanceStart(@PathVariable Long id, @RequestParam String option, + @PathVariable String env) { return BaseModel.getInstance(canalInstanceConfigService.instanceOperation(id, option)); } @@ -171,4 +173,9 @@ public class CanalInstanceController { public BaseModel> activeInstances(@PathVariable Long serverId, @PathVariable String env) { return BaseModel.getInstance(canalInstanceConfigService.findActiveInstanceByServerId(serverId)); } + + @GetMapping(value = "/instance/template") + public BaseModel template(@PathVariable String env) { + return BaseModel.getInstance(TemplateConfigLoader.loadInstanceConfig()); + } } diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java index f24817c8..5e77828f 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/model/CanalConfig.java @@ -39,6 +39,10 @@ public class CanalConfig extends Model { private String status; private Date modifiedTime; + public void init() { + this.name = "canal.properties"; + } + public Long getId() { return id; } diff --git a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/NodeServerServiceImpl.java b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/NodeServerServiceImpl.java index 3f656831..cf0444fc 100644 --- a/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/NodeServerServiceImpl.java +++ b/canal-admin/canal-admin-server/src/main/java/com/alibaba/otter/canal/admin/service/impl/NodeServerServiceImpl.java @@ -1,7 +1,6 @@ package com.alibaba.otter.canal.admin.service.impl; -import io.ebean.Query; - +import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; @@ -12,6 +11,7 @@ import java.util.concurrent.TimeoutException; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; +import com.alibaba.otter.canal.admin.common.TemplateConfigLoader; import com.alibaba.otter.canal.admin.common.Threads; import com.alibaba.otter.canal.admin.common.exception.ServiceException; import com.alibaba.otter.canal.admin.connector.AdminConnector; @@ -21,6 +21,9 @@ import com.alibaba.otter.canal.admin.model.CanalInstanceConfig; import com.alibaba.otter.canal.admin.model.NodeServer; import com.alibaba.otter.canal.admin.model.Pager; import com.alibaba.otter.canal.admin.service.NodeServerService; +import com.alibaba.otter.canal.protocol.SecurityUtil; + +import io.ebean.Query; /** * 节点信息业务层 @@ -42,6 +45,20 @@ public class NodeServerServiceImpl implements NodeServerService { } nodeServer.save(); + + if (nodeServer.getClusterId() == null) { // 单机模式 + CanalConfig canalConfig = new CanalConfig(); + canalConfig.setServerId(nodeServer.getId()); + String configTmp = TemplateConfigLoader.loadCanalConfig(); + canalConfig.setContent(configTmp); + try { + String contentMd5 = SecurityUtil.md5String(canalConfig.getContent()); + canalConfig.setContentMd5(contentMd5); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + canalConfig.save(); + } } public NodeServer detail(Long id) { @@ -159,9 +176,8 @@ public class NodeServerServiceImpl implements NodeServerService { if (nodeServer == null) { return ""; } - return SimpleAdminConnectors.execute(nodeServer.getIp(), - nodeServer.getAdminPort(), - adminConnector -> adminConnector.canalLog(100)); + return SimpleAdminConnectors + .execute(nodeServer.getIp(), nodeServer.getAdminPort(), adminConnector -> adminConnector.canalLog(100)); } public boolean remoteOperation(Long id, String option) { @@ -171,7 +187,8 @@ public class NodeServerServiceImpl implements NodeServerService { } Boolean result = null; if ("start".equals(option)) { - result = SimpleAdminConnectors.execute(nodeServer.getIp(), nodeServer.getAdminPort(), AdminConnector::start); + result = SimpleAdminConnectors + .execute(nodeServer.getIp(), nodeServer.getAdminPort(), AdminConnector::start); } else if ("stop".equals(option)) { result = SimpleAdminConnectors.execute(nodeServer.getIp(), nodeServer.getAdminPort(), AdminConnector::stop); } else { diff --git a/canal-admin/canal-admin-server/src/main/resources/application.yml b/canal-admin/canal-admin-server/src/main/resources/application.yml index b2d3b0c4..76c62779 100644 --- a/canal-admin/canal-admin-server/src/main/resources/application.yml +++ b/canal-admin/canal-admin-server/src/main/resources/application.yml @@ -7,8 +7,8 @@ spring: spring.datasource: url: jdbc:mysql://127.0.0.1:3306/canal_manager?useUnicode=true&characterEncoding=UTF-8&useSSL=false - username: canal - password: canal + username: root + password: 121212 driver-class-name: com.mysql.jdbc.Driver hikari: maximum-pool-size: 10 diff --git a/deployer/src/main/resources/canal_manager.properties b/canal-admin/canal-admin-server/src/main/resources/canal-template.properties similarity index 99% rename from deployer/src/main/resources/canal_manager.properties rename to canal-admin/canal-admin-server/src/main/resources/canal-template.properties index c6edb714..381c913f 100644 --- a/deployer/src/main/resources/canal_manager.properties +++ b/canal-admin/canal-admin-server/src/main/resources/canal-template.properties @@ -93,7 +93,7 @@ canal.aliyun.secretKey = ################################################# ######### destinations ############# ################################################# -canal.destinations = +canal.destinations = # conf root dir canal.conf.dir = ../conf # auto scan instance dir add/remove and start/stop instance @@ -136,4 +136,4 @@ canal.mq.accessChannel = local ################################################## canal.mq.kafka.kerberos.enable = false canal.mq.kafka.kerberos.krb5FilePath = "../conf/kerberos/krb5.conf" -canal.mq.kafka.kerberos.jaasFilePath = "../conf/kerberos/jaas.conf" \ No newline at end of file +canal.mq.kafka.kerberos.jaasFilePath = "../conf/kerberos/jaas.conf" diff --git a/canal-admin/canal-admin-server/src/main/resources/instance-template.properties b/canal-admin/canal-admin-server/src/main/resources/instance-template.properties new file mode 100644 index 00000000..5ceccab6 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/instance-template.properties @@ -0,0 +1,57 @@ +################################################# +## mysql serverId , v1.0.26+ will autoGen +# canal.instance.mysql.slaveId=0 + +# enable gtid use true/false +canal.instance.gtidon=false + +# position info +canal.instance.master.address=127.0.0.1:3306 +canal.instance.master.journal.name= +canal.instance.master.position= +canal.instance.master.timestamp= +canal.instance.master.gtid= + +# rds oss binlog +canal.instance.rds.accesskey= +canal.instance.rds.secretkey= +canal.instance.rds.instanceId= + +# table meta tsdb info +canal.instance.tsdb.enable=true +#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb +#canal.instance.tsdb.dbUsername=canal +#canal.instance.tsdb.dbPassword=canal + +#canal.instance.standby.address = +#canal.instance.standby.journal.name = +#canal.instance.standby.position = +#canal.instance.standby.timestamp = +#canal.instance.standby.gtid= + +# username/password +canal.instance.dbUsername=canal +canal.instance.dbPassword=canal +canal.instance.connectionCharset = UTF-8 +# enable druid Decrypt database password +canal.instance.enableDruid=false +#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ== + +# table regex +canal.instance.filter.regex=.*\\..* +# table black regex +canal.instance.filter.black.regex= +# table field filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2) +#canal.instance.filter.field=test1.t_product:id/subject/keywords,test2.t_company:id/name/contact/ch +# table field black filter(format: schema1.tableName1:field1/field2,schema2.tableName2:field1/field2) +#canal.instance.filter.black.field=test1.t_product:subject/product_image,test2.t_company:id/name/contact/ch + +# mq config +canal.mq.topic=example +# dynamic topic route by schema or table regex +#canal.mq.dynamicTopic=mytest1.user,mytest2\\..*,.*\\..* +canal.mq.partition=0 +# hash partition config +#canal.mq.partitionsNum=3 +#canal.mq.partitionHash=test.table:id^name,.*\\..* +################################################# diff --git a/canal-admin/canal-admin-server/src/main/resources/public/index.html b/canal-admin/canal-admin-server/src/main/resources/public/index.html index d7867c13..86fe053a 100644 --- a/canal-admin/canal-admin-server/src/main/resources/public/index.html +++ b/canal-admin/canal-admin-server/src/main/resources/public/index.html @@ -1 +1 @@ -Canal Admin
\ No newline at end of file +Canal Admin
\ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-2b9b6c5c.c89f8844.css b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-2b9b6c5c.c89f8844.css new file mode 100644 index 00000000..8a9d54cf --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-2b9b6c5c.c89f8844.css @@ -0,0 +1 @@ +.pagination-container[data-v-38ef71f0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-38ef71f0]{display:none} \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-5afa45f5.a34bb177.css b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-5afa45f5.a34bb177.css new file mode 100644 index 00000000..8f06716f --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-5afa45f5.a34bb177.css @@ -0,0 +1 @@ +.line[data-v-2e6a6604]{text-align:center} \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-5b373aad.b966d36b.css b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-5b373aad.b966d36b.css new file mode 100644 index 00000000..7be9659d --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-5b373aad.b966d36b.css @@ -0,0 +1 @@ +.line[data-v-e884438a]{text-align:center} \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-da289616.c89f8844.css b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-da289616.c89f8844.css new file mode 100644 index 00000000..8a9d54cf --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/css/chunk-da289616.c89f8844.css @@ -0,0 +1 @@ +.pagination-container[data-v-38ef71f0]{background:#fff;padding:32px 16px}.pagination-container.hidden[data-v-38ef71f0]{display:none} \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/app.6845b228.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/app.6845b228.js new file mode 100644 index 00000000..e2964848 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/app.6845b228.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["app"],{0:function(e,t,n){e.exports=n("56d7")},"028b":function(e,t,n){"use strict";var a=n("a217"),i=n.n(a);i.a},1660:function(e,t,n){"use strict";var a=n("ff7f"),i=n.n(a);i.a},"186a":function(e,t,n){"use strict";var a=n("dc52"),i=n.n(a);i.a},"18f0":function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-link",use:"icon-link-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},"1b09":function(e,t,n){"use strict";var a=n("4ed7"),i=n.n(a);i.a},2021:function(e,t,n){},"2a3d":function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-password",use:"icon-password-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},"30c3":function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-example",use:"icon-example-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},4360:function(e,t,n){"use strict";var a=n("2b0e"),i=n("2f62"),r=(n("7f7f"),{sidebar:function(e){return e.app.sidebar},device:function(e){return e.app.device},token:function(e){return e.user.token},avatar:function(e){return e.user.avatar},name:function(e){return e.user.name}}),o=r,c=n("a78e"),s=n.n(c),u={sidebar:{opened:!s.a.get("sidebarStatus")||!!+s.a.get("sidebarStatus"),withoutAnimation:!1},device:"desktop"},l={TOGGLE_SIDEBAR:function(e){e.sidebar.opened=!e.sidebar.opened,e.sidebar.withoutAnimation=!1,e.sidebar.opened?s.a.set("sidebarStatus",1):s.a.set("sidebarStatus",0)},CLOSE_SIDEBAR:function(e,t){s.a.set("sidebarStatus",0),e.sidebar.opened=!1,e.sidebar.withoutAnimation=t},TOGGLE_DEVICE:function(e,t){e.device=t}},d={toggleSideBar:function(e){var t=e.commit;t("TOGGLE_SIDEBAR")},closeSideBar:function(e,t){var n=e.commit,a=t.withoutAnimation;n("CLOSE_SIDEBAR",a)},toggleDevice:function(e,t){var n=e.commit;n("TOGGLE_DEVICE",t)}},h={namespaced:!0,state:u,mutations:l,actions:d},f=n("83d6"),m=n.n(f),p=m.a.showSettings,v=m.a.fixedHeader,b=m.a.sidebarLogo,g={showSettings:p,fixedHeader:v,sidebarLogo:b},w={CHANGE_SETTING:function(e,t){var n=t.key,a=t.value;e.hasOwnProperty(n)&&(e[n]=a)}},x={changeSetting:function(e,t){var n=e.commit;n("CHANGE_SETTING",t)}},k={namespaced:!0,state:g,mutations:w,actions:x},y=n("c24f"),C=n("5f87"),_=n("a18c"),O={token:Object(C["a"])(),name:"",avatar:""},S={SET_TOKEN:function(e,t){e.token=t},SET_NAME:function(e,t){e.name=t},SET_AVATAR:function(e,t){e.avatar=t}},z={login:function(e,t){var n=e.commit,a=t.username,i=t.password;return new Promise(function(e,t){Object(y["b"])({username:a.trim(),password:i}).then(function(t){var a=t.data;n("SET_TOKEN",a.token),Object(C["c"])(a.token),e()}).catch(function(e){t(e)})})},getInfo:function(e){var t=e.commit,n=e.state;return new Promise(function(e,a){Object(y["a"])(n.token).then(function(n){var i=n.data;i||a("Verification failed, please Login again.");var r=i.name,o=i.avatar;t("SET_NAME",r),t("SET_AVATAR",o),e(i)}).catch(function(e){a(e)})})},logout:function(e){var t=e.commit,n=e.state;return new Promise(function(e,a){Object(y["c"])(n.token).then(function(){t("SET_TOKEN",""),Object(C["b"])(),Object(_["b"])(),e()}).catch(function(e){a(e)})})},resetToken:function(e){var t=e.commit;return new Promise(function(e){t("SET_TOKEN",""),Object(C["b"])(),e()})}},E={namespaced:!0,state:O,mutations:S,actions:z};a["default"].use(i["a"]);var H=new i["a"].Store({modules:{app:h,settings:k,user:E},getters:o});t["a"]=H},"47f1":function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-table",use:"icon-table-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},"4df5":function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-eye",use:"icon-eye-usage",viewBox:"0 0 128 64",content:''});o.a.add(c);t["default"]=c},"4ed7":function(e,t,n){},"51ff":function(e,t,n){var a={"./dashboard.svg":"f782","./example.svg":"30c3","./eye-open.svg":"d7ec","./eye.svg":"4df5","./form.svg":"eb1b","./link.svg":"18f0","./nested.svg":"dcf8","./password.svg":"2a3d","./table.svg":"47f1","./tree.svg":"93cd","./user.svg":"b3b5"};function i(e){var t=r(e);return n(t)}function r(e){var t=a[e];if(!(t+1)){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}return t}i.keys=function(){return Object.keys(a)},i.resolve=r,e.exports=i,i.id="51ff"},"56d7":function(e,t,n){"use strict";n.r(t);n("cadf"),n("551c"),n("f751"),n("097d");var a=n("2b0e"),i=(n("f5df"),n("5c96")),r=n.n(i),o=(n("0fae"),n("b2d6")),c=n.n(o),s=(n("b20f"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{attrs:{id:"app"}},[n("router-view")],1)}),u=[],l={name:"App"},d=l,h=n("2877"),f=Object(h["a"])(d,s,u,!1,null,null,null),m=f.exports,p=n("4360"),v=n("a18c"),b=(n("ac6a"),function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.isExternal?n("div",e._g({staticClass:"svg-external-icon svg-icon",style:e.styleExternalIcon},e.$listeners)):n("svg",e._g({class:e.svgClass,attrs:{"aria-hidden":"true"}},e.$listeners),[n("use",{attrs:{"xlink:href":e.iconName}})])}),g=[],w=n("61f7"),x={name:"SvgIcon",props:{iconClass:{type:String,required:!0},className:{type:String,default:""}},computed:{isExternal:function(){return Object(w["a"])(this.iconClass)},iconName:function(){return"#icon-".concat(this.iconClass)},svgClass:function(){return this.className?"svg-icon "+this.className:"svg-icon"},styleExternalIcon:function(){return{mask:"url(".concat(this.iconClass,") no-repeat 50% 50%"),"-webkit-mask":"url(".concat(this.iconClass,") no-repeat 50% 50%")}}}},k=x,y=(n("68fa"),Object(h["a"])(k,b,g,!1,null,"f9f7fefc",null)),C=y.exports;a["default"].component("svg-icon",C);var _=n("51ff"),O=function(e){return e.keys().map(e)};O(_);n("7f7f"),n("96cf");var S=n("3b8d"),z=n("323e"),E=n.n(z),H=(n("a5d8"),n("5f87")),M=n("83d6"),B=n.n(M),T=B.a.title||"Vue Admin Template";function j(e){return e?"".concat(e," - ").concat(T):"".concat(T)}E.a.configure({showSpinner:!1});var L=["/login"];v["a"].beforeEach(function(){var e=Object(S["a"])(regeneratorRuntime.mark(function e(t,n,a){var r,o;return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:if(E.a.start(),document.title=j(t.meta.title),r=Object(H["a"])(),!r){e.next=29;break}if("/login"!==t.path){e.next=9;break}a({path:"/"}),E.a.done(),e.next=27;break;case 9:if(o=p["a"].getters.name,!o){e.next=14;break}a(),e.next=27;break;case 14:return e.prev=14,e.next=17,p["a"].dispatch("user/getInfo");case 17:a(),e.next=27;break;case 20:return e.prev=20,e.t0=e["catch"](14),e.next=24,p["a"].dispatch("user/resetToken");case 24:i["Message"].error(e.t0||"Has Error"),a("/login?redirect=".concat(t.path)),E.a.done();case 27:e.next=30;break;case 29:-1!==L.indexOf(t.path)?a():(a("/login?redirect=".concat(t.path)),E.a.done());case 30:case"end":return e.stop()}},e,null,[[14,20]])}));return function(t,n,a){return e.apply(this,arguments)}}()),v["a"].afterEach(function(){E.a.done()}),a["default"].use(r.a,{size:"small",locale:c.a}),a["default"].config.productionTip=!1,new a["default"]({el:"#app",router:v["a"],store:p["a"],render:function(e){return e(m)}})},"5bb9":function(e,t,n){},"5f87":function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"c",function(){return c}),n.d(t,"b",function(){return s});var a=n("a78e"),i=n.n(a),r="canal_admin_token";function o(){return i.a.get(r)}function c(e){return i.a.set(r,e,{maxAge:0})}function s(){return i.a.remove(r)}},"61f7":function(e,t,n){"use strict";function a(e){return/^(https?:|mailto:|tel:)/.test(e)}function i(e){var t=["admin","editor"];return t.indexOf(e.trim())>=0}n.d(t,"a",function(){return a}),n.d(t,"b",function(){return i})},"68fa":function(e,t,n){"use strict";var a=n("2021"),i=n.n(a);i.a},"83d6":function(e,t){e.exports={title:"Canal Admin",fixedHeader:!0,sidebarLogo:!0}},8902:function(e,t,n){},"93cd":function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-tree",use:"icon-tree-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},"9f2b":function(e,t,n){"use strict";var a=n("5bb9"),i=n.n(a);i.a},a18c:function(e,t,n){"use strict";var a,i,r=n("2b0e"),o=n("8c4f"),c=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"app-wrapper",class:e.classObj},["mobile"===e.device&&e.sidebar.opened?n("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e._v(" "),n("sidebar",{staticClass:"sidebar-container"}),e._v(" "),n("div",{staticClass:"main-container"},[n("div",{class:{"fixed-header":e.fixedHeader}},[n("navbar")],1),e._v(" "),n("app-main")],1)],1)},s=[],u=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"navbar"},[n("hamburger",{staticClass:"hamburger-container",attrs:{"is-active":e.sidebar.opened},on:{toggleClick:e.toggleSideBar}}),e._v(" "),n("breadcrumb",{staticClass:"breadcrumb-container"}),e._v(" "),n("div",{staticClass:"right-menu"},[n("el-dropdown",{staticClass:"avatar-container",attrs:{trigger:"click"}},[n("div",{staticClass:"avatar-wrapper"},[n("img",{staticClass:"user-avatar",attrs:{src:e.avat+"?imageView2/1/w/80/h/80"}}),e._v(" "),n("i",{staticClass:"el-icon-caret-bottom"})]),e._v(" "),n("el-dropdown-menu",{staticClass:"user-dropdown",attrs:{slot:"dropdown"},slot:"dropdown"},[n("router-link",{attrs:{to:"/"}},[n("el-dropdown-item",[e._v("\n 主页\n ")])],1),e._v(" "),n("router-link",{attrs:{to:"/sys/user"}},[n("el-dropdown-item",[e._v("账号管理")])],1),e._v(" "),n("el-dropdown-item",{attrs:{divided:""}},[n("span",{staticStyle:{display:"block"},on:{click:e.logout}},[e._v("退出")])])],1)],1)],1)],1)},l=[],d=(n("96cf"),n("3b8d")),h=n("db72"),f=n("2f62"),m=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[n("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.levelList,function(t,a){return n("el-breadcrumb-item",{key:t.path},["noRedirect"===t.redirect||a==e.levelList.length-1?n("span",{staticClass:"no-redirect"},[e._v(e._s(t.meta.title))]):n("a",{on:{click:function(n){return n.preventDefault(),e.handleLink(t)}}},[e._v(e._s(t.meta.title))])])}),1)],1)},p=[],v=(n("7f7f"),n("bd11")),b=n.n(v),g={data:function(){return{levelList:null}},watch:{$route:function(){this.getBreadcrumb()}},created:function(){this.getBreadcrumb()},methods:{getBreadcrumb:function(){var e=this.$route.matched.filter(function(e){return e.meta&&e.meta.title}),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"主页"}}].concat(e)),this.levelList=e.filter(function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb})},isDashboard:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()},pathCompile:function(e){var t=this.$route.params,n=b.a.compile(e);return n(t)},handleLink:function(e){var t=e.redirect,n=e.path;t?this.$router.push(t):this.$router.push(this.pathCompile(n))}}},w=g,x=(n("1b09"),n("2877")),k=Object(x["a"])(w,m,p,!1,null,"c09a31b8",null),y=k.exports,C=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{padding:"0 15px"},on:{click:e.toggleClick}},[n("svg",{staticClass:"hamburger",class:{"is-active":e.isActive},attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:"64",height:"64"}},[n("path",{attrs:{d:"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"}})])])},_=[],O={name:"Hamburger",props:{isActive:{type:Boolean,default:!1}},methods:{toggleClick:function(){this.$emit("toggleClick")}}},S=O,z=(n("186a"),Object(x["a"])(S,C,_,!1,null,"49e15297",null)),E=z.exports,H={components:{Breadcrumb:y,Hamburger:E},data:function(){return{avat:"./avatar.gif"}},computed:Object(h["a"])({},Object(f["b"])(["sidebar","avatar"])),methods:{toggleSideBar:function(){this.$store.dispatch("app/toggleSideBar")},logout:function(){var e=Object(d["a"])(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,this.$store.dispatch("user/logout");case 2:this.$router.push("/login?redirect=".concat(this.$route.fullPath));case 3:case"end":return e.stop()}},e,this)}));function t(){return e.apply(this,arguments)}return t}()}},M=H,B=(n("d5be"),Object(x["a"])(M,u,l,!1,null,"3ca66fc8",null)),T=B.exports,j=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{"has-logo":e.showLogo}},[e.showLogo?n("logo",{attrs:{collapse:e.isCollapse}}):e._e(),e._v(" "),n("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[n("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"unique-opened":!1,"active-text-color":e.variables.menuActiveText,"collapse-transition":!1,mode:"vertical"}},e._l(e.routes,function(e){return n("sidebar-item",{key:e.path,attrs:{item:e,"base-path":e.path}})}),1)],1)],1)},L=[],V=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[n("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?n("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title)+" ")])]):n("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[e.logo?n("img",{staticClass:"sidebar-logo",attrs:{src:e.logo}}):e._e(),e._v(" "),n("h1",{staticClass:"sidebar-title"},[e._v(e._s(e.title)+" ")])])],1)],1)},$=[],A={name:"SidebarLogo",props:{collapse:{type:Boolean,required:!0}},data:function(){return{title:"",logo:"./logo.png"}}},I=A,P=(n("1660"),Object(x["a"])(I,V,$,!1,null,"53202dff",null)),N=P.exports,D=function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.item.hidden?e._e():n("div",{staticClass:"menu-wrapper"},[!e.hasOneShowingChild(e.item.children,e.item)||e.onlyOneChild.children&&!e.onlyOneChild.noShowingChildren||e.item.alwaysShow?n("el-submenu",{ref:"subMenu",attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[n("template",{slot:"title"},[e.item.meta?n("item",{attrs:{icon:e.item.meta&&e.item.meta.icon,title:e.item.meta.title}}):e._e()],1),e._v(" "),e._l(e.item.children,function(t){return n("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{"is-nest":!0,item:t,"base-path":e.resolvePath(t.path)}})})],2):[e.onlyOneChild.meta?n("app-link",{attrs:{to:e.resolvePath(e.onlyOneChild.path)}},[n("el-menu-item",{class:{"submenu-title-noDropdown":!e.isNest},attrs:{index:e.resolvePath(e.onlyOneChild.path)}},[n("item",{attrs:{icon:e.onlyOneChild.meta.icon||e.item.meta&&e.item.meta.icon,title:e.onlyOneChild.meta.title}})],1)],1):e._e()]],2)},q=[],R=n("df7c"),G=n.n(R),F=n("61f7"),K={name:"MenuItem",functional:!0,props:{icon:{type:String,default:""},title:{type:String,default:""}},render:function(e,t){var n=t.props,a=n.icon,i=n.title,r=[];return a&&r.push(e("svg-icon",{attrs:{"icon-class":a}})),i&&r.push(e("span",{slot:"title"},[i])),r}},U=K,J=Object(x["a"])(U,a,i,!1,null,null,null),W=J.exports,X=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("component",e._b({},"component",e.linkProps(e.to),!1),[e._t("default")],2)},Y=[],Q={props:{to:{type:String,required:!0}},methods:{linkProps:function(e){return Object(F["a"])(e)?{is:"a",href:e,target:"_blank",rel:"noopener"}:{is:"router-link",to:e}}}},Z=Q,ee=Object(x["a"])(Z,X,Y,!1,null,null,null),te=ee.exports,ne={computed:{device:function(){return this.$store.state.app.device}},mounted:function(){this.fixBugIniOS()},methods:{fixBugIniOS:function(){var e=this,t=this.$refs.subMenu;if(t){var n=t.handleMouseleave;t.handleMouseleave=function(t){"mobile"!==e.device&&n(t)}}}}},ae={name:"SidebarItem",components:{Item:W,AppLink:te},mixins:[ne],props:{item:{type:Object,required:!0},isNest:{type:Boolean,default:!1},basePath:{type:String,default:""}},data:function(){return this.onlyOneChild=null,{}},methods:{hasOneShowingChild:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,a=t.filter(function(t){return!t.hidden&&(e.onlyOneChild=t,!0)});return 1===a.length||0===a.length&&(this.onlyOneChild=Object(h["a"])({},n,{path:"",noShowingChildren:!0}),!0)},resolvePath:function(e){return Object(F["a"])(e)?e:Object(F["a"])(this.basePath)?this.basePath:G.a.resolve(this.basePath,e)}}},ie=ae,re=Object(x["a"])(ie,D,q,!1,null,null,null),oe=re.exports,ce=n("cf1e"),se=n.n(ce),ue={components:{SidebarItem:oe,Logo:N},computed:Object(h["a"])({},Object(f["b"])(["sidebar"]),{routes:function(){return this.$router.options.routes},activeMenu:function(){var e=this.$route,t=e.meta,n=e.path;return t.activeMenu?t.activeMenu:n},showLogo:function(){return this.$store.state.settings.sidebarLogo},variables:function(){return se.a},isCollapse:function(){return!this.sidebar.opened}})},le=ue,de=Object(x["a"])(le,j,L,!1,null,null,null),he=de.exports,fe=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"app-main"},[n("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[n("router-view",{key:e.key})],1)],1)},me=[],pe={name:"AppMain",computed:{key:function(){return this.$route.path}}},ve=pe,be=(n("e4de"),n("028b"),Object(x["a"])(ve,fe,me,!1,null,"64cf4d83",null)),ge=be.exports,we=n("4360"),xe=document,ke=xe.body,ye=992,Ce={watch:{$route:function(e){"mobile"===this.device&&this.sidebar.opened&&we["a"].dispatch("app/closeSideBar",{withoutAnimation:!1})}},beforeMount:function(){window.addEventListener("resize",this.$_resizeHandler)},beforeDestroy:function(){window.removeEventListener("resize",this.$_resizeHandler)},mounted:function(){var e=this.$_isMobile();e&&(we["a"].dispatch("app/toggleDevice","mobile"),we["a"].dispatch("app/closeSideBar",{withoutAnimation:!0}))},methods:{$_isMobile:function(){var e=ke.getBoundingClientRect();return e.width-1'});o.a.add(c);t["default"]=c},b775:function(e,t,n){"use strict";var a=n("bc3a"),i=n.n(a),r=n("5c96"),o=n("4360"),c=n("5f87"),s=i.a.create({baseURL:"/api/v1",timeout:6e4});s.interceptors.request.use(function(e){return o["a"].getters.token&&(e.headers["X-Token"]=Object(c["a"])()),e},function(e){return console.log(e),Promise.reject(e)}),s.interceptors.response.use(function(e){var t=e.data;return 2e4!==t.code?(Object(r["Message"])({message:t.message||"Error",type:"error",duration:5e3}),50008!==t.code&&50012!==t.code&&50014!==t.code||r["MessageBox"].confirm("You have been logged out, you can cancel to stay on this page, or log in again","Confirm logout",{confirmButtonText:"Re-Login",cancelButtonText:"Cancel",type:"warning"}).then(function(){o["a"].dispatch("user/resetToken").then(function(){location.reload()})}),Promise.reject(new Error(t.message||"Error"))):t},function(e){return console.log("err"+e),Object(r["Message"])({message:e.message,type:"error",duration:5e3}),Promise.reject(e)}),t["a"]=s},c24f:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"d",function(){return c});var a=n("b775");function i(e){return Object(a["a"])({url:"/user/login",method:"post",data:e})}function r(e){return Object(a["a"])({url:"/user/info",method:"get",params:{token:e}})}function o(){return Object(a["a"])({url:"/user/logout",method:"post"})}function c(e){return Object(a["a"])({url:"/user",method:"put",data:e})}},cf1e:function(e,t,n){e.exports={menuText:"#bfcbd9",menuActiveText:"#409EFF",subMenuActiveText:"#f4f4f5",menuBg:"#304156",menuHover:"#263445",subMenuBg:"#1f2d3d",subMenuHover:"#001528",sideBarWidth:"210px"}},d5be:function(e,t,n){"use strict";var a=n("a424"),i=n.n(a);i.a},d7ec:function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-eye-open",use:"icon-eye-open-usage",viewBox:"0 0 1024 1024",content:''});o.a.add(c);t["default"]=c},dc52:function(e,t,n){},dcf8:function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-nested",use:"icon-nested-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},e4de:function(e,t,n){"use strict";var a=n("8902"),i=n.n(a);i.a},eb1b:function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-form",use:"icon-form-usage",viewBox:"0 0 128 128",content:''});o.a.add(c);t["default"]=c},f782:function(e,t,n){"use strict";n.r(t);var a=n("e017"),i=n.n(a),r=n("21a1"),o=n.n(r),c=new i.a({id:"icon-dashboard",use:"icon-dashboard-usage",viewBox:"0 0 128 100",content:''});o.a.add(c);t["default"]=c},ff7f:function(e,t,n){}},[[0,"runtime","chunk-elementUI","chunk-libs"]]]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-101fc062.bc898027.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-101fc062.bc898027.js new file mode 100644 index 00000000..84e9337a --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-101fc062.bc898027.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-101fc062"],{2017:function(e,t,s){"use strict";var n=s("3b76"),o=s.n(n);o.a},"3b76":function(e,t,s){},"562b":function(e,t,s){},"9ed6":function(e,t,s){"use strict";s.r(t);var n=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"login-container"},[s("el-form",{ref:"loginForm",staticClass:"login-form",attrs:{model:e.loginForm,rules:e.loginRules,"auto-complete":"on","label-position":"left"}},[s("div",{staticClass:"title-container"},[s("h3",{staticClass:"title"},[e._v("Canal Admin Login")])]),e._v(" "),s("el-form-item",{attrs:{prop:"username"}},[s("span",{staticClass:"svg-container"},[s("svg-icon",{attrs:{"icon-class":"user"}})],1),e._v(" "),s("el-input",{ref:"username",attrs:{placeholder:"Username",name:"username",type:"text",tabindex:"1","auto-complete":"on"},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}})],1),e._v(" "),s("el-form-item",{attrs:{prop:"password"}},[s("span",{staticClass:"svg-container"},[s("svg-icon",{attrs:{"icon-class":"password"}})],1),e._v(" "),s("el-input",{key:e.passwordType,ref:"password",attrs:{type:e.passwordType,placeholder:"Password",name:"password",tabindex:"2","auto-complete":"on"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleLogin(t)}},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}}),e._v(" "),s("span",{staticClass:"show-pwd",on:{click:e.showPwd}},[s("svg-icon",{attrs:{"icon-class":"password"===e.passwordType?"eye":"eye-open"}})],1)],1),e._v(" "),s("el-button",{staticStyle:{width:"100%","margin-bottom":"30px"},attrs:{loading:e.loading,type:"primary"},nativeOn:{click:function(t){return t.preventDefault(),e.handleLogin(t)}}},[e._v("Login")]),e._v(" "),s("div",{staticClass:"tips"})],1)],1)},o=[],r=s("61f7"),a={name:"Login",data:function(){var e=function(e,t,s){Object(r["b"])(t)?s():s(new Error("Please enter the correct user name"))},t=function(e,t,s){t.length<6?s(new Error("The password can not be less than 6 digits")):s()};return{loginForm:{username:"",password:""},loginRules:{username:[{required:!0,trigger:"blur",validator:e}],password:[{required:!0,trigger:"blur",validator:t}]},loading:!1,passwordType:"password",redirect:void 0}},watch:{$route:{handler:function(e){this.redirect=e.query&&e.query.redirect},immediate:!0}},methods:{showPwd:function(){var e=this;"password"===this.passwordType?this.passwordType="":this.passwordType="password",this.$nextTick(function(){e.$refs.password.focus()})},handleLogin:function(){var e=this;this.$refs.loginForm.validate(function(t){if(!t)return console.log("error submit!!"),!1;e.loading=!0,e.$store.dispatch("user/login",e.loginForm).then(function(){e.$router.push({path:e.redirect||"/"}),e.loading=!1}).catch(function(){e.loading=!1})})}}},i=a,l=(s("2017"),s("ec2d"),s("2877")),c=Object(l["a"])(i,n,o,!1,null,"31c14ebf",null);t["default"]=c.exports},ec2d:function(e,t,s){"use strict";var n=s("562b"),o=s.n(n);o.a}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-2b9b6c5c.cc2181b9.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-2b9b6c5c.cc2181b9.js new file mode 100644 index 00000000..d7a71c5a --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-2b9b6c5c.cc2181b9.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2b9b6c5c"],{"11e9":function(t,e,n){var a=n("52a7"),r=n("4630"),i=n("6821"),o=n("6a99"),c=n("69a8"),u=n("c69a"),s=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?s:function(t,e){if(t=i(t),e=o(e,!0),u)try{return s(t,e)}catch(n){}if(c(t,e))return r(!a.f.call(t,e),t[e])}},"1c98":function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-input",{staticClass:"filter-item",staticStyle:{width:"200px"},attrs:{placeholder:"Instance 名称"},model:{value:t.listQuery.name,callback:function(e){t.$set(t.listQuery,"name",e)},expression:"listQuery.name"}}),t._v(" "),n("el-select",{staticClass:"filter-item",attrs:{placeholder:"所属集群/主机"},model:{value:t.listQuery.clusterServerId,callback:function(e){t.$set(t.listQuery,"clusterServerId",e)},expression:"listQuery.clusterServerId"}},[n("el-option",{key:"",attrs:{label:"所属集群/主机",value:""}}),t._v(" "),t._l(t.options,function(e){return n("el-option-group",{key:e.label,attrs:{label:e.label}},t._l(e.options,function(t){return n("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})}),1)})],2),t._v(" "),n("el-button",{staticClass:"filter-item",attrs:{type:"primary",icon:"el-icon-search",plain:""},on:{click:function(e){return t.queryData()}}},[t._v("查询")]),t._v("\n   \n "),n("el-button",{staticClass:"filter-item",attrs:{type:"primary"},on:{click:function(e){return t.handleCreate()}}},[t._v("新建 Instance")]),t._v(" "),n("el-button",{staticClass:"filter-item",attrs:{type:"info"},on:{click:function(e){return t.fetchData()}}},[t._v("刷新列表")])],1),t._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.listLoading,expression:"listLoading"}],attrs:{data:t.list,"element-loading-text":"Loading",border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{label:"Instance 名称","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.name)+"\n ")]}}])}),t._v(" "),n("el-table-column",{attrs:{label:"所属集群","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[null!==e.row.canalCluster?n("span",[t._v("\n "+t._s(e.row.canalCluster.name)+"\n ")]):n("span",[t._v("-")])]}}])}),t._v(" "),n("el-table-column",{attrs:{label:"所属主机","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[null!==e.row.nodeServer?n("span",[t._v("\n "+t._s(e.row.nodeServer.name)+"\n ")]):n("span",[t._v("-")])]}}])}),t._v(" "),n("el-table-column",{attrs:{"class-name":"status-col",label:"状态","min-width":"150",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("el-tag",{attrs:{type:t._f("statusFilter")(e.row.runningStatus)}},[t._v(t._s(t._f("statusLabel")(e.row.runningStatus)))])]}}])}),t._v(" "),n("el-table-column",{attrs:{label:"修改时间","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.modifiedTime)+"\n ")]}}])}),t._v(" "),n("el-table-column",{attrs:{align:"center",prop:"created_at",label:"操作","min-width":"150"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("el-button",{attrs:{type:"primary",size:"mini"}},[t._v("\n 操作"),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),t._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleUpdate(e.row)}}},[t._v("修改")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleDelete(e.row)}}},[t._v("删除")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleStart(e.row)}}},[t._v("启动")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleStop(e.row)}}},[t._v("停止")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleLog(e.row)}}},[t._v("日志")])],1)],1)]}}])})],1),t._v(" "),n("pagination",{directives:[{name:"show",rawName:"v-show",value:t.count>0,expression:"count>0"}],attrs:{total:t.count,page:t.listQuery.page,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"page",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:function(e){return t.fetchData()}}})],1)},r=[],i=(n("7f7f"),n("f546")),o=n("333d"),c=n("d631"),u={components:{Pagination:o["a"]},filters:{statusFilter:function(t){var e={1:"success",0:"gray"};return e[t]},statusLabel:function(t){var e={1:"启动",0:"停止"};return e[t]}},data:function(){return{list:null,listLoading:!0,dialogFormVisible:!1,nodeServices:[],count:0,options:[],listQuery:{name:"",clusterServerId:"",page:1,size:20},currentId:null,rules:{id:[{required:!0,message:"请选择运行Server",trigger:"change"}]}}},created:function(){var t=this;Object(c["d"])().then(function(e){t.options=e.data}),this.fetchData()},methods:{queryData:function(){this.listQuery.page=1,this.fetchData()},fetchData:function(){var t=this;this.listLoading=!0,Object(i["e"])(this.listQuery).then(function(e){t.list=e.data.items,t.count=e.data.count}).finally(function(){t.listLoading=!1})},handleCreate:function(){this.$router.push("/canalServer/canalInstance/add")},handleUpdate:function(t){this.$router.push("/canalServer/canalInstance/modify?id="+t.id)},handleDelete:function(t){var e=this;this.$confirm("删除Instance配置会导致停止","确定删除Instance信息",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(i["c"])(t.id).then(function(t){"success"===t.data?(e.fetchData(),e.$message({message:"删除Instance信息成功",type:"success"})):e.$message({message:"删除Instance信息失败",type:"error"})})})},handleStart:function(t){var e=this;this.$confirm("启动Instance: "+t.name,"确定启动Instance服务",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(i["h"])(t.id,"start").then(function(t){t.data?(e.fetchData(),e.$message({message:"启动成功, 稍后请刷新列表查看状态",type:"success"})):e.$message({message:"启动Instance出现异常",type:"error"})})})},handleStop:function(t){var e=this;this.$confirm("停止Instance: "+t.name,"确定停止Instance服务",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(i["h"])(t.id,"stop").then(function(t){t.data?(e.fetchData(),e.$message({message:"停止成功, 稍后请刷新列表查看状态",type:"success"})):e.$message({message:"停止Instance出现异常",type:"error"})})})},handleLog:function(t){null!==t.nodeId?this.$router.push("canalInstance/log?id="+t.id+"&nodeId="+t.nodeServer.id):this.$message({message:"当前Instance不是启动状态,无法查看日志",type:"warning"})}}},s=u,l=n("2877"),d=Object(l["a"])(s,a,r,!1,null,null,null);e["default"]=d.exports},"333d":function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[n("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,"page-sizes":t.pageSizes,total:t.total},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},r=[];n("c5f6");Math.easeInOutQuad=function(t,e,n,a){return t/=a/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var i=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function o(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function c(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function u(t,e,n){var a=c(),r=t-a,u=20,s=0;e="undefined"===typeof e?500:e;var l=function t(){s+=u;var c=Math.easeInOutQuad(s,a,r,e);o(c),s2){e=b?e.trim():f(e,3);var n,a,r,i=e.charCodeAt(0);if(43===i||45===i){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:a=2,r=49;break;case 79:case 111:a=8,r=55;break;default:return+e}for(var o,u=e.slice(2),s=0,l=u.length;sr)return NaN;return parseInt(u,a)}}return+e};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof m&&(v?u(function(){g.valueOf.call(n)}):i(n)!=p)?o(new h(y(e)),n,m):y(e)};for(var _,w=n("9e1e")?s(h):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;w.length>S;S++)r(h,_=w[S])&&!r(m,_)&&d(m,_,l(h,_));m.prototype=g,g.constructor=m,n("2aba")(a,p,m)}},d631:function(t,e,n){"use strict";n.d(e,"c",function(){return r}),n.d(e,"a",function(){return i}),n.d(e,"e",function(){return o}),n.d(e,"b",function(){return c}),n.d(e,"d",function(){return u});var a=n("b775");function r(t){return Object(a["a"])({url:"/canal/clusters",method:"get",params:t})}function i(t){return Object(a["a"])({url:"/canal/cluster",method:"post",data:t})}function o(t){return Object(a["a"])({url:"/canal/cluster",method:"put",data:t})}function c(t){return Object(a["a"])({url:"/canal/cluster/"+t,method:"delete"})}function u(){return Object(a["a"])({url:"/canal/clustersAndServers",method:"get"})}},dfcf:function(t,e,n){"use strict";var a=n("690d"),r=n.n(a);r.a},f546:function(t,e,n){"use strict";n.d(e,"e",function(){return r}),n.d(e,"b",function(){return i}),n.d(e,"k",function(){return o}),n.d(e,"a",function(){return c}),n.d(e,"c",function(){return u}),n.d(e,"i",function(){return s}),n.d(e,"j",function(){return l}),n.d(e,"g",function(){return d}),n.d(e,"h",function(){return f}),n.d(e,"d",function(){return p}),n.d(e,"f",function(){return m});var a=n("b775");function r(t){return Object(a["a"])({url:"/canal/instances",method:"get",params:t})}function i(t){return Object(a["a"])({url:"/canal/instance/"+t,method:"get"})}function o(t){return Object(a["a"])({url:"/canal/instance",method:"put",data:t})}function c(t){return Object(a["a"])({url:"/canal/instance",method:"post",data:t})}function u(t){return Object(a["a"])({url:"/canal/instance/"+t,method:"delete"})}function s(t,e){return Object(a["a"])({url:"/canal/instance/start/"+t+"/"+e,method:"put"})}function l(t,e){return Object(a["a"])({url:"/canal/instance/stop/"+t+"/"+e,method:"put"})}function d(t,e){return Object(a["a"])({url:"/canal/instance/log/"+t+"/"+e,method:"get"})}function f(t,e){return Object(a["a"])({url:"/canal/instance/status/"+t+"?option="+e,method:"put"})}function p(t){return Object(a["a"])({url:"/canal/active/instances/"+t,method:"get"})}function m(){return Object(a["a"])({url:"/canal/instance/template",method:"get"})}},fdef:function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-37c49cbf.64d26540.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-37c49cbf.64d26540.js new file mode 100644 index 00000000..555a7246 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-37c49cbf.64d26540.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-37c49cbf"],{3671:function(t,e,n){"use strict";var a=n("afe4"),c=n.n(a);c.a},9406:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},c=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dashboard-container"},[n("div",{staticClass:"dashboard-text"},[t._v(" ")])])}],s=n("db72"),r=n("2f62"),u={name:"Dashboard",computed:Object(s["a"])({},Object(r["b"])(["name"])),mounted:function(){this.$router.push("/canalServer")}},i=u,o=(n("3671"),n("2877")),d=Object(o["a"])(i,a,c,!1,null,"42037c2b",null);e["default"]=d.exports},afe4:function(t,e,n){}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-49959c8b.6d226f70.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-49959c8b.6d226f70.js new file mode 100644 index 00000000..b797ddf8 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-49959c8b.6d226f70.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-49959c8b"],{"26fc":function(t,s,a){t.exports=a.p+"static/img/404_cloud.0f4bc32b.png"},"8cdb":function(t,s,a){"use strict";a.r(s);var e=function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"wscn-http404-container"},[a("div",{staticClass:"wscn-http404"},[t._m(0),t._v(" "),a("div",{staticClass:"bullshit"},[a("div",{staticClass:"bullshit__oops"},[t._v("OOPS!")]),t._v(" "),t._m(1),t._v(" "),a("div",{staticClass:"bullshit__headline"},[t._v(t._s(t.message))]),t._v(" "),a("div",{staticClass:"bullshit__info"},[t._v("Please check that the URL you entered is correct, or click the button below to return to the homepage.")]),t._v(" "),a("a",{staticClass:"bullshit__return-home",attrs:{href:""}},[t._v("Back to home")])])])])},c=[function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"pic-404"},[e("img",{staticClass:"pic-404__parent",attrs:{src:a("a36b"),alt:"404"}}),t._v(" "),e("img",{staticClass:"pic-404__child left",attrs:{src:a("26fc"),alt:"404"}}),t._v(" "),e("img",{staticClass:"pic-404__child mid",attrs:{src:a("26fc"),alt:"404"}}),t._v(" "),e("img",{staticClass:"pic-404__child right",attrs:{src:a("26fc"),alt:"404"}})])},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"bullshit__info"},[t._v("All rights reserved\n "),a("a",{staticStyle:{color:"#20a0ff"},attrs:{href:"https://wallstreetcn.com",target:"_blank"}},[t._v("wallstreetcn")])])}],i={name:"Page404",computed:{message:function(){return"The webmaster said that you can not enter this page..."}}},l=i,n=(a("97ef"),a("2877")),r=Object(n["a"])(l,e,c,!1,null,"c095f994",null);s["default"]=r.exports},"97ef":function(t,s,a){"use strict";var e=a("b51e"),c=a.n(e);c.a},a36b:function(t,s,a){t.exports=a.p+"static/img/404.a57b6f31.png"},b51e:function(t,s,a){}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-4f09fed2.ff28d88d.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-4f09fed2.ff28d88d.js new file mode 100644 index 00000000..4a21288f --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-4f09fed2.ff28d88d.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4f09fed2"],{"68d6":function(t,e,n){"use strict";var r=n("9d07"),o=n.n(r);o.a},"9d07":function(t,e,n){},c6ed:function(t,e,n){"use strict";n.d(e,"c",function(){return o}),n.d(e,"a",function(){return c}),n.d(e,"g",function(){return u}),n.d(e,"b",function(){return a}),n.d(e,"e",function(){return d}),n.d(e,"f",function(){return i}),n.d(e,"d",function(){return f});var r=n("b775");function o(t){return Object(r["a"])({url:"/nodeServers",method:"get",params:t})}function c(t){return Object(r["a"])({url:"/nodeServer",method:"post",data:t})}function u(t){return Object(r["a"])({url:"/nodeServer",method:"put",data:t})}function a(t){return Object(r["a"])({url:"/nodeServer/"+t,method:"delete"})}function d(t){return Object(r["a"])({url:"/nodeServer/start/"+t,method:"put"})}function i(t){return Object(r["a"])({url:"/nodeServer/stop/"+t,method:"put"})}function f(t){return Object(r["a"])({url:"/nodeServer/log/"+t,method:"get"})}},caf8:function(t,e,n){"use strict";n.r(e);var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("el-form",{ref:"form",attrs:{model:t.form}},[n("div",{staticStyle:{"padding-left":"10px","padding-right":"10px","padding-top":"20px"}},[n("el-form-item",[t._v("\n canal.log    \n "),n("el-button",{attrs:{type:"primary"},on:{click:t.onRefresh}},[t._v("刷新")]),t._v(" "),n("el-button",{attrs:{type:"info"},on:{click:t.onBack}},[t._v("返回")])],1),t._v(" "),n("el-input",{attrs:{rows:35,readonly:"readonly",type:"textarea"},model:{value:t.form.desc,callback:function(e){t.$set(t.form,"desc",e)},expression:"form.desc"}})],1)])],1)},o=[],c=n("c6ed"),u={data:function(){return{form:{desc:""}}},created:function(){this.fetchData()},methods:{fetchData:function(){var t=this;Object(c["d"])(this.$route.query.id).then(function(e){t.form.desc=e.data})},onRefresh:function(){this.fetchData()},onBack:function(){history.go(-1)}}},a=u,d=(n("68d6"),n("2877")),i=Object(d["a"])(a,r,o,!1,null,"64c3fae5",null);e["default"]=i.exports}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-55380ff2.681c71c9.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-55380ff2.681c71c9.js new file mode 100644 index 00000000..6e5f5b4c --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-55380ff2.681c71c9.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-55380ff2"],{d631:function(t,e,n){"use strict";n.d(e,"c",function(){return i}),n.d(e,"a",function(){return r}),n.d(e,"e",function(){return l}),n.d(e,"b",function(){return s}),n.d(e,"d",function(){return o});var a=n("b775");function i(t){return Object(a["a"])({url:"/canal/clusters",method:"get",params:t})}function r(t){return Object(a["a"])({url:"/canal/cluster",method:"post",data:t})}function l(t){return Object(a["a"])({url:"/canal/cluster",method:"put",data:t})}function s(t){return Object(a["a"])({url:"/canal/cluster/"+t,method:"delete"})}function o(){return Object(a["a"])({url:"/canal/clustersAndServers",method:"get"})}},e509:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"app-container"},[n("div",{staticClass:"filter-container"},[n("el-button",{staticClass:"filter-item",attrs:{type:"primary"},on:{click:function(e){return t.handleCreate()}}},[t._v("新建集群")])],1),t._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.listLoading,expression:"listLoading"}],attrs:{data:t.list,"element-loading-text":"Loading",border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{label:"集群名称","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.name)+"\n ")]}}])}),t._v(" "),n("el-table-column",{attrs:{label:"ZK地址","min-width":"300",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("span",[t._v(t._s(e.row.zkHosts))])]}}])}),t._v(" "),n("el-table-column",{attrs:{align:"center",prop:"created_at",label:"操作","min-width":"150"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("el-button",{attrs:{type:"primary",size:"mini"}},[t._v("\n 操作"),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),t._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleConfig(e.row)}}},[t._v("主配置")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleUpdate(e.row)}}},[t._v("修改集群")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleDelete(e.row)}}},[t._v("删除集群")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleView(e.row)}}},[t._v("查看Server")])],1)],1)]}}])})],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogFormVisible,title:t.textMap[t.dialogStatus],width:"600px"},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"400px","margin-left":"30px"},attrs:{rules:t.rules,model:t.canalCluster,"label-position":"left","label-width":"120px"}},[n("el-form-item",{attrs:{label:"集群名称",prop:"name"}},[n("el-input",{model:{value:t.canalCluster.name,callback:function(e){t.$set(t.canalCluster,"name",e)},expression:"canalCluster.name"}})],1),t._v(" "),n("el-form-item",{attrs:{label:"ZK地址",prop:"zkHosts"}},[n("el-input",{model:{value:t.canalCluster.zkHosts,callback:function(e){t.$set(t.canalCluster,"zkHosts",e)},expression:"canalCluster.zkHosts"}})],1)],1),t._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v("取消")]),t._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(e){return t.dataOperation()}}},[t._v("确定")])],1)],1)],1)},i=[],r=n("d631"),l={filters:{statusFilter:function(t){var e={1:"success",0:"gray","-1":"danger"};return e[t]},statusLabel:function(t){var e={1:"启动",0:"停止","-1":"断开"};return e[t]}},data:function(){return{list:null,listLoading:!0,listQuery:{name:"",ip:""},dialogFormVisible:!1,textMap:{create:"新建集群信息",update:"修改集群信息"},canalCluster:{id:null,name:null,zkHosts:null},rules:{name:[{required:!0,message:"集群名称不能为空",trigger:"change"}],zkHosts:[{required:!0,message:"zk地址不能为空",trigger:"change"}]},dialogStatus:"create"}},created:function(){this.fetchData()},methods:{fetchData:function(){var t=this;this.listLoading=!0,Object(r["c"])(this.listQuery).then(function(e){t.list=e.data}).finally(function(){t.listLoading=!1})},resetModel:function(){this.canalCluster={id:null,name:null,zkHosts:null}},handleCreate:function(){var t=this;this.resetModel(),this.dialogStatus="create",this.dialogFormVisible=!0,this.$nextTick(function(){t.$refs["dataForm"].clearValidate()})},dataOperation:function(){var t=this;this.$refs["dataForm"].validate(function(e){e&&("create"===t.dialogStatus&&Object(r["a"])(t.canalCluster).then(function(e){t.operationRes(e)}),"update"===t.dialogStatus&&Object(r["e"])(t.canalCluster).then(function(e){t.operationRes(e)}))})},operationRes:function(t){"success"===t.data?(this.fetchData(),this.dialogFormVisible=!1,this.$message({message:this.textMap[this.dialogStatus]+"成功",type:"success"})):this.$message({message:this.textMap[this.dialogStatus]+"失败",type:"error"})},handleView:function(t){this.$router.push("/canalServer/nodeServers?clusterId="+t.id)},handleConfig:function(t){this.$router.push("/canalServer/nodeServer/config?clusterId="+t.id)},handleUpdate:function(t){var e=this;this.resetModel(),this.canalCluster=Object.assign({},t),this.dialogStatus="update",this.dialogFormVisible=!0,this.$nextTick(function(){e.$refs["dataForm"].clearValidate()})},handleDelete:function(t){var e=this;this.$confirm("删除集群信息会导致服务停止","确定删除集群信息",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(r["b"])(t.id).then(function(t){"success"===t.data?(e.fetchData(),e.$message({message:"删除集群信息成功",type:"success"})):e.$message({message:"删除集群信息失败",type:"error"})})})}}},s=l,o=n("2877"),c=Object(o["a"])(s,a,i,!1,null,null,null);e["default"]=c.exports}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-5afa45f5.79ddcc04.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-5afa45f5.79ddcc04.js new file mode 100644 index 00000000..058cbeb5 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-5afa45f5.79ddcc04.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5afa45f5"],{"0984":function(t,e,n){},"0f47":function(t,e,n){"use strict";var o=n("0984"),r=n.n(o);r.a},aa99:function(t,e,n){"use strict";n.r(e);var o=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("el-form",{ref:"form",attrs:{model:t.form}},[n("div",{staticStyle:{"padding-left":"10px","padding-top":"20px"}},[n("el-form-item",[t._v("\n "+t._s(t.form.name)+"    \n "),n("el-button",{attrs:{type:"primary"},on:{click:t.onSubmit}},[t._v("保存")]),t._v(" "),n("el-button",{attrs:{type:"warning"},on:{click:t.onCancel}},[t._v("重置")]),t._v(" "),n("el-button",{attrs:{type:"success"},on:{click:t.onLoadTemplate}},[t._v("载入模板")]),t._v(" "),n("el-button",{attrs:{type:"info"},on:{click:t.onBack}},[t._v("返回")])],1)],1),t._v(" "),n("editor",{attrs:{lang:"properties",theme:"chrome",width:"100%",height:800},on:{init:t.editorInit},model:{value:t.form.content,callback:function(e){t.$set(t.form,"content",e)},expression:"form.content"}})],1)],1)},r=[],a=(n("7f7f"),n("b775"));function c(t,e){return Object(a["a"])({url:"/canal/config/"+t+"/"+e,method:"get"})}function i(t){return Object(a["a"])({url:"/canal/config",method:"put",data:t})}function s(){return Object(a["a"])({url:"/canal/config/template",method:"get"})}var u={components:{editor:n("7c9e")},data:function(){return{form:{id:null,name:"",content:"",serverId:null,clusterId:null}}},created:function(){this.loadCanalConfig()},methods:{editorInit:function(){n("2099"),n("be9d"),n("2968"),n("e0e5"),n("bb36"),n("0329"),n("95b8"),n("6a21")},loadCanalConfig:function(){var t=this,e=0,n=0;this.$route.query.clusterId?e=this.$route.query.clusterId:this.$route.query.serverId&&(n=this.$route.query.serverId),c(e,n).then(function(e){var n=e.data;t.form.id=n.id,t.form.name=n.name,t.form.content=n.content,t.form.serverId=t.$route.query.serverId,t.form.clusterId=t.$route.query.clusterId})},onSubmit:function(){var t=this;null!==this.form.content&&""!==this.form.content?this.$confirm("修改主配置可能会导致Server重启,是否继续?","确定修改",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){i(t.form).then(function(e){"success"===e.data?(t.$message({message:"保存成功",type:"success"}),t.loadCanalConfig()):t.$message({message:"保存失败",type:"error"})})}):this.$message({message:"配置内容不能为空",type:"error"})},onCancel:function(){this.loadCanalConfig()},onBack:function(){history.go(-1)},onLoadTemplate:function(){var t=this;s().then(function(e){t.form.content=e.data})}}},f=u,l=(n("0f47"),n("2877")),m=Object(l["a"])(f,o,r,!1,null,"2e6a6604",null);e["default"]=m.exports}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-5b373aad.90a2d8e7.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-5b373aad.90a2d8e7.js new file mode 100644 index 00000000..7572111b --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-5b373aad.90a2d8e7.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5b373aad"],{1248:function(t,e,n){"use strict";n.r(e);var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("el-form",{ref:"form",attrs:{model:t.form}},[n("div",{staticClass:"filter-container",staticStyle:{"padding-left":"10px","padding-top":"20px"}},[n("el-input",{staticClass:"filter-item",staticStyle:{width:"200px"},attrs:{placeholder:"Instance名称"},model:{value:t.form.name,callback:function(e){t.$set(t.form,"name",e)},expression:"form.name"}}),t._v(" "),n("el-select",{staticClass:"filter-item",attrs:{placeholder:"所属集群/主机"},model:{value:t.form.clusterServerId,callback:function(e){t.$set(t.form,"clusterServerId",e)},expression:"form.clusterServerId"}},t._l(t.options,function(e){return n("el-option-group",{key:e.label,attrs:{label:e.label}},t._l(e.options,function(t){return n("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})}),1)}),1),t._v(" "),n("el-button",{staticClass:"filter-item",attrs:{type:"primary"},on:{click:t.onSubmit}},[t._v("保存")]),t._v(" "),n("el-button",{staticClass:"filter-item",attrs:{type:"success"},on:{click:t.onLoadTemplate}},[t._v("载入模板")]),t._v(" "),n("el-button",{staticClass:"filter-item",attrs:{type:"info"},on:{click:t.onBack}},[t._v("返回")])],1),t._v(" "),n("editor",{attrs:{lang:"properties",theme:"chrome",width:"100%",height:800},on:{init:t.editorInit},model:{value:t.form.content,callback:function(e){t.$set(t.form,"content",e)},expression:"form.content"}})],1)],1)},a=[],c=(n("7f7f"),n("f546")),o=n("d631"),u={components:{editor:n("7c9e")},data:function(){return{options:[],form:{name:"",content:"",clusterServerId:""}}},created:function(){var t=this;Object(o["d"])().then(function(e){t.options=e.data})},methods:{editorInit:function(){n("2099"),n("be9d"),n("2968"),n("e0e5"),n("bb36"),n("0329"),n("95b8"),n("6a21")},onSubmit:function(){var t=this;""!==this.form.name?""!==this.form.clusterServerId?null!==this.form.content&&""!==this.form.content?this.$confirm("确定新建","确定新建",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(c["a"])(t.form).then(function(e){"success"===e.data?(t.$message({message:"新建成功",type:"success"}),t.$router.push("/canalServer/canalInstances")):t.$message({message:"新建失败",type:"error"})})}):this.$message({message:"请输入配置内容",type:"error"}):this.$message({message:"请选择所属集群/主机",type:"error"}):this.$message({message:"请输入Instance名称",type:"error"})},onBack:function(){history.go(-1)},onLoadTemplate:function(){var t=this;Object(c["f"])().then(function(e){t.form.content=e.data})}}},i=u,s=(n("890e"),n("2877")),l=Object(s["a"])(i,r,a,!1,null,"e884438a",null);e["default"]=l.exports},"41be":function(t,e,n){},"890e":function(t,e,n){"use strict";var r=n("41be"),a=n.n(r);a.a},d631:function(t,e,n){"use strict";n.d(e,"c",function(){return a}),n.d(e,"a",function(){return c}),n.d(e,"e",function(){return o}),n.d(e,"b",function(){return u}),n.d(e,"d",function(){return i});var r=n("b775");function a(t){return Object(r["a"])({url:"/canal/clusters",method:"get",params:t})}function c(t){return Object(r["a"])({url:"/canal/cluster",method:"post",data:t})}function o(t){return Object(r["a"])({url:"/canal/cluster",method:"put",data:t})}function u(t){return Object(r["a"])({url:"/canal/cluster/"+t,method:"delete"})}function i(){return Object(r["a"])({url:"/canal/clustersAndServers",method:"get"})}},f546:function(t,e,n){"use strict";n.d(e,"e",function(){return a}),n.d(e,"b",function(){return c}),n.d(e,"k",function(){return o}),n.d(e,"a",function(){return u}),n.d(e,"c",function(){return i}),n.d(e,"i",function(){return s}),n.d(e,"j",function(){return l}),n.d(e,"g",function(){return f}),n.d(e,"h",function(){return d}),n.d(e,"d",function(){return m}),n.d(e,"f",function(){return p});var r=n("b775");function a(t){return Object(r["a"])({url:"/canal/instances",method:"get",params:t})}function c(t){return Object(r["a"])({url:"/canal/instance/"+t,method:"get"})}function o(t){return Object(r["a"])({url:"/canal/instance",method:"put",data:t})}function u(t){return Object(r["a"])({url:"/canal/instance",method:"post",data:t})}function i(t){return Object(r["a"])({url:"/canal/instance/"+t,method:"delete"})}function s(t,e){return Object(r["a"])({url:"/canal/instance/start/"+t+"/"+e,method:"put"})}function l(t,e){return Object(r["a"])({url:"/canal/instance/stop/"+t+"/"+e,method:"put"})}function f(t,e){return Object(r["a"])({url:"/canal/instance/log/"+t+"/"+e,method:"get"})}function d(t,e){return Object(r["a"])({url:"/canal/instance/status/"+t+"?option="+e,method:"put"})}function m(t){return Object(r["a"])({url:"/canal/active/instances/"+t,method:"get"})}function p(){return Object(r["a"])({url:"/canal/instance/template",method:"get"})}}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-69386cf0.76d77f5c.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-69386cf0.76d77f5c.js new file mode 100644 index 00000000..c8a8d532 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-69386cf0.76d77f5c.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-69386cf0"],{2829:function(e,t,s){},"646d":function(e,t,s){"use strict";var r=s("2829"),o=s.n(r);o.a},"9fb7":function(e,t,s){"use strict";s.r(t);var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"app-container",staticStyle:{width:"600px"}},[s("el-form",{ref:"form",attrs:{rules:e.rules,model:e.form,"label-width":"120px"}},[s("el-form-item",{attrs:{label:"用户名",prop:"username"}},[s("el-input",{staticStyle:{width:"200px"},model:{value:e.form.username,callback:function(t){e.$set(e.form,"username",t)},expression:"form.username"}})],1),e._v(" "),s("el-form-item",{attrs:{label:"旧密码",prop:"oldPassword"}},[s("el-input",{staticStyle:{width:"200px"},attrs:{type:"password"},model:{value:e.form.oldPassword,callback:function(t){e.$set(e.form,"oldPassword",t)},expression:"form.oldPassword"}})],1),e._v(" "),s("el-form-item",{attrs:{label:"密码",prop:"password"}},[s("el-input",{staticStyle:{width:"200px"},attrs:{placeholder:"空为不修改密码",type:"password"},model:{value:e.form.password,callback:function(t){e.$set(e.form,"password",t)},expression:"form.password"}})],1),e._v(" "),s("el-form-item",[s("el-button",{attrs:{type:"primary"},on:{click:e.onSubmit}},[e._v("修改")]),e._v(" "),s("el-button",{on:{click:e.onCancel}},[e._v("取消")])],1)],1)],1)},o=[],a=s("c24f"),n=s("5f87"),l={data:function(){return{form:{username:"",oldPassword:"",password:null},rules:{username:[{required:!0,message:"用户名能为空",trigger:"change"}],oldPassword:[{required:!0,message:"旧密码不能为空",trigger:"change"}]}}},created:function(){this.fetchUserInfo()},methods:{fetchUserInfo:function(){var e=this;Object(a["a"])(Object(n["a"])()).then(function(t){e.form.username=t.data.username})},onSubmit:function(){var e=this;this.$refs["form"].validate(function(t){t&&Object(a["d"])(e.form).then(function(t){"success"===t.data?(e.form.oldPassword="",e.form.password=null,e.$nextTick(function(){e.$refs["form"].clearValidate()}),e.$message({message:"修改用户信息成功",type:"success"})):e.$message({message:"修改用户信息成功",type:"error"})})})},onCancel:function(){history.go(-1)}}},i=l,c=(s("646d"),s("2877")),f=Object(c["a"])(i,r,o,!1,null,"756ebb70",null);t["default"]=f.exports}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-7ec889b7.bd1ca803.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-7ec889b7.bd1ca803.js new file mode 100644 index 00000000..509b3c90 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-7ec889b7.bd1ca803.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7ec889b7"],{"11ec":function(t,n,e){},"7f19":function(t,n,e){"use strict";var c=e("11ec"),r=e.n(c);r.a},"7f84":function(t,n,e){"use strict";e.r(n);var c=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("el-form",{ref:"form",attrs:{model:t.form}},[e("div",{staticStyle:{"padding-left":"10px","padding-right":"10px","padding-top":"20px"}},[e("el-form-item",[t._v("\n "+t._s(t.form.instance)+"    \n "),e("el-button",{attrs:{type:"primary"},on:{click:t.onRefresh}},[t._v("刷新")]),t._v(" "),e("el-button",{attrs:{type:"info"},on:{click:t.onBack}},[t._v("返回")])],1),t._v(" "),e("el-input",{attrs:{rows:35,readonly:"readonly",type:"textarea"},model:{value:t.form.desc,callback:function(n){t.$set(t.form,"desc",n)},expression:"form.desc"}})],1)])],1)},r=[],a=e("f546"),o={data:function(){return{form:{instance:"",desc:""}}},created:function(){this.fetchData()},methods:{fetchData:function(){var t=this;Object(a["g"])(this.$route.query.id,this.$route.query.nodeId).then(function(n){t.form.instance=n.data.instance+".log",t.form.desc=n.data.log})},onRefresh:function(){this.fetchData()},onBack:function(){history.go(-1)}}},u=o,i=(e("7f19"),e("2877")),f=Object(i["a"])(u,c,r,!1,null,"0b80198c",null);n["default"]=f.exports},f546:function(t,n,e){"use strict";e.d(n,"e",function(){return r}),e.d(n,"b",function(){return a}),e.d(n,"k",function(){return o}),e.d(n,"a",function(){return u}),e.d(n,"c",function(){return i}),e.d(n,"i",function(){return f}),e.d(n,"j",function(){return s}),e.d(n,"g",function(){return d}),e.d(n,"h",function(){return l}),e.d(n,"d",function(){return m}),e.d(n,"f",function(){return h});var c=e("b775");function r(t){return Object(c["a"])({url:"/canal/instances",method:"get",params:t})}function a(t){return Object(c["a"])({url:"/canal/instance/"+t,method:"get"})}function o(t){return Object(c["a"])({url:"/canal/instance",method:"put",data:t})}function u(t){return Object(c["a"])({url:"/canal/instance",method:"post",data:t})}function i(t){return Object(c["a"])({url:"/canal/instance/"+t,method:"delete"})}function f(t,n){return Object(c["a"])({url:"/canal/instance/start/"+t+"/"+n,method:"put"})}function s(t,n){return Object(c["a"])({url:"/canal/instance/stop/"+t+"/"+n,method:"put"})}function d(t,n){return Object(c["a"])({url:"/canal/instance/log/"+t+"/"+n,method:"get"})}function l(t,n){return Object(c["a"])({url:"/canal/instance/status/"+t+"?option="+n,method:"put"})}function m(t){return Object(c["a"])({url:"/canal/active/instances/"+t,method:"get"})}function h(){return Object(c["a"])({url:"/canal/instance/template",method:"get"})}}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-bd1d44ee.8e2c4851.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-bd1d44ee.8e2c4851.js new file mode 100644 index 00000000..9be301d5 --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-bd1d44ee.8e2c4851.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-bd1d44ee"],{"878d":function(t,n,e){},b0a2:function(t,n,e){"use strict";e.r(n);var r=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",[e("el-form",{ref:"form",attrs:{model:t.form}},[e("div",{staticStyle:{"padding-left":"10px","padding-top":"20px"}},[e("el-form-item",[t._v("\n "+t._s(t.form.name)+"    \n "),e("el-select",{staticClass:"filter-item",attrs:{placeholder:"所属集群/主机"},model:{value:t.form.clusterServerId,callback:function(n){t.$set(t.form,"clusterServerId",n)},expression:"form.clusterServerId"}},t._l(t.options,function(n){return e("el-option-group",{key:n.label,attrs:{label:n.label}},t._l(n.options,function(t){return e("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})}),1)}),1),t._v(" "),e("el-button",{attrs:{type:"primary"},on:{click:t.onSubmit}},[t._v("修改")]),t._v(" "),e("el-button",{attrs:{type:"warning"},on:{click:t.onCancel}},[t._v("重置")]),t._v(" "),e("el-button",{attrs:{type:"info"},on:{click:t.onBack}},[t._v("返回")])],1)],1),t._v(" "),e("editor",{attrs:{lang:"properties",theme:"chrome",width:"100%",height:800},on:{init:t.editorInit},model:{value:t.form.content,callback:function(n){t.$set(t.form,"content",n)},expression:"form.content"}})],1)],1)},c=[],o=(e("7f7f"),e("f546")),a=e("d631"),u={components:{editor:e("7c9e")},data:function(){return{options:[],form:{id:null,name:"",content:"",clusterServerId:""}}},created:function(){var t=this;this.loadCanalConfig(),Object(a["d"])().then(function(n){t.options=n.data})},methods:{editorInit:function(){e("2099"),e("be9d"),e("2968"),e("e0e5"),e("bb36"),e("0329"),e("95b8"),e("6a21")},loadCanalConfig:function(){var t=this;Object(o["b"])(this.$route.query.id).then(function(n){var e=n.data;t.form.id=e.id,t.form.name=e.name+"/instance.propertios",t.form.content=e.content,t.form.clusterServerId=e.clusterServerId})},onSubmit:function(){var t=this;this.$confirm("修改Instance配置可能会导致重启,是否继续?","确定修改",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(o["k"])(t.form).then(function(n){"success"===n.data?(t.$message({message:"修改成功",type:"success"}),t.loadCanalConfig()):t.$message({message:"修改失败",type:"error"})})})},onCancel:function(){this.loadCanalConfig()},onBack:function(){history.go(-1)}}},i=u,l=(e("de9c"),e("2877")),s=Object(l["a"])(i,r,c,!1,null,"5c332416",null);n["default"]=s.exports},d631:function(t,n,e){"use strict";e.d(n,"c",function(){return c}),e.d(n,"a",function(){return o}),e.d(n,"e",function(){return a}),e.d(n,"b",function(){return u}),e.d(n,"d",function(){return i});var r=e("b775");function c(t){return Object(r["a"])({url:"/canal/clusters",method:"get",params:t})}function o(t){return Object(r["a"])({url:"/canal/cluster",method:"post",data:t})}function a(t){return Object(r["a"])({url:"/canal/cluster",method:"put",data:t})}function u(t){return Object(r["a"])({url:"/canal/cluster/"+t,method:"delete"})}function i(){return Object(r["a"])({url:"/canal/clustersAndServers",method:"get"})}},de9c:function(t,n,e){"use strict";var r=e("878d"),c=e.n(r);c.a},f546:function(t,n,e){"use strict";e.d(n,"e",function(){return c}),e.d(n,"b",function(){return o}),e.d(n,"k",function(){return a}),e.d(n,"a",function(){return u}),e.d(n,"c",function(){return i}),e.d(n,"i",function(){return l}),e.d(n,"j",function(){return s}),e.d(n,"g",function(){return d}),e.d(n,"h",function(){return f}),e.d(n,"d",function(){return m}),e.d(n,"f",function(){return b});var r=e("b775");function c(t){return Object(r["a"])({url:"/canal/instances",method:"get",params:t})}function o(t){return Object(r["a"])({url:"/canal/instance/"+t,method:"get"})}function a(t){return Object(r["a"])({url:"/canal/instance",method:"put",data:t})}function u(t){return Object(r["a"])({url:"/canal/instance",method:"post",data:t})}function i(t){return Object(r["a"])({url:"/canal/instance/"+t,method:"delete"})}function l(t,n){return Object(r["a"])({url:"/canal/instance/start/"+t+"/"+n,method:"put"})}function s(t,n){return Object(r["a"])({url:"/canal/instance/stop/"+t+"/"+n,method:"put"})}function d(t,n){return Object(r["a"])({url:"/canal/instance/log/"+t+"/"+n,method:"get"})}function f(t,n){return Object(r["a"])({url:"/canal/instance/status/"+t+"?option="+n,method:"put"})}function m(t){return Object(r["a"])({url:"/canal/active/instances/"+t,method:"get"})}function b(){return Object(r["a"])({url:"/canal/instance/template",method:"get"})}}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-da289616.7def925e.js b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-da289616.7def925e.js new file mode 100644 index 00000000..e496de4f --- /dev/null +++ b/canal-admin/canal-admin-server/src/main/resources/public/static/js/chunk-da289616.7def925e.js @@ -0,0 +1 @@ +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-da289616"],{"11e9":function(t,e,n){var r=n("52a7"),a=n("4630"),i=n("6821"),o=n("6a99"),l=n("69a8"),s=n("c69a"),c=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?c:function(t,e){if(t=i(t),e=o(e,!0),s)try{return c(t,e)}catch(n){}if(l(t,e))return a(!r.f.call(t,e),t[e])}},"333d":function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"pagination-container",class:{hidden:t.hidden}},[n("el-pagination",t._b({attrs:{background:t.background,"current-page":t.currentPage,"page-size":t.pageSize,layout:t.layout,"page-sizes":t.pageSizes,total:t.total},on:{"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e},"update:pageSize":function(e){t.pageSize=e},"update:page-size":function(e){t.pageSize=e},"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}},"el-pagination",t.$attrs,!1))],1)},a=[];n("c5f6");Math.easeInOutQuad=function(t,e,n,r){return t/=r/2,t<1?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)};var i=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}();function o(t){document.documentElement.scrollTop=t,document.body.parentNode.scrollTop=t,document.body.scrollTop=t}function l(){return document.documentElement.scrollTop||document.body.parentNode.scrollTop||document.body.scrollTop}function s(t,e,n){var r=l(),a=t-r,s=20,c=0;e="undefined"===typeof e?500:e;var u=function t(){c+=s;var l=Math.easeInOutQuad(c,r,a,e);o(l),c0,expression:"count>0"}],attrs:{total:t.count,page:t.listQuery.page,limit:t.listQuery.size},on:{"update:page":function(e){return t.$set(t.listQuery,"page",e)},"update:limit":function(e){return t.$set(t.listQuery,"size",e)},pagination:function(e){return t.fetchData()}}}),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogFormVisible,title:t.textMap[t.dialogStatus],width:"600px"},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[n("el-form",{ref:"dataForm",staticStyle:{width:"400px","margin-left":"30px"},attrs:{rules:t.rules,model:t.nodeModel,"label-position":"left","label-width":"120px"}},[n("el-form-item",{attrs:{label:"所属集群",prop:"clusterId"}},["create"===t.dialogStatus?n("el-select",{attrs:{placeholder:"选择所属集群"},model:{value:t.nodeModel.clusterId,callback:function(e){t.$set(t.nodeModel,"clusterId",e)},expression:"nodeModel.clusterId"}},[n("el-option",{key:"",attrs:{label:"单机",value:""}}),t._v(" "),t._l(t.canalClusters,function(t){return n("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})})],2):n("el-select",{attrs:{placeholder:"选择所属集群",disabled:"disabled"},model:{value:t.nodeModel.clusterId,callback:function(e){t.$set(t.nodeModel,"clusterId",e)},expression:"nodeModel.clusterId"}},[n("el-option",{key:"",attrs:{label:"单机",value:""}}),t._v(" "),t._l(t.canalClusters,function(t){return n("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})})],2)],1),t._v(" "),n("el-form-item",{attrs:{label:"Server 名称",prop:"name"}},[n("el-input",{model:{value:t.nodeModel.name,callback:function(e){t.$set(t.nodeModel,"name",e)},expression:"nodeModel.name"}})],1),t._v(" "),n("el-form-item",{attrs:{label:"Server IP",prop:"ip"}},[n("el-input",{model:{value:t.nodeModel.ip,callback:function(e){t.$set(t.nodeModel,"ip",e)},expression:"nodeModel.ip"}})],1),t._v(" "),n("el-form-item",{attrs:{label:"admin 端口",prop:"adminPort"}},[n("el-input",{attrs:{placeholder:"11110",type:"number"},model:{value:t.nodeModel.adminPort,callback:function(e){t.$set(t.nodeModel,"adminPort",e)},expression:"nodeModel.adminPort"}})],1),t._v(" "),n("el-form-item",{attrs:{label:"tcp 端口",prop:"tcpPort"}},[n("el-input",{attrs:{placeholder:"11111",type:"number"},model:{value:t.nodeModel.tcpPort,callback:function(e){t.$set(t.nodeModel,"tcpPort",e)},expression:"nodeModel.tcpPort"}})],1),t._v(" "),n("el-form-item",{attrs:{label:"metric 端口",prop:"metricPort"}},[n("el-input",{attrs:{placeholder:"11112",type:"number"},model:{value:t.nodeModel.metricPort,callback:function(e){t.$set(t.nodeModel,"metricPort",e)},expression:"nodeModel.metricPort"}})],1)],1),t._v(" "),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v("取消")]),t._v(" "),n("el-button",{attrs:{type:"primary"},on:{click:function(e){return t.dataOperation()}}},[t._v("确定")])],1)],1),t._v(" "),n("el-dialog",{attrs:{visible:t.dialogInstances,title:"instance 列表",width:"800px"},on:{"update:visible":function(e){t.dialogInstances=e}}},[n("div",{staticClass:"filter-container"},[n("el-button",{staticClass:"filter-item",attrs:{type:"info"},on:{click:function(e){return t.activeInstances()}}},[t._v("刷新列表")])],1),t._v(" "),n("el-table",{directives:[{name:"loading",rawName:"v-loading",value:t.listLoading2,expression:"listLoading2"}],attrs:{data:t.instanceList,"element-loading-text":"Loading",border:"",fit:"","highlight-current-row":""}},[n("el-table-column",{attrs:{label:"Instance 名称","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.name)+"\n ")]}}])}),t._v(" "),n("el-table-column",{attrs:{label:"状态","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("el-tag",{attrs:{type:t._f("statusFilter")(e.row.runningStatus)}},[t._v(t._s(t._f("statusLabel")(e.row.runningStatus)))])]}}])}),t._v(" "),n("el-table-column",{attrs:{label:"操作","min-width":"200",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("el-dropdown",{attrs:{trigger:"click"}},[n("el-button",{attrs:{type:"primary",size:"mini"}},[t._v("\n 操作"),n("i",{staticClass:"el-icon-arrow-down el-icon--right"})]),t._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleStartInstance(e.row)}}},[t._v("启动")]),t._v(" "),n("el-dropdown-item",{nativeOn:{click:function(n){return t.handleStopInstance(e.row)}}},[t._v("停止")])],1)],1)]}}])})],1)],1)],1)},a=[],i=(n("c5f6"),n("c6ed")),o=n("f546"),l=n("d631"),s=n("333d"),c={components:{Pagination:s["a"]},filters:{statusFilter:function(t){var e={1:"success",0:"gray","-1":"danger"};return e[t]},statusLabel:function(t){var e={1:"启动",0:"停止","-1":"断开"};return e[t]}},data:function(){return{list:null,instanceList:null,listLoading:!0,listLoading2:!0,serverIdTmp:null,canalClusters:[],count:0,listQuery:{name:"",ip:"",clusterId:null,page:1,size:20},dialogFormVisible:!1,dialogInstances:!1,textMap:{create:"新建Server信息",update:"修改Server信息"},nodeModel:{id:void 0,clusterId:null,name:null,ip:null,adminPort:11110,tcpPort:11111,metricPort:11112},rules:{name:[{required:!0,message:"Server 名称不能为空",trigger:"change"}],ip:[{required:!0,message:"Server IP不能为空",trigger:"change"}],adminPort:[{required:!0,message:"Server admin端口不能为空",trigger:"change"}]},dialogStatus:"create"}},created:function(){var t=this;if(Object(l["c"])().then(function(e){t.canalClusters=e.data}),this.$route.query.clusterId)try{this.listQuery.clusterId=Number(this.$route.query.clusterId)}catch(e){console.log(e)}this.fetchData()},methods:{fetchData:function(){var t=this;this.listLoading=!0,Object(i["c"])(this.listQuery).then(function(e){t.list=e.data.items,t.count=e.data.count}).finally(function(){t.listLoading=!1})},queryData:function(){this.listQuery.page=1,this.fetchData()},resetModel:function(){this.nodeModel={id:void 0,clusterId:null,name:null,ip:null,adminPort:null,tcpPort:null,metricPort:null}},handleCreate:function(){var t=this;this.resetModel(),this.dialogStatus="create",this.dialogFormVisible=!0,this.$nextTick(function(){t.$refs["dataForm"].clearValidate()})},handleInstances:function(t){this.serverIdTmp=t.id,this.activeInstances()},activeInstances:function(){var t=this;this.listLoading2=!0,this.dialogInstances=!0,Object(o["d"])(this.serverIdTmp).then(function(e){t.instanceList=e.data}).finally(function(){t.listLoading2=!1})},dataOperation:function(){var t=this;this.$refs["dataForm"].validate(function(e){e&&("create"===t.dialogStatus&&Object(i["a"])(t.nodeModel).then(function(e){t.operationRes(e)}),"update"===t.dialogStatus&&Object(i["g"])(t.nodeModel).then(function(e){t.operationRes(e)}))})},operationRes:function(t){"success"===t.data?(this.fetchData(),this.dialogFormVisible=!1,this.$message({message:this.textMap[this.dialogStatus]+"成功",type:"success"})):this.$message({message:this.textMap[this.dialogStatus]+"失败",type:"error"})},handleConfig:function(t){null===t.canalCluster?this.$router.push("/canalServer/nodeServer/config?serverId="+t.id):this.$message({message:"集群模式Server不允许单独变更配置,请在集群配置变更",type:"error"})},handleUpdate:function(t){var e=this;this.resetModel(),this.nodeModel=Object.assign({},t),this.dialogStatus="update",this.dialogFormVisible=!0,this.$nextTick(function(){e.$refs["dataForm"].clearValidate()})},handleDelete:function(t){var e=this;this.$confirm("删除Server信息会导致节点服务停止","确定删除Server信息",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(i["b"])(t.id).then(function(t){"success"===t.data?(e.fetchData(),e.$message({message:"删除Server信息成功",type:"success"})):e.$message({message:"删除Server信息失败",type:"error"})})})},handleStart:function(t){var e=this;"0"===t.status?this.$confirm("启动Server服务","确定启动Server服务",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(i["e"])(t.id).then(function(t){t.data?(e.fetchData(),e.$message({message:"启动成功",type:"success"})):e.$message({message:"启动Server服务出现异常",type:"error"})})}):this.$message({message:"当前Server不是停止状态,无法启动",type:"error"})},handleStop:function(t){var e=this;"1"===t.status?this.$confirm("停止Server服务会导致所有Instance都停止服务","确定停止Server服务",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(i["f"])(t.id).then(function(t){t.data?(e.fetchData(),e.$message({message:"停止成功",type:"success"})):e.$message({message:"停止Server服务出现异常",type:"error"})})}):this.$message({message:"当前Server不是启动状态,无法停止",type:"error"})},handleLog:function(t){this.$router.push("nodeServer/log?id="+t.id)},handleStartInstance:function(t){var e=this;"0"===t.runningStatus?this.$confirm("启动Instance服务","确定启动Instance服务",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(o["i"])(t.id,e.serverIdTmp).then(function(t){t.data?(e.activeInstances(),e.$message({message:"启动成功, 稍后请刷新列表查看状态",type:"success"})):e.$message({message:"启动Instance服务出现异常",type:"error"})})}):this.$message({message:"当前Instance不是停止状态,无法启动",type:"error"})},handleStopInstance:function(t){var e=this;"1"===t.runningStatus?this.$confirm("集群模式下停止实例其它主机将会抢占执行该实例","停止 Instance 服务",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){Object(o["j"])(t.id,e.serverIdTmp).then(function(t){t.data?(e.activeInstances(),e.$message({message:"停止成功, 稍后请刷新列表查看状态",type:"success"})):e.$message({message:"停止Instance服务出现异常",type:"error"})})}):this.$message({message:"当前Instance不是运行状态,无法停止",type:"error"})}}},u=c,d=n("2877"),f=Object(d["a"])(u,r,a,!1,null,null,null);e["default"]=f.exports},aa77:function(t,e,n){var r=n("5ca1"),a=n("be13"),i=n("79e5"),o=n("fdef"),l="["+o+"]",s="​…",c=RegExp("^"+l+l+"*"),u=RegExp(l+l+"*$"),d=function(t,e,n){var a={},l=i(function(){return!!o[t]()||s[t]()!=s}),c=a[t]=l?e(f):o[t];n&&(a[n]=c),r(r.P+r.F*l,"String",a)},f=d.trim=function(t,e){return t=String(a(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(u,"")),t};t.exports=d},c5f6:function(t,e,n){"use strict";var r=n("7726"),a=n("69a8"),i=n("2d95"),o=n("5dbc"),l=n("6a99"),s=n("79e5"),c=n("9093").f,u=n("11e9").f,d=n("86cc").f,f=n("aa77").trim,p="Number",m=r[p],g=m,h=m.prototype,v=i(n("2aeb")(h))==p,b="trim"in String.prototype,_=function(t){var e=l(t,!1);if("string"==typeof e&&e.length>2){e=b?e.trim():f(e,3);var n,r,a,i=e.charCodeAt(0);if(43===i||45===i){if(n=e.charCodeAt(2),88===n||120===n)return NaN}else if(48===i){switch(e.charCodeAt(1)){case 66:case 98:r=2,a=49;break;case 79:case 111:r=8,a=55;break;default:return+e}for(var o,s=e.slice(2),c=0,u=s.length;ca)return NaN;return parseInt(s,r)}}return+e};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof m&&(v?s(function(){h.valueOf.call(n)}):i(n)!=p)?o(new g(_(e)),n,m):_(e)};for(var y,S=n("9e1e")?c(g):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;S.length>w;w++)a(g,y=S[w])&&!a(m,y)&&d(m,y,u(g,y));m.prototype=h,h.constructor=m,n("2aba")(r,p,m)}},c6ed:function(t,e,n){"use strict";n.d(e,"c",function(){return a}),n.d(e,"a",function(){return i}),n.d(e,"g",function(){return o}),n.d(e,"b",function(){return l}),n.d(e,"e",function(){return s}),n.d(e,"f",function(){return c}),n.d(e,"d",function(){return u});var r=n("b775");function a(t){return Object(r["a"])({url:"/nodeServers",method:"get",params:t})}function i(t){return Object(r["a"])({url:"/nodeServer",method:"post",data:t})}function o(t){return Object(r["a"])({url:"/nodeServer",method:"put",data:t})}function l(t){return Object(r["a"])({url:"/nodeServer/"+t,method:"delete"})}function s(t){return Object(r["a"])({url:"/nodeServer/start/"+t,method:"put"})}function c(t){return Object(r["a"])({url:"/nodeServer/stop/"+t,method:"put"})}function u(t){return Object(r["a"])({url:"/nodeServer/log/"+t,method:"get"})}},d631:function(t,e,n){"use strict";n.d(e,"c",function(){return a}),n.d(e,"a",function(){return i}),n.d(e,"e",function(){return o}),n.d(e,"b",function(){return l}),n.d(e,"d",function(){return s});var r=n("b775");function a(t){return Object(r["a"])({url:"/canal/clusters",method:"get",params:t})}function i(t){return Object(r["a"])({url:"/canal/cluster",method:"post",data:t})}function o(t){return Object(r["a"])({url:"/canal/cluster",method:"put",data:t})}function l(t){return Object(r["a"])({url:"/canal/cluster/"+t,method:"delete"})}function s(){return Object(r["a"])({url:"/canal/clustersAndServers",method:"get"})}},dfcf:function(t,e,n){"use strict";var r=n("690d"),a=n.n(r);a.a},f546:function(t,e,n){"use strict";n.d(e,"e",function(){return a}),n.d(e,"b",function(){return i}),n.d(e,"k",function(){return o}),n.d(e,"a",function(){return l}),n.d(e,"c",function(){return s}),n.d(e,"i",function(){return c}),n.d(e,"j",function(){return u}),n.d(e,"g",function(){return d}),n.d(e,"h",function(){return f}),n.d(e,"d",function(){return p}),n.d(e,"f",function(){return m});var r=n("b775");function a(t){return Object(r["a"])({url:"/canal/instances",method:"get",params:t})}function i(t){return Object(r["a"])({url:"/canal/instance/"+t,method:"get"})}function o(t){return Object(r["a"])({url:"/canal/instance",method:"put",data:t})}function l(t){return Object(r["a"])({url:"/canal/instance",method:"post",data:t})}function s(t){return Object(r["a"])({url:"/canal/instance/"+t,method:"delete"})}function c(t,e){return Object(r["a"])({url:"/canal/instance/start/"+t+"/"+e,method:"put"})}function u(t,e){return Object(r["a"])({url:"/canal/instance/stop/"+t+"/"+e,method:"put"})}function d(t,e){return Object(r["a"])({url:"/canal/instance/log/"+t+"/"+e,method:"get"})}function f(t,e){return Object(r["a"])({url:"/canal/instance/status/"+t+"?option="+e,method:"put"})}function p(t){return Object(r["a"])({url:"/canal/active/instances/"+t,method:"get"})}function m(){return Object(r["a"])({url:"/canal/instance/template",method:"get"})}},fdef:function(t,e){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}}]); \ No newline at end of file diff --git a/canal-admin/canal-admin-ui/src/api/canalConfig.js b/canal-admin/canal-admin-ui/src/api/canalConfig.js index 71814cca..94a9321b 100644 --- a/canal-admin/canal-admin-ui/src/api/canalConfig.js +++ b/canal-admin/canal-admin-ui/src/api/canalConfig.js @@ -14,3 +14,10 @@ export function updateCanalConfig(data) { data }) } + +export function getTemplateConfig() { + return request({ + url: '/canal/config/template', + method: 'get' + }) +} diff --git a/canal-admin/canal-admin-ui/src/api/canalInstance.js b/canal-admin/canal-admin-ui/src/api/canalInstance.js index 5593f770..dbb81c7a 100644 --- a/canal-admin/canal-admin-ui/src/api/canalInstance.js +++ b/canal-admin/canal-admin-ui/src/api/canalInstance.js @@ -72,3 +72,10 @@ export function getActiveInstances(serverId) { method: 'get' }) } + +export function getTemplateInstance() { + return request({ + url: '/canal/instance/template', + method: 'get' + }) +} diff --git a/canal-admin/canal-admin-ui/src/components/Pagination/index.vue b/canal-admin/canal-admin-ui/src/components/Pagination/index.vue index 8d104e84..a4962964 100644 --- a/canal-admin/canal-admin-ui/src/components/Pagination/index.vue +++ b/canal-admin/canal-admin-ui/src/components/Pagination/index.vue @@ -9,7 +9,8 @@ :total="total" v-bind="$attrs" @size-change="handleSizeChange" - @current-change="handleCurrentChange"/> + @current-change="handleCurrentChange" + /> diff --git a/canal-admin/canal-admin-ui/src/views/canalServer/CanalConfig.vue b/canal-admin/canal-admin-ui/src/views/canalServer/CanalConfig.vue index 0054cd13..7af591e1 100644 --- a/canal-admin/canal-admin-ui/src/views/canalServer/CanalConfig.vue +++ b/canal-admin/canal-admin-ui/src/views/canalServer/CanalConfig.vue @@ -6,6 +6,7 @@ {{ form.name }}     保存 重置 + 载入模板 返回 @@ -15,7 +16,7 @@