From a371bec2aa3139400a5bd7deb157477c3fbb5571 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Mon, 1 May 2023 12:13:06 +0200 Subject: [PATCH] [feature] bottom for reset xray config to default --- web/controller/setting.go | 10 ++++++++++ web/html/xui/setting.html | 14 +++++++++++++- web/service/setting.go | 10 ++++++++++ web/translation/translate.en_US.toml | 1 + web/translation/translate.fa_IR.toml | 1 + web/translation/translate.zh_Hans.toml | 1 + 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/web/controller/setting.go b/web/controller/setting.go index 261eeec8..3f1e49df 100644 --- a/web/controller/setting.go +++ b/web/controller/setting.go @@ -37,6 +37,7 @@ func (a *SettingController) initRouter(g *gin.RouterGroup) { g.POST("/update", a.updateSetting) g.POST("/updateUser", a.updateUser) g.POST("/restartPanel", a.restartPanel) + g.GET("/getDefaultJsonConfig", a.getDefaultXrayConfig) } func (a *SettingController) getAllSetting(c *gin.Context) { @@ -118,3 +119,12 @@ func (a *SettingController) restartPanel(c *gin.Context) { err := a.panelService.RestartPanel(time.Second * 3) jsonMsg(c, I18n(c, "pages.setting.restartPanel"), err) } + +func (a *SettingController) getDefaultXrayConfig(c *gin.Context) { + defaultJsonConfig, err := a.settingService.GetDefaultXrayConfig() + if err != nil { + jsonMsg(c, I18n(c, "pages.setting.toasts.getSetting"), err) + return + } + jsonObj(c, defaultJsonConfig, nil) +} diff --git a/web/html/xui/setting.html b/web/html/xui/setting.html index 02681166..13643bc6 100644 --- a/web/html/xui/setting.html +++ b/web/html/xui/setting.html @@ -113,6 +113,9 @@ {{ i18n "pages.setting.completeTemplate"}} + + {{ i18n "pages.setting.resetDefaultConfig" }} + @@ -201,7 +204,16 @@ await PromiseUtil.sleep(5000); location.reload(); } - } + }, + async resetXrayConfigToDefault() { + this.loading(true); + const msg = await HttpUtil.get("/xui/setting/getDefaultJsonConfig"); + this.loading(false); + if (msg.success) { + this.templateSettings = JSON.parse(JSON.stringify(msg.obj, null, 2)); + this.saveBtnDisable = true; + } + }, }, async mounted() { await this.getAllSetting(); diff --git a/web/service/setting.go b/web/service/setting.go index 2df89738..3ceb7a59 100644 --- a/web/service/setting.go +++ b/web/service/setting.go @@ -2,6 +2,7 @@ package service import ( _ "embed" + "encoding/json" "errors" "fmt" "reflect" @@ -326,3 +327,12 @@ func (s *SettingService) UpdateAllSetting(allSetting *entity.AllSetting) error { } return common.Combine(errs...) } + +func (s *SettingService) GetDefaultXrayConfig() (interface{}, error) { + var jsonData interface{} + err := json.Unmarshal([]byte(xrayTemplateConfig), &jsonData) + if err != nil { + return nil, err + } + return jsonData, nil +} diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml index e6907e7e..5d27497c 100644 --- a/web/translation/translate.en_US.toml +++ b/web/translation/translate.en_US.toml @@ -193,6 +193,7 @@ "save" = "Save" "restartPanel" = "Restart Panel" "restartPanelDesc" = "Are you sure you want to restart the panel? Click OK to restart after 3 seconds. If you cannot access the panel after restarting, please go to the server to view the panel log information" +"resetDefaultConfig" = "Reset to default config" "panelConfig" = "Panel Configuration" "userSetting" = "User Setting" "xrayConfiguration" = "xray Configuration" diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml index c83f92c2..277db594 100644 --- a/web/translation/translate.fa_IR.toml +++ b/web/translation/translate.fa_IR.toml @@ -193,6 +193,7 @@ "save" = "ذخیره" "restartPanel" = "ریستارت پنل" "restartPanelDesc" = "آیا مطمئن هستید که می خواهید پنل را دوباره راه اندازی کنید؟ برای راه اندازی مجدد روی OK کلیک کنید. اگر بعد از 3 ثانیه نمی توانید به پنل دسترسی پیدا کنید، لطفاً برای مشاهده اطلاعات گزارش پانل به سرور برگردید" +"resetDefaultConfig" = "برگشت به تنظیمات پیشفرض" "panelConfig" = "تنظیمات پنل" "userSetting" = "تنظیمات مدیر" "xrayConfiguration" = "تنظیمات Xray" diff --git a/web/translation/translate.zh_Hans.toml b/web/translation/translate.zh_Hans.toml index 0e960a6b..f396340f 100644 --- a/web/translation/translate.zh_Hans.toml +++ b/web/translation/translate.zh_Hans.toml @@ -193,6 +193,7 @@ "save" = "保存配置" "restartPanel" = "重启面板" "restartPanelDesc" = "确定要重启面板吗?点击确定将于 3 秒后重启,若重启后无法访问面板,请前往服务器查看面板日志信息" +"resetDefaultConfig" = "重置为默认配置" "panelConfig" = "面板配置" "userSetting" = "用户设置" "xrayConfiguration" = "xray 相关设置"