diff --git a/web/controller/api.go b/web/controller/api.go index 17073345..32c639f8 100644 --- a/web/controller/api.go +++ b/web/controller/api.go @@ -102,5 +102,5 @@ func (a *APIController) delDepletedClients(c *gin.Context) { } func (a *APIController) createBackup(c *gin.Context) { - a.Tgbot.SendBackUP(c) + a.Tgbot.SendBackupToAdmins() } diff --git a/web/controller/base.go b/web/controller/base.go index 53c80f07..674a195d 100644 --- a/web/controller/base.go +++ b/web/controller/base.go @@ -15,7 +15,7 @@ type BaseController struct { func (a *BaseController) checkLogin(c *gin.Context) { if !session.IsLogin(c) { if isAjax(c) { - pureJsonMsg(c, false, WebI18n(c, "pages.login.loginAgain")) + pureJsonMsg(c, false, I18nWeb(c, "pages.login.loginAgain")) } else { c.Redirect(http.StatusTemporaryRedirect, c.GetString("base_path")) } @@ -25,7 +25,7 @@ func (a *BaseController) checkLogin(c *gin.Context) { } } -func WebI18n(c *gin.Context, name string, params ...string) string { +func I18nWeb(c *gin.Context, name string, params ...string) string { anyfunc, funcExists := c.Get("I18n") if !funcExists { logger.Warning("I18n function not exists in gin context!") diff --git a/web/controller/inbound.go b/web/controller/inbound.go index d91c6a46..d13e40bc 100644 --- a/web/controller/inbound.go +++ b/web/controller/inbound.go @@ -60,7 +60,7 @@ func (a *InboundController) getInbounds(c *gin.Context) { user := session.GetLoginUser(c) inbounds, err := a.inboundService.GetInbounds(user.Id) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.toasts.obtain"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.obtain"), err) return } jsonObj(c, inbounds, nil) @@ -68,12 +68,12 @@ func (a *InboundController) getInbounds(c *gin.Context) { func (a *InboundController) getInbound(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "get"), err) + jsonMsg(c, I18nWeb(c, "get"), err) return } inbound, err := a.inboundService.GetInbound(id) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.toasts.obtain"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.toasts.obtain"), err) return } jsonObj(c, inbound, nil) @@ -93,7 +93,7 @@ func (a *InboundController) addInbound(c *gin.Context) { inbound := &model.Inbound{} err := c.ShouldBind(inbound) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.create"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.create"), err) return } user := session.GetLoginUser(c) @@ -101,7 +101,7 @@ func (a *InboundController) addInbound(c *gin.Context) { inbound.Enable = true inbound.Tag = fmt.Sprintf("inbound-%v", inbound.Port) inbound, err = a.inboundService.AddInbound(inbound) - jsonMsgObj(c, WebI18n(c, "pages.inbounds.create"), inbound, err) + jsonMsgObj(c, I18nWeb(c, "pages.inbounds.create"), inbound, err) if err == nil { a.xrayService.SetToNeedRestart() } @@ -110,11 +110,11 @@ func (a *InboundController) addInbound(c *gin.Context) { func (a *InboundController) delInbound(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "delete"), err) + jsonMsg(c, I18nWeb(c, "delete"), err) return } err = a.inboundService.DelInbound(id) - jsonMsgObj(c, WebI18n(c, "delete"), id, err) + jsonMsgObj(c, I18nWeb(c, "delete"), id, err) if err == nil { a.xrayService.SetToNeedRestart() } @@ -123,7 +123,7 @@ func (a *InboundController) delInbound(c *gin.Context) { func (a *InboundController) updateInbound(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } inbound := &model.Inbound{ @@ -131,11 +131,11 @@ func (a *InboundController) updateInbound(c *gin.Context) { } err = c.ShouldBind(inbound) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } inbound, err = a.inboundService.UpdateInbound(inbound) - jsonMsgObj(c, WebI18n(c, "pages.inbounds.update"), inbound, err) + jsonMsgObj(c, I18nWeb(c, "pages.inbounds.update"), inbound, err) if err == nil { a.xrayService.SetToNeedRestart() } @@ -165,7 +165,7 @@ func (a *InboundController) addInboundClient(c *gin.Context) { data := &model.Inbound{} err := c.ShouldBind(data) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } @@ -183,7 +183,7 @@ func (a *InboundController) addInboundClient(c *gin.Context) { func (a *InboundController) delInboundClient(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } clientId := c.Param("clientId") @@ -205,7 +205,7 @@ func (a *InboundController) updateInboundClient(c *gin.Context) { inbound := &model.Inbound{} err := c.ShouldBind(inbound) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } @@ -223,7 +223,7 @@ func (a *InboundController) updateInboundClient(c *gin.Context) { func (a *InboundController) resetClientTraffic(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } email := c.Param("email") @@ -251,7 +251,7 @@ func (a *InboundController) resetAllTraffics(c *gin.Context) { func (a *InboundController) resetAllClientTraffics(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } @@ -266,7 +266,7 @@ func (a *InboundController) resetAllClientTraffics(c *gin.Context) { func (a *InboundController) delDepletedClients(c *gin.Context) { id, err := strconv.Atoi(c.Param("id")) if err != nil { - jsonMsg(c, WebI18n(c, "pages.inbounds.update"), err) + jsonMsg(c, I18nWeb(c, "pages.inbounds.update"), err) return } err = a.inboundService.DelDepletedClients(id) diff --git a/web/controller/index.go b/web/controller/index.go index a7fc1ea9..0254106c 100644 --- a/web/controller/index.go +++ b/web/controller/index.go @@ -49,15 +49,15 @@ func (a *IndexController) login(c *gin.Context) { var form LoginForm err := c.ShouldBind(&form) if err != nil { - pureJsonMsg(c, false, WebI18n(c, "pages.login.toasts.invalidFormData")) + pureJsonMsg(c, false, I18nWeb(c, "pages.login.toasts.invalidFormData")) return } if form.Username == "" { - pureJsonMsg(c, false, WebI18n(c, "pages.login.toasts.emptyUsername")) + pureJsonMsg(c, false, I18nWeb(c, "pages.login.toasts.emptyUsername")) return } if form.Password == "" { - pureJsonMsg(c, false, WebI18n(c, "pages.login.toasts.emptyPassword")) + pureJsonMsg(c, false, I18nWeb(c, "pages.login.toasts.emptyPassword")) return } @@ -66,7 +66,7 @@ func (a *IndexController) login(c *gin.Context) { if user == nil { logger.Infof("wrong username or password: \"%s\" \"%s\"", form.Username, form.Password) a.tgbot.UserLoginNotify(form.Username, getRemoteIp(c), timeStr, 0) - pureJsonMsg(c, false, WebI18n(c, "pages.login.toasts.wrongUsernameOrPassword")) + pureJsonMsg(c, false, I18nWeb(c, "pages.login.toasts.wrongUsernameOrPassword")) return } else { logger.Infof("%s login success, Ip Address: %s\n", form.Username, getRemoteIp(c)) @@ -87,7 +87,7 @@ func (a *IndexController) login(c *gin.Context) { err = session.SetLoginUser(c, user) logger.Info("user", user.Id, "login success") - jsonMsg(c, WebI18n(c, "pages.login.toasts.successLogin"), err) + jsonMsg(c, I18nWeb(c, "pages.login.toasts.successLogin"), err) } func (a *IndexController) logout(c *gin.Context) { diff --git a/web/controller/server.go b/web/controller/server.go index 24ee9cb4..cc4eaacc 100644 --- a/web/controller/server.go +++ b/web/controller/server.go @@ -81,7 +81,7 @@ func (a *ServerController) getXrayVersion(c *gin.Context) { versions, err := a.serverService.GetXrayVersions() if err != nil { - jsonMsg(c, WebI18n(c, "getVersion"), err) + jsonMsg(c, I18nWeb(c, "getVersion"), err) return } @@ -94,7 +94,7 @@ func (a *ServerController) getXrayVersion(c *gin.Context) { func (a *ServerController) installXray(c *gin.Context) { version := c.Param("version") err := a.serverService.UpdateXray(version) - jsonMsg(c, WebI18n(c, "install")+" xray", err) + jsonMsg(c, I18nWeb(c, "install")+" xray", err) } func (a *ServerController) stopXrayService(c *gin.Context) { diff --git a/web/controller/setting.go b/web/controller/setting.go index 7a28291a..226b7975 100644 --- a/web/controller/setting.go +++ b/web/controller/setting.go @@ -49,7 +49,7 @@ func (a *SettingController) initRouter(g *gin.RouterGroup) { func (a *SettingController) getAllSetting(c *gin.Context) { allSetting, err := a.settingService.GetAllSetting() if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.getSettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } jsonObj(c, allSetting, nil) @@ -58,7 +58,7 @@ func (a *SettingController) getAllSetting(c *gin.Context) { func (a *SettingController) getDefaultJsonConfig(c *gin.Context) { defaultJsonConfig, err := a.settingService.GetDefaultJsonConfig() if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.getSettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } jsonObj(c, defaultJsonConfig, nil) @@ -67,22 +67,22 @@ func (a *SettingController) getDefaultJsonConfig(c *gin.Context) { func (a *SettingController) getDefaultSettings(c *gin.Context) { expireDiff, err := a.settingService.GetExpireDiff() if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.getSettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } trafficDiff, err := a.settingService.GetTrafficDiff() if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.getSettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } defaultCert, err := a.settingService.GetCertFile() if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.getSettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } defaultKey, err := a.settingService.GetKeyFile() if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.getSettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) return } result := map[string]interface{}{ @@ -98,27 +98,27 @@ func (a *SettingController) updateSetting(c *gin.Context) { allSetting := &entity.AllSetting{} err := c.ShouldBind(allSetting) if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifySettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err) return } err = a.settingService.UpdateAllSetting(allSetting) - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifySettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err) } func (a *SettingController) updateUser(c *gin.Context) { form := &updateUserForm{} err := c.ShouldBind(form) if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifySettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err) return } user := session.GetLoginUser(c) if user.Username != form.OldUsername || user.Password != form.OldPassword { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifyUser"), errors.New(WebI18n(c, "pages.settings.toasts.originalUserPassIncorrect"))) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUser"), errors.New(I18nWeb(c, "pages.settings.toasts.originalUserPassIncorrect"))) return } if form.NewUsername == "" || form.NewPassword == "" { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifyUser"), errors.New(WebI18n(c, "pages.settings.toasts.userPassMustBeNotEmpty"))) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUser"), errors.New(I18nWeb(c, "pages.settings.toasts.userPassMustBeNotEmpty"))) return } err = a.userService.UpdateUser(user.Id, form.NewUsername, form.NewPassword) @@ -127,19 +127,19 @@ func (a *SettingController) updateUser(c *gin.Context) { user.Password = form.NewPassword session.SetLoginUser(c, user) } - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifyUser"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUser"), err) } func (a *SettingController) restartPanel(c *gin.Context) { err := a.panelService.RestartPanel(time.Second * 3) - jsonMsg(c, WebI18n(c, "pages.settings.restartPanel"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.restartPanel"), err) } func (a *SettingController) updateSecret(c *gin.Context) { form := &updateSecretForm{} err := c.ShouldBind(form) if err != nil { - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifySettings"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err) } user := session.GetLoginUser(c) err = a.userService.UpdateUserSecret(user.Id, form.LoginSecret) @@ -147,7 +147,7 @@ func (a *SettingController) updateSecret(c *gin.Context) { user.LoginSecret = form.LoginSecret session.SetLoginUser(c, user) } - jsonMsg(c, WebI18n(c, "pages.settings.toasts.modifyUser"), err) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifyUser"), err) } func (a *SettingController) getUserSecret(c *gin.Context) { diff --git a/web/controller/util.go b/web/controller/util.go index 3d44c11d..da77189b 100644 --- a/web/controller/util.go +++ b/web/controller/util.go @@ -38,12 +38,12 @@ func jsonMsgObj(c *gin.Context, msg string, obj interface{}, err error) { if err == nil { m.Success = true if msg != "" { - m.Msg = msg + WebI18n(c, "success") + m.Msg = msg + I18nWeb(c, "success") } } else { m.Success = false - m.Msg = msg + WebI18n(c, "fail") + ": " + err.Error() - logger.Warning(msg+WebI18n(c, "fail")+": ", err) + m.Msg = msg + I18nWeb(c, "fail") + ": " + err.Error() + logger.Warning(msg+I18nWeb(c, "fail")+": ", err) } c.JSON(http.StatusOK, m) } diff --git a/web/web.go b/web/web.go index b15731fc..1a631d38 100644 --- a/web/web.go +++ b/web/web.go @@ -208,10 +208,10 @@ func (s *Server) initRouter() (*gin.Engine, error) { } // Apply locale middleware for i18n - webI18nFunc := func(key string, params ...string) string { + i18nWebFunc := func(key string, params ...string) string { return locale.I18n(locale.Web, key, params...) } - engine.FuncMap["i18n"] = webI18nFunc + engine.FuncMap["i18n"] = i18nWebFunc engine.Use(locale.LocalizerMiddleware()) // set static files and template