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:
-rw-r--r--sub/subJsonService.go4
-rw-r--r--web/assets/codemirror/codemirror.js2
-rw-r--r--web/html/login.html174
-rw-r--r--web/html/xui/settings.html3
-rw-r--r--web/html/xui/xray.html4
5 files changed, 95 insertions, 92 deletions
diff --git a/sub/subJsonService.go b/sub/subJsonService.go
index 92519f3e..8bc98dea 100644
--- a/sub/subJsonService.go
+++ b/sub/subJsonService.go
@@ -189,7 +189,7 @@ func (s *SubJsonService) streamData(stream string) map[string]interface{} {
delete(streamSettings, "sockopt")
if s.fragmanet != "" {
- streamSettings["sockopt"] = json_util.RawMessage(`{"dialerProxy": "fragment", "tcpKeepAliveIdle": 100, "TcpNoDelay": true}`)
+ streamSettings["sockopt"] = json_util.RawMessage(`{"dialerProxy": "fragment", "tcpKeepAliveIdle": 100, "tcpNoDelay": true}`)
}
// remove proxy protocol
@@ -218,7 +218,7 @@ func (s *SubJsonService) tlsData(tData map[string]interface{}) map[string]interf
tlsData["serverName"] = tData["serverName"]
tlsData["alpn"] = tData["alpn"]
- if allowInsecure, ok := tlsClientSettings["allowInsecure"].(string); ok {
+ if allowInsecure, ok := tlsClientSettings["allowInsecure"].(bool); ok {
tlsData["allowInsecure"] = allowInsecure
}
if fingerprint, ok := tlsClientSettings["fingerprint"].(string); ok {
diff --git a/web/assets/codemirror/codemirror.js b/web/assets/codemirror/codemirror.js
index 034ea2f8..a3cd26c1 100644
--- a/web/assets/codemirror/codemirror.js
+++ b/web/assets/codemirror/codemirror.js
@@ -538,7 +538,7 @@
var on = function(emitter, type, f) {
if (emitter.addEventListener) {
- emitter.addEventListener(type, f, { passive: true });
+ emitter.addEventListener(type, f, { passive: false });
} else if (emitter.attachEvent) {
emitter.attachEvent("on" + type, f);
} else {
diff --git a/web/html/login.html b/web/html/login.html
index 4605a4fd..e9e4e219 100644
--- a/web/html/login.html
+++ b/web/html/login.html
@@ -374,92 +374,96 @@
</style>
<body>
<a-layout id="app" v-cloak :class="themeSwitcher.currentTheme">
- <transition name="list" appear>
- <a-layout-content class="under" style="min-height: 0;">
- <div class="waves-header">
- <div class="waves-inner-header"></div>
- <svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
- <defs>
- <path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" />
- </defs>
- <g class="parallax">
- <use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(0, 135, 113, 0.08)" />
- <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(0, 135, 113, 0.08)" />
- <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(0, 135, 113, 0.08)" />
- <use xlink:href="#gentle-wave" x="48" y="7" fill="#c7ebe2" />
- </g>
- </svg>
- </div>
- <a-row type="flex" justify="center" align="middle" style="height: 100%; overflow: auto;">
- <a-col :xs="22" :sm="20" :md="14" :lg="10" :xl="8" :xxl="6" id="login" style="margin: 3rem 0;">
- <a-row type="flex" justify="center">
- <a-col style="width: 100%;">
- <h1 class="title headline zoom">
- <span class="words-wrapper">
- <b class="is-visible">{{ i18n "pages.login.title" }}</b>
- <b>3X-UI</b>
- </span>
- </h1>
- </a-col>
- </a-row>
- <a-row type="flex" justify="center">
- <a-col span="24">
- <a-form>
- <a-form-item>
- <a-input v-model.trim="user.username" placeholder='{{ i18n "username" }}'
- @keydown.enter.native="login" autofocus>
- <a-icon slot="prefix" type="user" style="font-size: 16px;"/>
- </a-input>
- </a-form-item>
- <a-form-item>
- <password-input icon="lock" v-model.trim="user.password"
- placeholder='{{ i18n "password" }}' @keydown.enter.native="login">
- </password-input>
- </a-form-item>
- <a-form-item v-if="secretEnable">
- <password-input icon="key" v-model.trim="user.loginSecret"
- placeholder='{{ i18n "secretToken" }}' @keydown.enter.native="login">
- </password-input>
- </a-input>
- </a-form-item>
- <a-form-item>
- <a-row justify="center" class="centered">
- <div class="wave-btn-bg wave-btn-bg-cl" :style="loading ? { width: '52px' } : { display: 'inline-block' }">
- <a-button class="ant-btn-primary-login" type="primary" :loading="loading" @click="login" :icon="loading ? 'poweroff' : undefined">
- [[ loading ? '' : '{{ i18n "login" }}' ]]
- </a-button>
- </div>
- </a-row>
- </a-form-item>
- <a-form-item>
- <a-row justify="center" class="centered">
- <a-col :span="24">
- <a-select ref="selectLang" v-model="lang" @change="setLang(lang)" style="width: 150px;" :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option :value="l.value" label="English" v-for="l in supportLangs">
- <span role="img" aria-label="l.name" v-text="l.icon"></span>
- &nbsp;&nbsp;<span v-text="l.name"></span>
- </a-select-option>
- </a-select>
- </a-col>
- </a-row>
- </a-form-item>
- <a-form-item>
- <a-row justify="center" class="centered">
- <a-col>
- <a-icon type="bulb" :theme="themeSwitcher.isDarkTheme ? 'filled' : 'outlined'"></a-icon>&nbsp;
- </a-col>
- <a-col>
- <theme-switch />
- </a-col>
- </a-row>
- </a-form-item>
- </a-form>
- </a-col>
- </a-row>
+ <transition name="list" appear>
+ <a-layout-content class="under" style="min-height: 0;">
+ <div class="waves-header">
+ <div class="waves-inner-header"></div>
+ <svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
+ viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto">
+ <defs>
+ <path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z" />
+ </defs>
+ <g class="parallax">
+ <use xlink:href="#gentle-wave" x="48" y="0" fill="rgba(0, 135, 113, 0.08)" />
+ <use xlink:href="#gentle-wave" x="48" y="3" fill="rgba(0, 135, 113, 0.08)" />
+ <use xlink:href="#gentle-wave" x="48" y="5" fill="rgba(0, 135, 113, 0.08)" />
+ <use xlink:href="#gentle-wave" x="48" y="7" fill="#c7ebe2" />
+ </g>
+ </svg>
+ </div>
+ <a-row type="flex" justify="center" align="middle" style="height: 100%; overflow: auto;">
+ <a-col :xs="22" :sm="20" :md="14" :lg="10" :xl="8" :xxl="6" id="login" style="margin: 3rem 0;">
+ <a-row type="flex" justify="center">
+ <a-col style="width: 100%;">
+ <h1 class="title headline zoom">
+ <span class="words-wrapper">
+ <b class="is-visible">{{ i18n "pages.login.title" }}</b>
+ <b>3X-UI</b>
+ </span>
+ </h1>
</a-col>
- </a-row>
- </a-layout-content>
- </transition>
+ </a-row>
+ <a-row type="flex" justify="center">
+ <a-col span="24">
+ <a-form>
+ <a-form-item>
+ <a-input v-model.trim="user.username" placeholder='{{ i18n "username" }}'
+ @keydown.enter.native="login" autofocus>
+ <a-icon slot="prefix" type="user" style="font-size: 16px;" />
+ </a-input>
+ </a-form-item>
+ <a-form-item>
+ <password-input icon="lock" v-model.trim="user.password" placeholder='{{ i18n "password" }}'
+ @keydown.enter.native="login">
+ </password-input>
+ </a-form-item>
+ <a-form-item v-if="secretEnable">
+ <password-input icon="key" v-model.trim="user.loginSecret" placeholder='{{ i18n "secretToken" }}'
+ @keydown.enter.native="login">
+ </password-input>
+ </a-input>
+ </a-form-item>
+ <a-form-item>
+ <a-row justify="center" class="centered">
+ <div class="wave-btn-bg wave-btn-bg-cl"
+ :style="loading ? { width: '52px' } : { display: 'inline-block' }">
+ <a-button class="ant-btn-primary-login" type="primary" :loading="loading" @click="login"
+ :icon="loading ? 'poweroff' : undefined">
+ [[ loading ? '' : '{{ i18n "login" }}' ]]
+ </a-button>
+ </div>
+ </a-row>
+ </a-form-item>
+ <a-form-item>
+ <a-row justify="center" class="centered">
+ <a-col :span="24">
+ <a-select ref="selectLang" v-model="lang" @change="setLang(lang)" style="width: 150px;"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="l.value" label="English" v-for="l in supportLangs">
+ <span role="img" aria-label="l.name" v-text="l.icon"></span>
+ &nbsp;&nbsp;<span v-text="l.name"></span>
+ </a-select-option>
+ </a-select>
+ </a-col>
+ </a-row>
+ </a-form-item>
+ <a-form-item>
+ <a-row justify="center" class="centered">
+ <a-col>
+ <a-icon type="bulb" :theme="themeSwitcher.isDarkTheme ? 'filled' : 'outlined'"></a-icon>&nbsp;
+ </a-col>
+ <a-col>
+ <theme-switch />
+ </a-col>
+ </a-row>
+ </a-form-item>
+ </a-form>
+ </a-col>
+ </a-row>
+ </a-col>
+ </a-row>
+ </a-layout-content>
+ </transition>
</a-layout>
{{template "js" .}}
{{template "component/themeSwitcher" .}}
diff --git a/web/html/xui/settings.html b/web/html/xui/settings.html
index adc199a9..fdb523c3 100644
--- a/web/html/xui/settings.html
+++ b/web/html/xui/settings.html
@@ -263,7 +263,6 @@
<a-col :lg="24" :xl="12">
<a-list-item-meta title="Telegram Bot Language" />
</a-col>
-
<a-col :lg="24" :xl="12">
<template>
<a-select
@@ -352,7 +351,7 @@
streamSettings: {
sockopt: {
tcpKeepAliveIdle: 100,
- TcpNoDelay: true
+ tcpNoDelay: true
}
}
},
diff --git a/web/html/xui/xray.html b/web/html/xui/xray.html
index 572d8b6a..5ede3633 100644
--- a/web/html/xui/xray.html
+++ b/web/html/xui/xray.html
@@ -1,14 +1,14 @@
<!DOCTYPE html>
<html lang="en">
{{template "head" .}}
-<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/codemirror.css">
+<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/codemirror.css?{{ .cur_ver }}">
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/fold/foldgutter.css">
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/xq.css?{{ .cur_ver }}">
<link rel="stylesheet" href="{{ .base_path }}assets/codemirror/lint/lint.css">
<script src="{{ .base_path }}assets/base64/base64.min.js"></script>
<script src="{{ .base_path }}assets/js/model/outbound.js?{{ .cur_ver }}"></script>
-<script src="{{ .base_path }}assets/codemirror/codemirror.js"></script>
+<script src="{{ .base_path }}assets/codemirror/codemirror.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>