mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-10-05 11:26:52 +08:00
2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
(function(t){function e(e){for(var a,r,s=e[0],u=e[1],l=e[2],p=0,f=[];p<s.length;p++)r=s[p],Object.prototype.hasOwnProperty.call(i,r)&&i[r]&&f.push(i[r][0]),i[r]=0;for(a in u)Object.prototype.hasOwnProperty.call(u,a)&&(t[a]=u[a]);c&&c(e);while(f.length)f.shift()();return o.push.apply(o,l||[]),n()}function n(){for(var t,e=0;e<o.length;e++){for(var n=o[e],a=!0,s=1;s<n.length;s++){var u=n[s];0!==i[u]&&(a=!1)}a&&(o.splice(e--,1),t=r(r.s=n[0]))}return t}var a={},i={app:0},o=[];function r(e){if(a[e])return a[e].exports;var n=a[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.m=t,r.c=a,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)r.d(n,a,function(e){return t[e]}.bind(null,a));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="/";var s=window["webpackJsonp"]=window["webpackJsonp"]||[],u=s.push.bind(s);s.push=e,s=s.slice();for(var l=0;l<s.length;l++)e(s[l]);var c=u;o.push([0,"chunk-vendors"]),n()})({0:function(t,e,n){t.exports=n("56d7")},1:function(t,e){},2:function(t,e){},2285:function(t,e,n){"use strict";var a=n("4164"),i=n.n(a);i.a},4164:function(t,e,n){},"56d7":function(t,e,n){"use strict";n.r(e);n("e260"),n("e6cf"),n("cca6"),n("a79d");var a=n("2b0e"),i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("router-view")],1)},o=[],r={name:"app",components:{}},s=r,u=n("2877"),l=Object(u["a"])(s,i,o,!1,null,null,null),c=l.exports,p=n("8c4f"),f=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Layout",{staticClass:"layout"},[n("Header",{staticStyle:{background:"unset","text-align":"center"}},[t._v("Monibuca 实例管理器")]),n("Content",{staticClass:"content"},[n("Tabs",{attrs:{value:"name1"}},[n("TabPane",{attrs:{label:"实例",name:"name1"}},[n("InstanceList")],1),n("TabPane",{attrs:{label:"创建",name:"name2"}},[n("Steps",{attrs:{current:t.createStep}},[n("Step",{attrs:{title:"选择目录",content:"选择创建实例的目录"}}),n("Step",{attrs:{title:"选插件",content:"选择要启用的插件"}}),n("Step",{attrs:{title:"完成",content:"完成实例创建"}})],1),n("div",{staticStyle:{margin:"50px",width:"auto"}},[0==t.createStep?n("i-input",{model:{value:t.createPath,callback:function(e){t.createPath=e},expression:"createPath"}},[n("Button",{attrs:{slot:"prepend",icon:"md-arrow-round-up"},on:{click:t.goUp},slot:"prepend"})],1):1==t.createStep?n("List",{attrs:{border:""}},t._l(t.plugins,(function(e,a){return n("ListItem",{key:a},[n("ListItemMeta",{attrs:{title:a,description:e.Path}}),t._v(" "+t._s(e.Config)+" "),n("template",{slot:"action"},[n("li",{on:{click:function(e){return t.removePlugin(a)}}},[n("Icon",{attrs:{type:"ios-trash"}}),t._v(" 移除 ")],1)])],2)})),1):n("div",[n("h3",[t._v("实例名称:")]),n("i-input",{attrs:{placeholder:t.createPath.split("/").pop()},model:{value:t.instanceName,callback:function(e){t.instanceName=e},expression:"instanceName"}}),n("h4",[t._v("安装路径:")]),n("div",[n("pre",[t._v(t._s(t.createPath))])]),n("h4",[t._v("启用的插件:")]),n("div",[n("pre",[t._v(t._s(t.pluginStr))])]),n("h4",[t._v("配置文件:")]),n("div",[n("pre",[t._v(t._s(t.configStr))])])],1),n("ButtonGroup",{staticStyle:{display:"table",margin:"50px auto"}},[0!=t.createStep?n("Button",{attrs:{size:"large",type:"primary"},on:{click:function(e){t.createStep--}}},[n("Icon",{attrs:{type:"ios-arrow-back"}}),t._v(" 上一步 ")],1):t._e(),1==t.createStep?n("Button",{attrs:{size:"large",type:"success"},on:{click:function(e){t.showAddPlugin=!0}}},[t._v(" + 添加插件 ")]):t._e(),2!=t.createStep?n("Button",{attrs:{size:"large",type:"primary"},on:{click:function(e){t.createStep++}}},[t._v(" 下一步 "),n("Icon",{attrs:{type:"ios-arrow-forward"}})],1):n("Button",{attrs:{size:"large",type:"success"},on:{click:t.createInstance}},[t._v("开始创建")])],1)],1)],1),n("TabPane",{attrs:{label:"导入",name:"name3"}})],1)],1),n("Modal",{attrs:{title:"添加Plugin"},on:{"on-ok":t.addPlugin},model:{value:t.showAddPlugin,callback:function(e){t.showAddPlugin=e},expression:"showAddPlugin"}},[n("Form",{attrs:{model:t.formPlugin,"label-position":"top"}},[n("FormItem",{attrs:{label:"插件名称"}},[n("i-input",{attrs:{placeholder:"插件名称必须和插件注册时的名称一致"},model:{value:t.formPlugin.Name,callback:function(e){t.$set(t.formPlugin,"Name",e)},expression:"formPlugin.Name"}})],1),n("FormItem",{attrs:{label:"插件包地址"}},[n("i-input",{model:{value:t.formPlugin.Path,callback:function(e){t.$set(t.formPlugin,"Path",e)},expression:"formPlugin.Path"}},[n("Button",{attrs:{slot:"append"},on:{click:function(e){t.showBuiltinPlugin=!0}},slot:"append"},[t._v("内置插件")])],1)],1),Object.values(t.builtinPlugins).includes(t.formPlugin.Path)?t._e():n("Alert",{attrs:{type:"show-icon"}},[t._v(' 如果该插件是私有仓库,请到服务器上输入:echo "machine '+t._s(t.privateHost)+' login 用户名 password 密码" >> ~/.netrc 并且添加环境变量GOPRIVATE='+t._s(t.privateHost)+" ")]),n("FormItem",{attrs:{label:"插件配置信息"}},[n("i-input",{attrs:{type:"textarea",placeholder:"请输入toml格式"},model:{value:t.formPlugin.Config,callback:function(e){t.$set(t.formPlugin,"Config",e)},expression:"formPlugin.Config"}})],1)],1)],1),n("Modal",{model:{value:t.showBuiltinPlugin,callback:function(e){t.showBuiltinPlugin=e},expression:"showBuiltinPlugin"}},[n("List",t._l(t.builtinPlugins,(function(e,a){return n("ListItem",{key:a},[n("ListItemMeta",{attrs:{title:a,description:e}}),n("template",{slot:"action"},[n("li",{on:{click:function(n){return t.addBuiltin(a,e)}}},[n("Icon",{attrs:{type:"ios-add"}}),t._v(" 添加 ")],1)])],2)})),1)],1),n("CreateInstance",{attrs:{info:t.createInfo},model:{value:t.showCreate,callback:function(e){t.showCreate=e},expression:"showCreate"}})],1)},d=[],h=(n("99af"),n("a15b"),n("d81d"),n("07ac"),n("ac1f"),n("1276"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("Modal",t._g(t._b({attrs:{title:t.info.Path}},"Modal",t.$attrs,!1),t.$listeners),[n("Steps",{attrs:{current:t.currentStep,size:"small",status:t.status}},[n("Step",{attrs:{title:"解析请求"}}),n("Step",{attrs:{title:"创建目录"}}),n("Step",{attrs:{title:"写入文件"}}),n("Step",{attrs:{title:"执行go mod init"}}),n("Step",{attrs:{title:"执行go build"}}),n("Step",{attrs:{title:"启动实例"}}),n("Step",{attrs:{title:"完成"}})],1),n("div",[n("pre",[t._v(t._s(t.log))])]),n("div",{attrs:{slot:"footer"},slot:"footer"},[n("Checkbox",{model:{value:t.clearDir,callback:function(e){t.clearDir=e},expression:"clearDir"}},[t._v("安装前清空目录")]),n("Button",{attrs:{type:"primary",loading:"process"==t.status},on:{click:t.start}},[t._v("开始")])],1)],1)}),g=[],m=n("3835"),v=null,b={name:"CreateInstance",props:{info:Object},methods:{start:function(){var t=this;this.status="process",v=new EventSource("/instance/create?info="+JSON.stringify(this.info)+(this.clearDir?"&clear=true":"")),v.onopen=function(){return t.log=""},v.onmessage=function(e){t.log+=e.data+"\n","success"==e.data&&(t.status="finish",v.close())},v.addEventListener("exception",(function(e){t.log+=e.data+"\n",t.status="error",v.close()})),v.addEventListener("step",(function(e){var n=e.data.split(":"),a=Object(m["a"])(n,2),i=a[0],o=a[1];t.currentStep=0|i,t.log+=o+"\n"}))}},data:function(){return{clearDir:!0,currentStep:0,log:"",status:"wait"}}},P=b,w=Object(u["a"])(P,h,g,!1,null,"5e75e036",null),y=w.exports,_=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("List",{attrs:{border:""}},[t._l(t.instances,(function(e){return n("ListItem",{key:e.Name},[n("ListItemMeta",{attrs:{title:e.Name,description:e.Path}}),t.hasGateway(e)?[t._v(" "+t._s(e.Info)+" ")]:t._e(),n("template",{slot:"action"},[t.hasGateway(e)?n("li",{on:{click:function(n){t.window.open(t.gateWayHref(e),"_blank")}}},[n("Icon",{attrs:{type:"md-browsers"}}),t._v(" 管理界面 ")],1):t._e(),n("li",{on:{click:function(n){return t.restart(e)}}},[n("Icon",{attrs:{type:"ios-refresh"}}),t._v(" 重启 ")],1),n("li",{on:{click:function(n){return t.shutdown(e)}}},[n("Icon",{attrs:{type:"ios-power"}}),t._v(" 关闭 ")],1)])],2)})),n("Modal",{model:{value:t.showRestart,callback:function(e){t.showRestart=e},expression:"showRestart"}},[n("Checkbox",{model:{value:t.update,callback:function(e){t.update=e},expression:"update"}},[t._v("go get -u")]),n("Checkbox",{model:{value:t.build,callback:function(e){t.build=e},expression:"build"}},[t._v("go build")])],1)],2)},S=[],k=n("3f1c"),x=n.n(k),I={name:"InstanceList",data:function(){return{instances:{},showRestart:!1,update:!1,build:!1}},mounted:function(){var t=this;window.ajax.getJSON("/instance/list").then((function(e){var n=function(n){var a=e[n];a.Config=x.a.parse(a.Config),t.hasGateway(a)?window.ajax.getJSON("//"+t.gateWayHref(a)+"/api/sysInfo").then((function(t){a.Info="引擎版本:"+t.Version+"启动时间:"+t.StartTime})).catch((function(){a.Info="无法访问实例"})):a.Info="实例未配置网关插件"};for(var a in e)n(a);t.instances=e}))},methods:{hasGateway:function(t){return t.Config.Plugins.hasOwnProperty("GateWay")},gateWayHref:function(t){return location.hostname+":"+t.Config.Plugins.GateWay.split(":").pop()},restart:function(t){var e=this,n=this.$Message.loading({content:"restart "+t.Name+"...",duration:0}),a=t.Name;this.update&&(a+="&update=true"),this.build&&(a+="&build=true");var i=new EventSource("/instance/restart?instance="+a);i.onmessage=function(t){"success"==t.data?(e.$Message.success("重启成功!"),n()):e.$Message.info(t.data)},i.addEventListener("failed",(function(t){e.$Message.error(t.data),n()})),i.onerror=function(t){t&&e.$Message.error(t),n(),i.close()}},shutdown:function(t){var e=this;window.ajax.get("/instance/shutdown?instance="+t.Name).then((function(t){"success"==t?e.$Message.success("已关闭实例"):e.$Message.error(t)}))}}},C=I,j=Object(u["a"])(C,_,S,!1,null,"21d6dce2",null),O=j.exports,L={components:{CreateInstance:y,InstanceList:O},data:function(){return{instanceName:"",createStep:0,showCreate:!1,createInfo:null,createPath:"/opt/monibuca",plugins:{},showAddPlugin:!1,formPlugin:{},showBuiltinPlugin:!1,builtinPlugins:{Auth:"github.com/langhuihui/monibuca/plugins/auth",Cluster:"github.com/langhuihui/monibuca/plugins/cluster",GateWay:"github.com/langhuihui/monibuca/plugins/gateway",HDL:"github.com/langhuihui/monibuca/plugins/HDL",Jessica:"github.com/langhuihui/monibuca/plugins/jessica",QoS:"github.com/langhuihui/monibuca/plugins/QoS",RecordFlv:"github.com/langhuihui/monibuca/plugins/record",RTMP:"github.com/langhuihui/monibuca/plugins/rtmp"},defaultConfig:{Auth:'Key = "www.monibuca.com"',RecordFlv:'Path="./resource"',QoS:'Suffix = ["high","medium","low"]',Cluster:'Master = "localhost:2019"\nListenAddr = ":2019"',GateWay:'ListenAddr = ":8081"',RTMP:'ListenAddr = ":1935"',Jessica:'ListenAddr = ":8080"',HDL:'ListenAddr = ":2020"'}}},computed:{pluginStr:function(){return Object.values(this.plugins).map((function(t){return t.Path})).join("\n")},configStr:function(){return Object.values(this.plugins).map((function(t){return"[Plugins.".concat(t.Name,"]\n").concat(t.Config||"")})).join("\n")},privateHost:function(){return this.formPlugin.Path&&this.formPlugin.Path.split("/")[0]||"仓库域名"}},methods:{goUp:function(){var t=this.createPath.split("/");t.pop(),this.createPath=t.join("/")},createInstance:function(){this.showCreate=!0,this.createInfo={Name:this.instanceName||this.createPath.split("/").pop(),Path:this.createPath,Plugins:Object.values(this.plugins).map((function(t){return t.Path})),Config:this.configStr}},addPlugin:function(){this.plugins[this.formPlugin.Name]=this.formPlugin,this.formPlugin={}},removePlugin:function(t){delete this.plugins[t],this.$forceUpdate()},addBuiltin:function(t,e){this.formPlugin.Name=t,this.formPlugin.Path=e,this.formPlugin.Config=this.defaultConfig[t],this.showBuiltinPlugin=!1}}},M=L,N=(n("2285"),Object(u["a"])(M,f,d,!1,null,null,null)),$=N.exports;a["default"].use(p["a"]);var B=[{path:"/",name:"instances",component:$}],A=new p["a"]({mode:"history",base:"/",routes:B}),T=A,E=n("2f62");a["default"].use(E["a"]);var G=new E["a"].Store({state:{},mutations:{},actions:{},modules:{}}),H=n("f825"),R=n.n(H);n("f8ce");a["default"].use(R.a),a["default"].config.productionTip=!1,new a["default"]({router:T,store:G,render:function(t){return t(c)}}).$mount("#app")}});
|
||
//# sourceMappingURL=app.9b5890f5.js.map
|