Files
EdgeAdmin/web/views/@default/servers/create.js

107 lines
2.1 KiB
JavaScript

Tea.context(function () {
this.serverType = "httpProxy"
this.tlsProtocolName = ""
this.origins = []
this.defaultAddresses = []
this.success = NotifySuccess("保存成功", "/servers");
this.fail = function (resp) {
if (resp.errors != null && resp.errors.length > 0) {
let isFiltered = false
let that = this
resp.errors.forEach(function (err) {
if (err.param == "emptyDomain") {
isFiltered = true
teaweb.warn(err.messages[0], function () {
that.$refs.serverNameBox.addServerName()
})
} else if (err.param == "emptyOrigin") {
isFiltered = true
teaweb.warn(err.messages[0], function () {
that.addOrigin()
})
}
})
if (isFiltered) {
return
}
}
Tea.failResponse(resp)
}
this.changeServerType = function () {
this.origins = []
this.tlsProtocolName = ""
this.addDefaultAddresses()
}
// 初始化调用
this.$delay(function () {
this.changeServerType()
})
this.addOrigin = function () {
teaweb.popup("/servers/addOriginPopup?serverType=" + this.serverType, {
width: "45em",
height: "27em",
callback: function (resp) {
this.origins.push(resp.data.origin);
}
})
}
this.removeOrigin = function (index) {
this.origins.$remove(index)
}
this.addDefaultAddresses = function () {
// 默认绑定的端口地址
this.defaultAddresses = []
if (this.serverType == "httpProxy" || this.serverType == "httpWeb") {
this.defaultAddresses.push({
"host": "",
"portRange": "80",
"protocol": "http"
})
this.defaultAddresses.push({
"host": "",
"portRange": "443",
"protocol": "https"
})
this.tlsProtocolName = "https"
}
}
/**
* 用户相关
*/
this.userId = 0
this.plans = []
this.changeUserId = function (v) {
this.userId = v
if (this.userId == 0) {
this.plans = []
return
}
this.$post("/servers/users/plans")
.params({
userId: this.userId
})
.success(function (resp) {
this.plans = resp.data.plans
})
}
/**
* 证书相关
*/
this.findServerNames = function () {
return this.$refs.serverNameBox.allServerNames()
}
})