diff --git a/internal/web/actions/default/settings/database/clean.go b/internal/web/actions/default/settings/database/clean.go new file mode 100644 index 00000000..3bec1f33 --- /dev/null +++ b/internal/web/actions/default/settings/database/clean.go @@ -0,0 +1,15 @@ +package profile + +import "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + +type CleanAction struct { + actionutils.ParentAction +} + +func (this *CleanAction) Init() { + this.Nav("", "", "clean") +} + +func (this *CleanAction) RunGet(params struct{}) { + this.Show() +} diff --git a/internal/web/actions/default/settings/database/cleanSetting.go b/internal/web/actions/default/settings/database/cleanSetting.go new file mode 100644 index 00000000..df6d752e --- /dev/null +++ b/internal/web/actions/default/settings/database/cleanSetting.go @@ -0,0 +1,82 @@ +package profile + +import ( + "encoding/json" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/systemconfigs" + "github.com/iwind/TeaGo/actions" +) + +type CleanSettingAction struct { + actionutils.ParentAction +} + +func (this *CleanSettingAction) Init() { + this.Nav("", "", "cleanSetting") +} + +func (this *CleanSettingAction) RunGet(params struct{}) { + // 读取设置 + configResp, err := this.RPC().SysSettingRPC().ReadSysSetting(this.AdminContext(), &pb.ReadSysSettingRequest{Code: systemconfigs.SettingCodeDatabaseConfigSetting}) + if err != nil { + this.ErrorPage(err) + return + } + var config = &systemconfigs.DatabaseConfig{} + if len(configResp.ValueJSON) > 0 { + err = json.Unmarshal(configResp.ValueJSON, config) + if err != nil { + this.ErrorPage(err) + return + } + } + this.Data["config"] = config.ServerAccessLog.Clean + + this.Show() +} + +func (this *CleanSettingAction) RunPost(params struct { + Days int + + Must *actions.Must + CSRF *actionutils.CSRF +}) { + defer this.CreateLogInfo("修改数据库自动清理设置") + + days := params.Days + if days < 0 { + days = 0 + } + + // 读取设置 + configResp, err := this.RPC().SysSettingRPC().ReadSysSetting(this.AdminContext(), &pb.ReadSysSettingRequest{Code: systemconfigs.SettingCodeDatabaseConfigSetting}) + if err != nil { + this.ErrorPage(err) + return + } + var config = &systemconfigs.DatabaseConfig{} + if len(configResp.ValueJSON) > 0 { + err = json.Unmarshal(configResp.ValueJSON, config) + if err != nil { + this.ErrorPage(err) + return + } + } + config.ServerAccessLog.Clean.Days = days + configJSON, err := json.Marshal(config) + if err != nil { + this.ErrorPage(err) + return + } + _, err = this.RPC().SysSettingRPC().UpdateSysSetting(this.AdminContext(), &pb.UpdateSysSettingRequest{ + Code: systemconfigs.SettingCodeDatabaseConfigSetting, + ValueJSON: configJSON, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/internal/web/actions/default/settings/database/init.go b/internal/web/actions/default/settings/database/init.go index 7e2cb69b..e497799a 100644 --- a/internal/web/actions/default/settings/database/init.go +++ b/internal/web/actions/default/settings/database/init.go @@ -15,6 +15,8 @@ func init() { Prefix("/settings/database"). Get("", new(IndexAction)). GetPost("/update", new(UpdateAction)). + GetPost("/clean", new(CleanAction)). + GetPost("/cleanSetting", new(CleanSettingAction)). EndAll() }) } diff --git a/web/views/@default/settings/database/@menu.html b/web/views/@default/settings/database/@menu.html index d8903c8d..8057ba83 100644 --- a/web/views/@default/settings/database/@menu.html +++ b/web/views/@default/settings/database/@menu.html @@ -1,6 +1,8 @@ 详情 修改 + 手动清理 + 自动清理设置 | diff --git a/web/views/@default/settings/database/clean.html b/web/views/@default/settings/database/clean.html new file mode 100644 index 00000000..e896c845 --- /dev/null +++ b/web/views/@default/settings/database/clean.html @@ -0,0 +1,2 @@ +{$layout} +{$template "menu"} \ No newline at end of file diff --git a/web/views/@default/settings/database/cleanSetting.html b/web/views/@default/settings/database/cleanSetting.html new file mode 100644 index 00000000..0b35ff7e --- /dev/null +++ b/web/views/@default/settings/database/cleanSetting.html @@ -0,0 +1,21 @@ +{$layout} +{$template "menu"} + +
+ + +

服务访问日志

+ + + + + +
保存天数 * +
+ + +
+

天数包括当天。如果填0表示不自动清理。

+
+ +
\ No newline at end of file diff --git a/web/views/@default/settings/database/cleanSetting.js b/web/views/@default/settings/database/cleanSetting.js new file mode 100644 index 00000000..35ab3a15 --- /dev/null +++ b/web/views/@default/settings/database/cleanSetting.js @@ -0,0 +1,3 @@ +Tea.context(function () { + this.success = NotifyReloadSuccess("保存成功") +}) \ No newline at end of file