|
@@ -114,15 +114,12 @@
|
|
|
<a-list-item>
|
|
|
<a-row style="padding: 20px">
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
- <a-list-item-meta
|
|
|
- title='{{ i18n "pages.xray.FreedomStrategy" }}'
|
|
|
- description='{{ i18n "pages.xray.FreedomStrategyDesc" }}'/>
|
|
|
+ <a-list-item-meta title='{{ i18n "pages.xray.FreedomStrategy" }}'
|
|
|
+ description='{{ i18n "pages.xray.FreedomStrategyDesc" }}' />
|
|
|
</a-col>
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
<template>
|
|
|
- <a-select
|
|
|
- v-model="freedomStrategy"
|
|
|
- :dropdown-class-name="themeSwitcher.currentTheme"
|
|
|
+ <a-select v-model="freedomStrategy" :dropdown-class-name="themeSwitcher.currentTheme"
|
|
|
style="width: 100%">
|
|
|
<a-select-option v-for="s in OutboundDomainStrategies" :value="s">[[ s ]]</a-select-option>
|
|
|
</a-select>
|
|
@@ -132,33 +129,37 @@
|
|
|
</a-list-item>
|
|
|
<a-row style="padding: 20px">
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
- <a-list-item-meta
|
|
|
- title='{{ i18n "pages.xray.RoutingStrategy" }}'
|
|
|
- description='{{ i18n "pages.xray.RoutingStrategyDesc" }}'/>
|
|
|
+ <a-list-item-meta title='{{ i18n "pages.xray.RoutingStrategy" }}'
|
|
|
+ description='{{ i18n "pages.xray.RoutingStrategyDesc" }}' />
|
|
|
</a-col>
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
<template>
|
|
|
- <a-select
|
|
|
- v-model="routingStrategy"
|
|
|
- :dropdown-class-name="themeSwitcher.currentTheme"
|
|
|
+ <a-select v-model="routingStrategy" :dropdown-class-name="themeSwitcher.currentTheme"
|
|
|
style="width: 100%">
|
|
|
<a-select-option v-for="s in routingDomainStrategies" :value="s">[[ s ]]</a-select-option>
|
|
|
</a-select>
|
|
|
</template>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
+ </a-list-item>
|
|
|
+ </a-collapse-panel>
|
|
|
+ <a-collapse-panel header='{{ i18n "pages.xray.logConfigs" }}'>
|
|
|
+ <a-row :xs="24" :sm="24" :lg="12">
|
|
|
+ <a-alert type="warning" style="text-align: center;">
|
|
|
+ <template slot="message">
|
|
|
+ <a-icon type="exclamation-circle" theme="filled" style="color: #FFA031"></a-icon>
|
|
|
+ {{ i18n "pages.xray.logConfigsDesc" }}
|
|
|
+ </template>
|
|
|
+ </a-alert>
|
|
|
+ </a-row>
|
|
|
<a-row style="padding: 20px">
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
- <a-list-item-meta
|
|
|
- title='{{ i18n "pages.xray.logLevel" }}'
|
|
|
- description='{{ i18n "pages.xray.logLevelDesc" }}'/>
|
|
|
+ <a-list-item-meta title='{{ i18n "pages.xray.logLevel" }}'
|
|
|
+ description='{{ i18n "pages.xray.logLevelDesc" }}' />
|
|
|
</a-col>
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
<template>
|
|
|
- <a-select
|
|
|
- v-model="setLogLevel"
|
|
|
- :dropdown-class-name="themeSwitcher.currentTheme"
|
|
|
- style="width: 100%">
|
|
|
+ <a-select v-model="setLogLevel" :dropdown-class-name="themeSwitcher.currentTheme" style="width: 100%">
|
|
|
<a-select-option v-for="s in logLevel" :value="s">[[ s ]]</a-select-option>
|
|
|
</a-select>
|
|
|
</template>
|
|
@@ -166,22 +167,31 @@
|
|
|
</a-row>
|
|
|
<a-row style="padding: 20px">
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
- <a-list-item-meta
|
|
|
- title='{{ i18n "pages.xray.accessLog" }}'
|
|
|
- description='{{ i18n "pages.xray.accessLogDesc" }}'/>
|
|
|
+ <a-list-item-meta title='{{ i18n "pages.xray.accessLog" }}'
|
|
|
+ description='{{ i18n "pages.xray.accessLogDesc" }}' />
|
|
|
</a-col>
|
|
|
<a-col :lg="24" :xl="12">
|
|
|
<template>
|
|
|
- <a-select
|
|
|
- v-model="setAccessLog"
|
|
|
- :dropdown-class-name="themeSwitcher.currentTheme"
|
|
|
- style="width: 100%">
|
|
|
+ <a-select v-model="accessLog" :dropdown-class-name="themeSwitcher.currentTheme" style="width: 100%">
|
|
|
<a-select-option v-for="s in access" :value="s">[[ s ]]</a-select-option>
|
|
|
</a-select>
|
|
|
</template>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
- </a-list-item>
|
|
|
+ <a-row style="padding: 20px">
|
|
|
+ <a-col :lg="24" :xl="12">
|
|
|
+ <a-list-item-meta title='{{ i18n "pages.xray.errorLog" }}'
|
|
|
+ description='{{ i18n "pages.xray.errorLogDesc" }}' />
|
|
|
+ </a-col>
|
|
|
+ <a-col :lg="24" :xl="12">
|
|
|
+ <template>
|
|
|
+ <a-select v-model="errorLog" :dropdown-class-name="themeSwitcher.currentTheme" style="width: 100%">
|
|
|
+ <a-select-option v-for="s in error" :value="s">[[ s ]]</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </template>
|
|
|
+ </a-col>
|
|
|
+ </a-row>
|
|
|
+ </a-list-item>
|
|
|
</a-collapse-panel>
|
|
|
<a-collapse-panel header='{{ i18n "pages.xray.blockConfigs"}}'>
|
|
|
<a-row :xs="24" :sm="24" :lg="12">
|
|
@@ -633,6 +643,7 @@
|
|
|
routingDomainStrategies: ["AsIs", "IPIfNonMatch", "IPOnDemand"],
|
|
|
logLevel: ["none" , "debug" , "info" , "warning", "error"],
|
|
|
access: ["none" , "./access.log" ],
|
|
|
+ error: ["none" , "./error.log" ],
|
|
|
settingsData: {
|
|
|
protocols: {
|
|
|
bittorrent: ["bittorrent"],
|
|
@@ -1344,9 +1355,9 @@
|
|
|
this.templateSettings = newTemplateSettings;
|
|
|
}
|
|
|
},
|
|
|
- setAccessLog: {
|
|
|
+ accessLog: {
|
|
|
get: function () {
|
|
|
- if (!this.templateSettings || !this.templateSettings.log || !this.templateSettings.log.access) return "none";
|
|
|
+ if (!this.templateSettings || !this.templateSettings.log || !this.templateSettings.log.access) return "";
|
|
|
return this.templateSettings.log.access;
|
|
|
},
|
|
|
set: function (newValue) {
|
|
@@ -1355,6 +1366,17 @@
|
|
|
this.templateSettings = newTemplateSettings;
|
|
|
}
|
|
|
},
|
|
|
+ errorLog: {
|
|
|
+ get: function () {
|
|
|
+ if (!this.templateSettings || !this.templateSettings.log || !this.templateSettings.log.error) return "";
|
|
|
+ return this.templateSettings.log.error;
|
|
|
+ },
|
|
|
+ set: function (newValue) {
|
|
|
+ newTemplateSettings = this.templateSettings;
|
|
|
+ newTemplateSettings.log.error = newValue;
|
|
|
+ this.templateSettings = newTemplateSettings;
|
|
|
+ }
|
|
|
+ },
|
|
|
blockedIPs: {
|
|
|
get: function () {
|
|
|
return this.templateRuleGetter({ outboundTag: "blocked", property: "ip" });
|