From c25c713ac1bab46400c528eefb2542ad36e48d6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Sun, 14 Apr 2024 16:29:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BA=90=E7=AB=99=E5=A2=9E=E5=8A=A0=E5=BF=AB?= =?UTF-8?q?=E9=80=9F=E5=81=9C=E7=94=A8/=E5=90=AF=E7=94=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/server/settings/origins/init.go | 1 + .../server/settings/origins/updateIsOn.go | 31 ++++++++++++ .../js/components/server/origin-list-box.js | 47 ++++++++++++++----- 3 files changed, 68 insertions(+), 11 deletions(-) create mode 100644 internal/web/actions/default/servers/server/settings/origins/updateIsOn.go diff --git a/internal/web/actions/default/servers/server/settings/origins/init.go b/internal/web/actions/default/servers/server/settings/origins/init.go index 563bad7b..0aaac376 100644 --- a/internal/web/actions/default/servers/server/settings/origins/init.go +++ b/internal/web/actions/default/servers/server/settings/origins/init.go @@ -14,6 +14,7 @@ func init() { GetPost("/addPopup", new(AddPopupAction)). Post("/delete", new(DeleteAction)). GetPost("/updatePopup", new(UpdatePopupAction)). + Post("/updateIsOn", new(UpdateIsOnAction)). EndAll() }) } diff --git a/internal/web/actions/default/servers/server/settings/origins/updateIsOn.go b/internal/web/actions/default/servers/server/settings/origins/updateIsOn.go new file mode 100644 index 00000000..45624158 --- /dev/null +++ b/internal/web/actions/default/servers/server/settings/origins/updateIsOn.go @@ -0,0 +1,31 @@ +// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn . + +package origins + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/langs/codes" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type UpdateIsOnAction struct { + actionutils.ParentAction +} + +func (this *UpdateIsOnAction) RunPost(params struct { + OriginId int64 + IsOn bool +}) { + defer this.CreateLogInfo(codes.ServerOrigin_LogUpdateOriginIsOn, params.OriginId) + + _, err := this.RPC().OriginRPC().UpdateOriginIsOn(this.AdminContext(), &pb.UpdateOriginIsOnRequest{ + OriginId: params.OriginId, + IsOn: params.IsOn, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/web/public/js/components/server/origin-list-box.js b/web/public/js/components/server/origin-list-box.js index 130fb14b..24546220 100644 --- a/web/public/js/components/server/origin-list-box.js +++ b/web/public/js/components/server/origin-list-box.js @@ -40,9 +40,9 @@ Vue.component("origin-list-box", { } }) }, - deleteOrigin: function (originId, originType) { + deleteOrigin: function (originId, originAddr, originType) { let that = this - teaweb.confirm("确定要删除此源站吗?", function () { + teaweb.confirm("确定要删除此源站(" + originAddr + ")吗?", function () { Tea.action("/servers/server/settings/origins/delete?" + that.vParams + "&originId=" + originId + "&originType=" + originType) .post() .success(function () { @@ -51,16 +51,37 @@ Vue.component("origin-list-box", { }) }) }) + }, + updateOriginIsOn: function (originId, originAddr, isOn) { + let message + let resultMessage + if (isOn) { + message = "确定要启用此源站(" + originAddr + ")吗?" + resultMessage = "启用成功" + } else { + message = "确定要停用此源站(" + originAddr + ")吗?" + resultMessage = "停用成功" + } + let that = this + teaweb.confirm(message, function () { + Tea.action("/servers/server/settings/origins/updateIsOn?" + that.vParams + "&originId=" + originId + "&isOn=" + (isOn ? 1 : 0)) + .post() + .success(function () { + teaweb.success(resultMessage, function () { + window.location.reload() + }) + }) + }) } }, template: `

主要源站 [添加主要源站]

暂时还没有主要源站。

- +

备用源站 [添加备用源站]

-

暂时还没有备用源站。

- +

暂时还没有备用源站。

+
` }) @@ -82,11 +103,14 @@ Vue.component("origin-list-table", { } }, methods: { - deleteOrigin: function (originId) { - this.$emit("deleteOrigin", originId, this.vOriginType) + deleteOrigin: function (originId, originAddr) { + this.$emit("deleteOrigin", originId, originAddr, this.vOriginType) }, updateOrigin: function (originId) { this.$emit("updateOrigin", originId, this.vOriginType) + }, + updateOriginIsOn: function (originId, originAddr, isOn) { + this.$emit("updateOriginIsOn", originId, originAddr, isOn) } }, template: ` @@ -94,9 +118,9 @@ Vue.component("origin-list-table", { 源站地址 - 权重 - 状态 - 操作 + 权重 + 状态 + 操作 @@ -121,7 +145,8 @@ Vue.component("origin-list-table", { 修改   - 删除 + 停用启用   + 删除