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:
authorMohammad Movaghari <52345697+mohammadmovaghari@users.noreply.github.com>2023-04-12 16:29:17 +0300
committerGitHub <noreply@github.com>2023-04-12 16:29:17 +0300
commitc575425292e2c4c690728174e42a6f34963394c2 (patch)
treec9b033457baa55a98cea23a8769645f8f3dbd476 /web/html/xui/form
parent63f71e527ceddc724e0bd2893c4946b01f3a5f6c (diff)
parent82b2809fccb6a131b4f84e2ca236f8bea567beae (diff)
Merge branch 'MHSanaei:main' into main
Diffstat (limited to 'web/html/xui/form')
-rw-r--r--web/html/xui/form/client.html25
-rw-r--r--web/html/xui/form/protocol/trojan.html5
-rw-r--r--web/html/xui/form/protocol/vless.html27
-rw-r--r--web/html/xui/form/protocol/vmess.html3
-rw-r--r--web/html/xui/form/stream/stream_tcp.html2
-rw-r--r--web/html/xui/form/tls_settings.html55
6 files changed, 93 insertions, 24 deletions
diff --git a/web/html/xui/form/client.html b/web/html/xui/form/client.html
index 288fb0ef..1de05ac9 100644
--- a/web/html/xui/form/client.html
+++ b/web/html/xui/form/client.html
@@ -15,6 +15,9 @@
</span>
<a-input v-model.trim="client.email" style="width: 150px;" ></a-input>
</a-form-item>
+ <a-form-item label="{{ i18n "pages.inbounds.enable" }}">
+ <a-switch v-model="client.enable"></a-switch>
+ </a-form-item>
<a-form-item label="Password" v-if="inbound.protocol === Protocols.TROJAN">
<a-input v-model.trim="client.password" style="width: 150px;" ></a-input>
</a-form-item>
@@ -24,6 +27,12 @@
<a-form-item label='{{ i18n "additional" }} ID' v-if="inbound.protocol === Protocols.VMESS">
<a-input type="number" v-model.number="client.alterId" style="width: 70px;"></a-input>
</a-form-item>
+ <a-form-item label="Subscription" v-if="client.email">
+ <a-input v-model.trim="client.subId"></a-input>
+ </a-form-item>
+ <a-form-item label="Telegram Username" v-if="client.email">
+ <a-input v-model.trim="client.tgId"></a-input>
+ </a-form-item>
<a-form-item>
<span slot="label">
<span>{{ i18n "pages.inbounds.IPLimit" }}</span>
@@ -60,7 +69,7 @@
</a-form>
</a-form-item>
<a-form-item v-if="inbound.XTLS" label="Flow">
- <a-select v-model="client.flow" style="width: 150px">
+ <a-select v-model="client.flow" style="width: 150px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
<a-select-option value="">{{ i18n "none" }}</a-select-option>
<a-select-option v-for="key in XTLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
</a-select>
@@ -83,7 +92,7 @@
</span>
<a-input-number v-model="client._totalGB":min="0" style="width: 70px;"></a-input-number>
<template v-if="isEdit && clientStats">
- {{ i18n "usage" }}:
+ <span>{{ i18n "usage" }}:</span>
<a-tag :color="statsColor">
[[ sizeFormat(clientStats.up) ]] /
[[ sizeFormat(clientStats.down) ]]
@@ -91,7 +100,13 @@
</a-tag>
</template>
</a-form-item>
- <a-form-item>
+ <a-form-item label="{{ i18n "pages.client.delayedStart" }}">
+ <a-switch v-model="clientModal.delayedStart" @click="client._expiryTime=0"></a-switch>
+ </a-form-item>
+ <a-form-item label="{{ i18n "pages.client.expireDays" }}" v-if="clientModal.delayedStart">
+ <a-input type="number" v-model.number="delayedExpireDays" :min="0"></a-input>
+ </a-form-item>
+ <a-form-item v-else>
<span slot="label">
<span >{{ i18n "pages.inbounds.expireDate" }}</span>
<a-tooltip>
@@ -102,8 +117,8 @@
</a-tooltip>
</span>
<a-date-picker :show-time="{ format: 'HH:mm' }" format="YYYY-MM-DD HH:mm"
- :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''"
- v-model="client._expiryTime" style="width: 170px;"></a-date-picker>
+ :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''"
+ v-model="client._expiryTime" style="width: 170px;"></a-date-picker>
<a-tag color="red" v-if="isExpiry">Expired</a-tag>
</a-form-item>
</a-form>
diff --git a/web/html/xui/form/protocol/trojan.html b/web/html/xui/form/protocol/trojan.html
index c0694d25..91fd7afd 100644
--- a/web/html/xui/form/protocol/trojan.html
+++ b/web/html/xui/form/protocol/trojan.html
@@ -32,7 +32,7 @@
<a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;" ></a-input>
</a-form-item>
<a-form-item v-if="inbound.XTLS" label="Flow">
- <a-select v-model="client.flow" style="width: 150px">
+ <a-select v-model="client.flow" style="width: 150px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
<a-select-option value="">{{ i18n "none" }}</a-select-option>
<a-select-option v-for="key in XTLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
</a-select>
@@ -60,6 +60,7 @@
</a-tooltip>
</span>
<a-date-picker :show-time="{ format: 'HH:mm' }" format="YYYY-MM-DD HH:mm"
+ :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''"
v-model="client._expiryTime" style="width: 170px;"></a-date-picker>
</a-form-item>
</a-collapse-panel>
@@ -76,7 +77,7 @@
</table>
</a-collapse-panel>
</a-collapse>
-<template v-if="inbound.isTcp && (inbound.tls || inbound.xtls)">
+<template v-if="inbound.isTcp">
<a-form layout="inline">
<a-form-item label="Fallbacks">
<a-row>
diff --git a/web/html/xui/form/protocol/vless.html b/web/html/xui/form/protocol/vless.html
index 7dfc5402..029f2c9e 100644
--- a/web/html/xui/form/protocol/vless.html
+++ b/web/html/xui/form/protocol/vless.html
@@ -20,25 +20,25 @@
<a-input v-model.trim="client.id" style="width: 300px;" ></a-input>
</a-form-item>
<a-form-item>
- <span slot="label">
- <span>{{ i18n "pages.inbounds.IPLimit" }}</span>
- <a-tooltip>
- <template slot="title">
- <span>{{ i18n "pages.inbounds.IPLimitDesc" }}</span>
- </template>
- <a-icon type="question-circle" theme="filled"></a-icon>
- </a-tooltip>
- </span>
- <a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;" ></a-input>
+ <span slot="label">
+ <span>{{ i18n "pages.inbounds.IPLimit" }}</span>
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.IPLimitDesc" }}</span>
+ </template>
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </span>
+ <a-input type="number" v-model.number="client.limitIp" min="0" style="width: 70px;" ></a-input>
</a-form-item>
<a-form-item v-if="inbound.XTLS" label="Flow">
- <a-select v-model="inbound.settings.vlesses[index].flow" style="width: 150px">
+ <a-select v-model="inbound.settings.vlesses[index].flow" style="width: 150px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
<a-select-option value="" selected>{{ i18n "none" }}</a-select-option>
<a-select-option v-for="key in XTLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
</a-select>
</a-form-item>
<a-form-item v-else-if="inbound.canEnableTlsFlow()" label="Flow" layout="inline">
- <a-select v-model="inbound.settings.vlesses[index].flow" style="width: 150px">
+ <a-select v-model="inbound.settings.vlesses[index].flow" style="width: 150px" :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
<a-select-option value="" selected>{{ i18n "none" }}</a-select-option>
<a-select-option v-for="key in TLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
</a-select>
@@ -66,6 +66,7 @@
</a-tooltip>
</span>
<a-date-picker :show-time="{ format: 'HH:mm' }" format="YYYY-MM-DD HH:mm"
+ :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''"
v-model="client._expiryTime" style="width: 170px;"></a-date-picker>
</a-form-item>
</a-collapse-panel>
@@ -82,7 +83,7 @@
</table>
</a-collapse-panel>
</a-collapse>
-<template v-if="inbound.isTcp && (inbound.tls || inbound.xtls)">
+<template v-if="inbound.isTcp">
<a-form layout="inline">
<a-form-item label="Fallbacks">
<a-row>
diff --git a/web/html/xui/form/protocol/vmess.html b/web/html/xui/form/protocol/vmess.html
index d425e080..ad2b3960 100644
--- a/web/html/xui/form/protocol/vmess.html
+++ b/web/html/xui/form/protocol/vmess.html
@@ -57,7 +57,8 @@
</a-tooltip>
</span>
<a-date-picker :show-time="{ format: 'HH:mm' }" format="YYYY-MM-DD HH:mm"
- v-model="client._expiryTime" style="width: 170px;"></a-date-picker>
+ :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''"
+ v-model="client._expiryTime" style="width: 170px;"></a-date-picker>
</a-form-item>
</a-collapse-panel>
</a-collapse>
diff --git a/web/html/xui/form/stream/stream_tcp.html b/web/html/xui/form/stream/stream_tcp.html
index 32495a80..958f8f25 100644
--- a/web/html/xui/form/stream/stream_tcp.html
+++ b/web/html/xui/form/stream/stream_tcp.html
@@ -4,7 +4,7 @@
<a-form-item label="AcceptProxyProtocol">
<a-switch v-model="inbound.stream.tcp.acceptProxyProtocol"></a-switch>
</a-form-item>
- <a-form-item label="HTTP Camouflage">
+ <a-form-item label="HTTP {{ i18n "camouflage" }}">
<a-switch
:checked="inbound.stream.tcp.type === 'http'"
@change="checked => inbound.stream.tcp.type = checked ? 'http' : 'none'">
diff --git a/web/html/xui/form/tls_settings.html b/web/html/xui/form/tls_settings.html
index acb0a815..f954b76b 100644
--- a/web/html/xui/form/tls_settings.html
+++ b/web/html/xui/form/tls_settings.html
@@ -1,11 +1,32 @@
{{define "form/tlsSettings"}}
<!-- tls enable -->
<a-form layout="inline" v-if="inbound.canSetTls()">
- <a-form-item label="TLS">
+ <a-form-item v-if="inbound.canEnableTls()" label="TLS">
<a-switch v-model="inbound.tls">
</a-switch>
</a-form-item>
- <a-form-item v-if="inbound.canEnableXTLS()" label="XTLS">
+ <a-form-item v-if="inbound.canEnableReality()">
+ <span slot="label">
+ Reality
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.Realitydec" }}</span>
+ </template>
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </span>
+ <a-switch v-model="inbound.reality"></a-switch>
+ </a-form-item>
+ <a-form-item v-if="inbound.canEnableXTLS()">
+ <span slot="label">
+ XTLS
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.XTLSdec" }}</span>
+ </template>
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </span>
<a-switch v-model="inbound.XTLS"></a-switch>
</a-form-item>
</a-form>
@@ -61,6 +82,7 @@
<a-form-item label='{{ i18n "pages.inbounds.keyPath" }}'>
<a-input v-model.trim="inbound.stream.tls.certs[0].keyFile" style="width:300px;"></a-input>
</a-form-item>
+ <a-button @click="setDefaultCertData">{{ i18n "pages.inbounds.setDefaultCert" }}</a-button>
</template>
<template v-else>
<a-form-item label='{{ i18n "pages.inbounds.publicKeyContent" }}'>
@@ -71,4 +93,33 @@
</a-form-item>
</template>
</a-form>
+<a-form v-else-if="inbound.reality" layout="inline">
+ <a-form-item label="show">
+ <a-switch v-model="inbound.stream.reality.show">
+ </a-switch>
+ </a-form-item>
+ <a-form-item label="xver">
+ <a-input type="number" v-model.number="inbound.stream.reality.xver" :min="0" style="width: 60px"></a-input>
+ </a-form-item>
+ <a-form-item label="uTLS" >
+ <a-select v-model="inbound.stream.reality.fingerprint" style="width: 135px">
+ <a-select-option v-for="key in UTLS_FINGERPRINT" :value="key">[[ key ]]</a-select-option>
+ </a-select>
+ </a-form-item>
+ <a-form-item label="dest">
+ <a-input v-model.trim="inbound.stream.reality.dest" style="width: 360px"></a-input>
+ </a-form-item>
+ <a-form-item label="serverNames">
+ <a-input v-model.trim="inbound.stream.reality.serverNames" style="width: 360px"></a-input>
+ </a-form-item>
+ <a-form-item label="privateKey">
+ <a-input v-model.trim="inbound.stream.reality.privateKey" style="width: 360px"></a-input>
+ </a-form-item>
+ <a-form-item label="publicKey">
+ <a-input v-model.trim="inbound.stream.reality.publicKey" style="width: 360px"></a-input>
+ </a-form-item>
+ <a-form-item label="shortIds">
+ <a-input v-model.trim="inbound.stream.reality.shortIds"></a-input>
+ </a-form-item>
+</a-form>
{{end}} \ No newline at end of file