From 2a8da2ba3cbfbf7ac46e5ba7ba071588f3f2d8b5 Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Mon, 4 Dec 2023 19:20:46 +0100 Subject: separate xray page #1286 --- web/controller/setting.go | 20 ++++++++--------- web/controller/xraySetting.go | 50 +++++++++++++++++++++++++++++++++++++++++++ web/controller/xui.go | 11 ++++++++-- 3 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 web/controller/xraySetting.go (limited to 'web/controller') diff --git a/web/controller/setting.go b/web/controller/setting.go index 32eccefe..96223c28 100644 --- a/web/controller/setting.go +++ b/web/controller/setting.go @@ -41,7 +41,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.getDefaultJsonConfig) + g.GET("/getDefaultJsonConfig", a.getDefaultXrayConfig) g.POST("/updateUserSecret", a.updateSecret) g.POST("/getUserSecret", a.getUserSecret) } @@ -55,15 +55,6 @@ func (a *SettingController) getAllSetting(c *gin.Context) { jsonObj(c, allSetting, nil) } -func (a *SettingController) getDefaultJsonConfig(c *gin.Context) { - defaultJsonConfig, err := a.settingService.GetDefaultJsonConfig() - if err != nil { - jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) - return - } - jsonObj(c, defaultJsonConfig, nil) -} - func (a *SettingController) getDefaultSettings(c *gin.Context) { type settingFunc func() (interface{}, error) @@ -169,3 +160,12 @@ func (a *SettingController) getUserSecret(c *gin.Context) { jsonObj(c, user, nil) } } + +func (a *SettingController) getDefaultXrayConfig(c *gin.Context) { + defaultJsonConfig, err := a.settingService.GetDefaultXrayConfig() + if err != nil { + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) + return + } + jsonObj(c, defaultJsonConfig, nil) +} diff --git a/web/controller/xraySetting.go b/web/controller/xraySetting.go new file mode 100644 index 00000000..d244d030 --- /dev/null +++ b/web/controller/xraySetting.go @@ -0,0 +1,50 @@ +package controller + +import ( + "x-ui/web/service" + + "github.com/gin-gonic/gin" +) + +type XraySettingController struct { + XraySettingService service.XraySettingService + SettingService service.SettingService +} + +func NewXraySettingController(g *gin.RouterGroup) *XraySettingController { + a := &XraySettingController{} + a.initRouter(g) + return a +} + +func (a *XraySettingController) initRouter(g *gin.RouterGroup) { + g = g.Group("/xray") + + g.POST("/", a.getXraySetting) + g.POST("/update", a.updateSetting) + g.GET("/getDefaultJsonConfig", a.getDefaultXrayConfig) +} + +func (a *XraySettingController) getXraySetting(c *gin.Context) { + xraySetting, err := a.SettingService.GetXrayConfigTemplate() + if err != nil { + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) + return + } + jsonObj(c, xraySetting, nil) +} + +func (a *XraySettingController) updateSetting(c *gin.Context) { + xraySetting := c.PostForm("xraySetting") + err := a.XraySettingService.SaveXraySetting(xraySetting) + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.modifySettings"), err) +} + +func (a *XraySettingController) getDefaultXrayConfig(c *gin.Context) { + defaultJsonConfig, err := a.SettingService.GetDefaultXrayConfig() + if err != nil { + jsonMsg(c, I18nWeb(c, "pages.settings.toasts.getSettings"), err) + return + } + jsonObj(c, defaultJsonConfig, nil) +} diff --git a/web/controller/xui.go b/web/controller/xui.go index 700bd52c..5b4c0a18 100644 --- a/web/controller/xui.go +++ b/web/controller/xui.go @@ -7,8 +7,9 @@ import ( type XUIController struct { BaseController - inboundController *InboundController - settingController *SettingController + inboundController *InboundController + settingController *SettingController + xraySettingController *XraySettingController } func NewXUIController(g *gin.RouterGroup) *XUIController { @@ -24,9 +25,11 @@ func (a *XUIController) initRouter(g *gin.RouterGroup) { g.GET("/", a.index) g.GET("/inbounds", a.inbounds) g.GET("/settings", a.settings) + g.GET("/xray", a.xraySettings) a.inboundController = NewInboundController(g) a.settingController = NewSettingController(g) + a.xraySettingController = NewXraySettingController(g) } func (a *XUIController) index(c *gin.Context) { @@ -40,3 +43,7 @@ func (a *XUIController) inbounds(c *gin.Context) { func (a *XUIController) settings(c *gin.Context) { html(c, "settings.html", "pages.settings.title", nil) } + +func (a *XUIController) xraySettings(c *gin.Context) { + html(c, "xray.html", "pages.xray.title", nil) +} -- cgit v1.2.3