restart singbox button #328
This commit is contained in:
@@ -3,6 +3,7 @@ package api
|
|||||||
import (
|
import (
|
||||||
"s-ui/logger"
|
"s-ui/logger"
|
||||||
"s-ui/service"
|
"s-ui/service"
|
||||||
|
"s-ui/singbox"
|
||||||
"s-ui/util"
|
"s-ui/util"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -20,6 +21,7 @@ type APIHandler struct {
|
|||||||
service.PanelService
|
service.PanelService
|
||||||
service.StatsService
|
service.StatsService
|
||||||
service.ServerService
|
service.ServerService
|
||||||
|
singbox.Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAPIHandler(g *gin.RouterGroup) {
|
func NewAPIHandler(g *gin.RouterGroup) {
|
||||||
@@ -89,6 +91,9 @@ func (a *APIHandler) postHandler(c *gin.Context) {
|
|||||||
case "restartApp":
|
case "restartApp":
|
||||||
err = a.PanelService.RestartPanel(3)
|
err = a.PanelService.RestartPanel(3)
|
||||||
jsonMsg(c, "restartApp", err)
|
jsonMsg(c, "restartApp", err)
|
||||||
|
case "restartSb":
|
||||||
|
err = a.Controller.Restart()
|
||||||
|
jsonMsg(c, "restartSb", err)
|
||||||
case "linkConvert":
|
case "linkConvert":
|
||||||
link := c.Request.FormValue("link")
|
link := c.Request.FormValue("link")
|
||||||
result, _, err := util.GetOutbound(link, 0)
|
result, _, err := util.GetOutbound(link, 0)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
:logType="logModal.logType"
|
:logType="logModal.logType"
|
||||||
@close="closeLogs"
|
@close="closeLogs"
|
||||||
/>
|
/>
|
||||||
<v-container class="fill-height">
|
<v-container class="fill-height" :loading="loading">
|
||||||
<v-responsive :class="reloadItems.length>0 ? 'fill-height text-center' : 'align-center'" >
|
<v-responsive :class="reloadItems.length>0 ? 'fill-height text-center' : 'align-center'" >
|
||||||
<v-row class="d-flex align-center justify-center">
|
<v-row class="d-flex align-center justify-center">
|
||||||
<v-col cols="auto">
|
<v-col cols="auto">
|
||||||
@@ -116,6 +116,12 @@
|
|||||||
</v-tooltip>
|
</v-tooltip>
|
||||||
<v-icon icon="mdi-list-box-outline" :color="tilesData.sbd?.running ? 'success': 'error'" />
|
<v-icon icon="mdi-list-box-outline" :color="tilesData.sbd?.running ? 'success': 'error'" />
|
||||||
</v-chip>
|
</v-chip>
|
||||||
|
<v-chip density="compact" color="transparent" v-if="tilesData.sbd?.running && !loading" style="cursor: pointer;" @click="restartSingbox()">
|
||||||
|
<v-tooltip activator="parent" location="top">
|
||||||
|
{{ $t('actions.restartSb') }}
|
||||||
|
</v-tooltip>
|
||||||
|
<v-icon icon="mdi-restart" color="warning" />
|
||||||
|
</v-chip>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col cols="4">{{ $t('main.info.memory') }}</v-col>
|
<v-col cols="4">{{ $t('main.info.memory') }}</v-col>
|
||||||
<v-col cols="8">
|
<v-col cols="8">
|
||||||
@@ -168,6 +174,7 @@ import { computed, onBeforeUnmount, onMounted, ref } from 'vue'
|
|||||||
import { i18n } from '@/locales'
|
import { i18n } from '@/locales'
|
||||||
import LogVue from '@/layouts/modals/Logs.vue'
|
import LogVue from '@/layouts/modals/Logs.vue'
|
||||||
|
|
||||||
|
const loading = ref(false)
|
||||||
const menu = ref(false)
|
const menu = ref(false)
|
||||||
const menuItems = [
|
const menuItems = [
|
||||||
{ title: i18n.global.t('main.gauges'), value: [
|
{ title: i18n.global.t('main.gauges'), value: [
|
||||||
@@ -249,4 +256,10 @@ const closeLogs = () => {
|
|||||||
logModal.value.logType = "s-ui"
|
logModal.value.logType = "s-ui"
|
||||||
logModal.value.visible = false
|
logModal.value.visible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const restartSingbox = async () => {
|
||||||
|
loading.value = true
|
||||||
|
await HttpUtils.post('api/restartSb',{})
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ export default {
|
|||||||
disable: "Disable",
|
disable: "Disable",
|
||||||
close: "Close",
|
close: "Close",
|
||||||
restartApp: "Restart App",
|
restartApp: "Restart App",
|
||||||
|
restartSb: "Restart Singbox",
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
title: "Login",
|
title: "Login",
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ export default {
|
|||||||
disable: "غیرفعال",
|
disable: "غیرفعال",
|
||||||
close: "بستن",
|
close: "بستن",
|
||||||
restartApp: "ریستارت پنل",
|
restartApp: "ریستارت پنل",
|
||||||
|
restartSb: "ریستارت سینگباکس",
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
title: "ورود",
|
title: "ورود",
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ export default {
|
|||||||
disable: "Отключить",
|
disable: "Отключить",
|
||||||
close: "Закрыть",
|
close: "Закрыть",
|
||||||
restartApp: "Перезапустить приложение",
|
restartApp: "Перезапустить приложение",
|
||||||
|
restartSb: "Перезапустить Singbox",
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
title: "Вход",
|
title: "Вход",
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ export default {
|
|||||||
disable: "Vô hiệu hóa",
|
disable: "Vô hiệu hóa",
|
||||||
close: "Đóng",
|
close: "Đóng",
|
||||||
restartApp: "Khởi động lại ứng dụng",
|
restartApp: "Khởi động lại ứng dụng",
|
||||||
|
restartSb: "Khởi động lại Singbox",
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
title: "Đăng nhập",
|
title: "Đăng nhập",
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ export default {
|
|||||||
disable: "禁用",
|
disable: "禁用",
|
||||||
close: "关闭",
|
close: "关闭",
|
||||||
restartApp: "重启面板",
|
restartApp: "重启面板",
|
||||||
|
restartSb: "重启 Singbox",
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
title: "登录",
|
title: "登录",
|
||||||
|
|||||||
@@ -104,6 +104,7 @@ export default {
|
|||||||
disable: "禁用",
|
disable: "禁用",
|
||||||
close: "關閉",
|
close: "關閉",
|
||||||
restartApp: "重啟面板",
|
restartApp: "重啟面板",
|
||||||
|
restartSb: "重啟 Singbox",
|
||||||
},
|
},
|
||||||
login: {
|
login: {
|
||||||
title: "登錄",
|
title: "登錄",
|
||||||
|
|||||||
Reference in New Issue
Block a user