Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShishkevich D. <135337715+shishkevichd@users.noreply.github.com>2025-06-21 11:38:43 +0300
committerGitHub <noreply@github.com>2025-06-21 11:38:43 +0300
commitd642774a4493912e76dbc294dce834cf5b635324 (patch)
tree98a761be40633469481ab2812a541c4ad8a742aa /web/html/xray.html
parent1644904755983ae76fca5bc7466a5da530c37013 (diff)
refactor: use new page templates
Diffstat (limited to 'web/html/xray.html')
-rw-r--r--web/html/xray.html178
1 files changed, 88 insertions, 90 deletions
diff --git a/web/html/xray.html b/web/html/xray.html
index eb99b794..8a60dafe 100644
--- a/web/html/xray.html
+++ b/web/html/xray.html
@@ -1,22 +1,8 @@
-<!DOCTYPE html>
-<html lang="en">
-{{template "head" .}}
+{{ template "page/head_start" .}}
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/codemirror.min.css?{{ .cur_ver }}">
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/fold/foldgutter.css">
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/xq.min.css?{{ .cur_ver }}">
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/lint/lint.css">
-
-<script src="{{ .base_path }}assets/js/model/outbound.js?{{ .cur_ver }}"></script>
-<script src="{{ .base_path }}assets/codemirror/codemirror.min.js?{{ .cur_ver }}"></script>
-<script src="{{ .base_path }}assets/codemirror/javascript.js"></script>
-<script src="{{ .base_path }}assets/codemirror/jshint.js"></script>
-<script src="{{ .base_path }}assets/codemirror/jsonlint.js"></script>
-<script src="{{ .base_path }}assets/codemirror/lint/lint.js"></script>
-<script src="{{ .base_path }}assets/codemirror/lint/javascript-lint.js"></script>
-<script src="{{ .base_path }}assets/codemirror/hint/javascript-hint.js"></script>
-<script src="{{ .base_path }}assets/codemirror/fold/foldcode.js"></script>
-<script src="{{ .base_path }}assets/codemirror/fold/foldgutter.js"></script>
-<script src="{{ .base_path }}assets/codemirror/fold/brace-fold.js"></script>
<style>
@media (min-width: 769px) {
.ant-layout-content {
@@ -46,79 +32,92 @@
margin-block-end: 12px;
}
</style>
-<body>
- <a-layout id="app" v-cloak :class="themeSwitcher.currentTheme">
- <a-sidebar></a-sidebar>
- <a-layout id="content-layout">
- <a-layout-content>
- <a-spin :spinning="spinning" :delay="500" tip='{{ i18n "loading"}}'>
- <transition name="list" appear>
- <a-alert type="error" v-if="showAlert" :style="{ marginBottom: '10px' }"
- message='{{ i18n "secAlertTitle" }}'
- color="red"
- description='{{ i18n "secAlertSsl" }}'
- show-icon closable>
- </a-alert>
- </transition>
- <a-space direction="vertical">
- <a-card hoverable :style="{ marginBottom: '.5rem' }">
- <a-row :style="{ display: 'flex', flexWrap: 'wrap', alignItems: 'center' }">
- <a-col :xs="24" :sm="10" :style="{ padding: '4px' }">
- <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">{{ i18n "pages.index.xrayErrorPopoverTitle" }}</span>
- <template slot="content">
- <span :style="{ maxWidth: '400px' }" v-for="line in restartResult.split('\n')">[[ line ]]</span>
- </template>
- <a-icon type="question-circle"></a-icon>
- </a-popover>
- </a-space>
- </a-col>
- <a-col :xs="24" :sm="14">
- <template>
- <div>
- <a-back-top :target="() => document.getElementById('content-layout')" visibility-height="200"></a-back-top>
- <a-alert type="warning" :style="{ float: 'right', width: 'fit-content' }" message='{{ i18n "pages.settings.infoDesc" }}' show-icon>
- </a-alert>
- </div>
- </template>
- </a-col>
- </a-row>
- </a-card>
- <a-tabs class="ant-card-dark-box-nohover" default-active-key="1"
- @change="(activeKey) => { this.changePage(activeKey); }"
- :class="themeSwitcher.currentTheme">
- <a-tab-pane key="tpl-basic" tab='{{ i18n "pages.xray.basicTemplate"}}' :style="{ paddingTop: '20px' }">
- {{ template "settings/xray/basics" . }}
- </a-tab-pane>
- <a-tab-pane key="tpl-routing" tab='{{ i18n "pages.xray.Routings"}}' :style="{ paddingTop: '20px' }">
- {{ template "settings/xray/routing" . }}
- </a-tab-pane>
- <a-tab-pane key="tpl-outbound" tab='{{ i18n "pages.xray.Outbounds"}}' force-render="true">
- {{ template "settings/xray/outbounds" . }}
- </a-tab-pane>
- <a-tab-pane key="tpl-reverse" tab='{{ i18n "pages.xray.outbound.reverse"}}' :style="{ paddingTop: '20px' }" force-render="true">
- {{ template "settings/xray/reverse" . }}
- </a-tab-pane>
- <a-tab-pane key="tpl-balancer" tab='{{ i18n "pages.xray.Balancers"}}' :style="{ paddingTop: '20px' }" force-render="true">
- {{ template "settings/xray/balancers" . }}
- </a-tab-pane>
- <a-tab-pane key="tpl-dns" tab='DNS' :style="{ paddingTop: '20px' }" force-render="true">
- {{ template "settings/xray/dns" . }}
- </a-tab-pane>
- <a-tab-pane key="tpl-advanced" tab='{{ i18n "pages.xray.advancedTemplate"}}' :style="{ paddingTop: '20px' }" force-render="true">
- {{ template "settings/xray/advanced" . }}
- </a-tab-pane>
- </a-tabs>
- </a-space>
- </a-spin>
- </a-layout-content>
- </a-layout>
- </a-layout>
-{{template "js" .}}
+{{ template "page/head_end" .}}
+
+{{ template "page/body_start" .}}
+<a-layout id="app" v-cloak :class="themeSwitcher.currentTheme">
+<a-sidebar></a-sidebar>
+<a-layout id="content-layout">
+ <a-layout-content>
+ <a-spin :spinning="spinning" :delay="500" tip='{{ i18n "loading"}}'>
+ <transition name="list" appear>
+ <a-alert type="error" v-if="showAlert" :style="{ marginBottom: '10px' }"
+ message='{{ i18n "secAlertTitle" }}'
+ color="red"
+ description='{{ i18n "secAlertSsl" }}'
+ show-icon closable>
+ </a-alert>
+ </transition>
+ <a-space direction="vertical">
+ <a-card hoverable :style="{ marginBottom: '.5rem' }">
+ <a-row :style="{ display: 'flex', flexWrap: 'wrap', alignItems: 'center' }">
+ <a-col :xs="24" :sm="10" :style="{ padding: '4px' }">
+ <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">{{ i18n "pages.index.xrayErrorPopoverTitle" }}</span>
+ <template slot="content">
+ <span :style="{ maxWidth: '400px' }" v-for="line in restartResult.split('\n')">[[ line ]]</span>
+ </template>
+ <a-icon type="question-circle"></a-icon>
+ </a-popover>
+ </a-space>
+ </a-col>
+ <a-col :xs="24" :sm="14">
+ <template>
+ <div>
+ <a-back-top :target="() => document.getElementById('content-layout')" visibility-height="200"></a-back-top>
+ <a-alert type="warning" :style="{ float: 'right', width: 'fit-content' }" message='{{ i18n "pages.settings.infoDesc" }}' show-icon>
+ </a-alert>
+ </div>
+ </template>
+ </a-col>
+ </a-row>
+ </a-card>
+ <a-tabs class="ant-card-dark-box-nohover" default-active-key="1"
+ @change="(activeKey) => { this.changePage(activeKey); }"
+ :class="themeSwitcher.currentTheme">
+ <a-tab-pane key="tpl-basic" tab='{{ i18n "pages.xray.basicTemplate"}}' :style="{ paddingTop: '20px' }">
+ {{ template "settings/xray/basics" . }}
+ </a-tab-pane>
+ <a-tab-pane key="tpl-routing" tab='{{ i18n "pages.xray.Routings"}}' :style="{ paddingTop: '20px' }">
+ {{ template "settings/xray/routing" . }}
+ </a-tab-pane>
+ <a-tab-pane key="tpl-outbound" tab='{{ i18n "pages.xray.Outbounds"}}' force-render="true">
+ {{ template "settings/xray/outbounds" . }}
+ </a-tab-pane>
+ <a-tab-pane key="tpl-reverse" tab='{{ i18n "pages.xray.outbound.reverse"}}' :style="{ paddingTop: '20px' }" force-render="true">
+ {{ template "settings/xray/reverse" . }}
+ </a-tab-pane>
+ <a-tab-pane key="tpl-balancer" tab='{{ i18n "pages.xray.Balancers"}}' :style="{ paddingTop: '20px' }" force-render="true">
+ {{ template "settings/xray/balancers" . }}
+ </a-tab-pane>
+ <a-tab-pane key="tpl-dns" tab='DNS' :style="{ paddingTop: '20px' }" force-render="true">
+ {{ template "settings/xray/dns" . }}
+ </a-tab-pane>
+ <a-tab-pane key="tpl-advanced" tab='{{ i18n "pages.xray.advancedTemplate"}}' :style="{ paddingTop: '20px' }" force-render="true">
+ {{ template "settings/xray/advanced" . }}
+ </a-tab-pane>
+ </a-tabs>
+ </a-space>
+ </a-spin>
+ </a-layout-content>
+</a-layout>
+</a-layout>
+{{template "page/body_scripts" .}}
+<script src="{{ .base_path }}assets/js/model/outbound.js?{{ .cur_ver }}"></script>
+<script src="{{ .base_path }}assets/codemirror/codemirror.min.js?{{ .cur_ver }}"></script>
+<script src="{{ .base_path }}assets/codemirror/javascript.js"></script>
+<script src="{{ .base_path }}assets/codemirror/jshint.js"></script>
+<script src="{{ .base_path }}assets/codemirror/jsonlint.js"></script>
+<script src="{{ .base_path }}assets/codemirror/lint/lint.js"></script>
+<script src="{{ .base_path }}assets/codemirror/lint/javascript-lint.js"></script>
+<script src="{{ .base_path }}assets/codemirror/hint/javascript-hint.js"></script>
+<script src="{{ .base_path }}assets/codemirror/fold/foldcode.js"></script>
+<script src="{{ .base_path }}assets/codemirror/fold/foldgutter.js"></script>
+<script src="{{ .base_path }}assets/codemirror/fold/brace-fold.js"></script>
{{template "component/aSidebar" .}}
{{template "component/aThemeSwitch" .}}
{{template "component/aTableSortable" .}}
@@ -1410,5 +1409,4 @@
},
});
</script>
-</body>
-</html>
+{{ template "page/body_end" .}} \ No newline at end of file