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--web/assets/js/model/outbound.js11
-rw-r--r--web/html/form/outbound.html8
-rw-r--r--web/html/settings.html9
-rw-r--r--web/html/settings/panel/subscription/json.html12
4 files changed, 36 insertions, 4 deletions
diff --git a/web/assets/js/model/outbound.js b/web/assets/js/model/outbound.js
index a42c400d..ce110a73 100644
--- a/web/assets/js/model/outbound.js
+++ b/web/assets/js/model/outbound.js
@@ -919,12 +919,14 @@ Outbound.FreedomSettings.Fragment = class extends CommonClass {
constructor(
packets = '1-3',
length = '',
- interval = ''
+ interval = '',
+ maxSplit = ''
) {
super();
this.packets = packets;
this.length = length;
this.interval = interval;
+ this.maxSplit = maxSplit;
}
static fromJson(json = {}) {
@@ -932,6 +934,7 @@ Outbound.FreedomSettings.Fragment = class extends CommonClass {
json.packets,
json.length,
json.interval,
+ json.maxSplit
);
}
};
@@ -940,12 +943,14 @@ Outbound.FreedomSettings.Noise = class extends CommonClass {
constructor(
type = 'rand',
packet = '10-20',
- delay = '10-16'
+ delay = '10-16',
+ applyTo = 'ip'
) {
super();
this.type = type;
this.packet = packet;
this.delay = delay;
+ this.applyTo = applyTo;
}
static fromJson(json = {}) {
@@ -953,6 +958,7 @@ Outbound.FreedomSettings.Noise = class extends CommonClass {
json.type,
json.packet,
json.delay,
+ json.applyTo
);
}
@@ -961,6 +967,7 @@ Outbound.FreedomSettings.Noise = class extends CommonClass {
type: this.type,
packet: this.packet,
delay: this.delay,
+ applyTo: this.applyTo
};
}
};
diff --git a/web/html/form/outbound.html b/web/html/form/outbound.html
index eed7316d..0b75ba27 100644
--- a/web/html/form/outbound.html
+++ b/web/html/form/outbound.html
@@ -42,6 +42,9 @@
<a-form-item label='Interval'>
<a-input v-model.trim="outbound.settings.fragment.interval"></a-input>
</a-form-item>
+ <a-form-item label='Max Split'>
+ <a-input v-model.trim="outbound.settings.fragment.maxSplit"></a-input>
+ </a-form-item>
</template>
<!-- Switch for Noises -->
@@ -75,6 +78,11 @@
<a-form-item label='Delay'>
<a-input v-model.trim="noise.delay"></a-input>
</a-form-item>
+ <a-form-item label='Apply To'>
+ <a-select v-model="noise.applyTo" :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option v-for="s in ['ip','ipv4','ipv6']" :value="s">[[ s ]]</a-select-option>
+ </a-select>
+ </a-form-item>
</a-form>
</template>
</template>
diff --git a/web/html/settings.html b/web/html/settings.html
index c7fa9bd8..3b6e81a1 100644
--- a/web/html/settings.html
+++ b/web/html/settings.html
@@ -207,7 +207,7 @@
settings: {
domainStrategy: "AsIs",
noises: [
- { type: "rand", packet: "10-20", delay: "10-16" },
+ { type: "rand", packet: "10-20", delay: "10-16", applyTo: "ip" },
],
},
},
@@ -397,7 +397,7 @@
}
},
addNoise() {
- const newNoise = { type: "rand", packet: "10-20", delay: "10-16" };
+ const newNoise = { type: "rand", packet: "10-20", delay: "10-16", applyTo: "ip" };
this.noisesArray = [...this.noisesArray, newNoise];
},
removeNoise(index) {
@@ -420,6 +420,11 @@
updatedNoises[index] = { ...updatedNoises[index], delay: value };
this.noisesArray = updatedNoises;
},
+ updateNoiseApplyTo(index, value) {
+ const updatedNoises = [...this.noisesArray];
+ updatedNoises[index] = { ...updatedNoises[index], applyTo: value };
+ this.noisesArray = updatedNoises;
+ },
},
computed: {
fragment: {
diff --git a/web/html/settings/panel/subscription/json.html b/web/html/settings/panel/subscription/json.html
index a3729984..c8575e38 100644
--- a/web/html/settings/panel/subscription/json.html
+++ b/web/html/settings/panel/subscription/json.html
@@ -90,6 +90,18 @@
placeholder="10-20"></a-input>
</template>
</a-setting-list-item>
+ <a-setting-list-item paddings="small">
+ <template #title>ApplyTo</template>
+ <template #control>
+ <a-select :value="noise.applyTo" :style="{ width: '100%' }"
+ :dropdown-class-name="themeSwitcher.currentTheme"
+ @change="(value) => updateNoiseApplyTo(index, value)">
+ <a-select-option :value="p" :label="p" v-for="p in ['ip', 'ipv4', 'ipv6']" :key="p">
+ <span>[[ p ]]</span>
+ </a-select-option>
+ </a-select>
+ </template>
+ </a-setting-list-item>
<a-space direction="horizontal" :style="{ padding: '10px 20px' }">
<a-button v-if="noisesArray.length > 1" type="danger"
@click="removeNoise(index)">Remove</a-button>