mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-19 21:42:24 +00:00
[xray] show xray errors #1300
This commit is contained in:
parent
655e17e162
commit
4cb67fd1c3
3 changed files with 26 additions and 1 deletions
|
@ -10,6 +10,7 @@ type XraySettingController struct {
|
|||
XraySettingService service.XraySettingService
|
||||
SettingService service.SettingService
|
||||
InboundService service.InboundService
|
||||
XrayService service.XrayService
|
||||
}
|
||||
|
||||
func NewXraySettingController(g *gin.RouterGroup) *XraySettingController {
|
||||
|
@ -23,6 +24,7 @@ func (a *XraySettingController) initRouter(g *gin.RouterGroup) {
|
|||
|
||||
g.POST("/", a.getXraySetting)
|
||||
g.POST("/update", a.updateSetting)
|
||||
g.GET("/getXrayResult", a.getXrayResult)
|
||||
g.GET("/getDefaultJsonConfig", a.getDefaultXrayConfig)
|
||||
}
|
||||
|
||||
|
@ -55,3 +57,7 @@ func (a *XraySettingController) getDefaultXrayConfig(c *gin.Context) {
|
|||
}
|
||||
jsonObj(c, defaultJsonConfig, nil)
|
||||
}
|
||||
|
||||
func (a *XraySettingController) getXrayResult(c *gin.Context) {
|
||||
jsonObj(c, a.XrayService.GetXrayResult(), nil)
|
||||
}
|
|
@ -65,6 +65,14 @@
|
|||
<a-space direction="horizontal">
|
||||
<a-button type="primary" :disabled="saveBtnDisable" @click="updateXraySetting">{{ i18n "pages.xray.save" }}</a-button>
|
||||
<a-button type="danger" :disabled="!saveBtnDisable" @click="restartXray">{{ i18n "pages.xray.restart" }}</a-button>
|
||||
<a-popover v-if="restartResult"
|
||||
:overlay-class-name="themeSwitcher.currentTheme">
|
||||
<span slot="title" style="font-size: 12pt">Error in running xray-core</span>
|
||||
<template slot="content">
|
||||
<p style="max-width: 400px" v-for="line in restartResult.split('\n')">[[ line ]]</p>
|
||||
</template>
|
||||
<a-icon type="question-circle" theme="filled"></a-icon>
|
||||
</a-popover>
|
||||
</a-space>
|
||||
</a-col>
|
||||
<a-col :xs="24" :sm="16">
|
||||
|
@ -462,6 +470,7 @@
|
|||
xraySetting: '',
|
||||
inboundTags: [],
|
||||
saveBtnDisable: true,
|
||||
restartResult: '',
|
||||
isMobile: window.innerWidth <= 768,
|
||||
advSettings: 'xraySetting',
|
||||
cm: null,
|
||||
|
@ -586,8 +595,17 @@
|
|||
const msg = await HttpUtil.post("server/restartXrayService");
|
||||
this.loading(false);
|
||||
if (msg.success) {
|
||||
this.loading(true);
|
||||
await PromiseUtil.sleep(500);
|
||||
await this.getXrayResult();
|
||||
}
|
||||
this.loading(false);
|
||||
},
|
||||
async getXrayResult() {
|
||||
const msg = await HttpUtil.get("/panel/xray/getXrayResult");
|
||||
if(msg.success){
|
||||
this.restartResult=msg.obj;
|
||||
if(msg.obj.length > 1) Vue.prototype.$message.error(msg.obj);
|
||||
}
|
||||
},
|
||||
async fetchUserSecret() {
|
||||
this.loading(true);
|
||||
|
@ -896,6 +914,7 @@
|
|||
},
|
||||
async mounted() {
|
||||
await this.getXraySetting();
|
||||
await this.getXrayResult();
|
||||
while (true) {
|
||||
await PromiseUtil.sleep(600);
|
||||
this.saveBtnDisable = this.oldXraySetting === this.xraySetting;
|
||||
|
|
Loading…
Reference in a new issue