From 7b38d02ff035fc34699740d14807b4d2b8a36d06 Mon Sep 17 00:00:00 2001
From: MHSanaei <33454419+MHSanaei@users.noreply.github.com>
Date: Mon, 27 Mar 2023 20:11:28 +0330
Subject: [PATCH 1/2] new feature - clone inbound
---
web/html/xui/inbounds.html | 39 ++++++++++++++++++++++++++
web/translation/translate.en_US.toml | 4 +++
web/translation/translate.fa_IR.toml | 5 ++++
web/translation/translate.zh_Hans.toml | 4 +++
4 files changed, 52 insertions(+)
diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html
index f7b9e2ed..9fd663f7 100644
--- a/web/html/xui/inbounds.html
+++ b/web/html/xui/inbounds.html
@@ -95,6 +95,9 @@
{{ i18n "pages.inbounds.resetTraffic" }}
+
+
+ {{ i18n "pages.inbounds.Clone"}}
@@ -310,11 +313,47 @@
break;
case "resetTraffic":
this.resetTraffic(dbInbound.id);
+ break;
+ case "clone":
+ this.openCloneInbound(dbInbound);
break;
case "delete":
this.delInbound(dbInbound.id);
break;
}
+ },
+ openCloneInbound(dbInbound) {
+ this.$confirm({
+ title: '{{ i18n "pages.inbounds.cloneInbound"}} ' + dbInbound.remark,
+ content: '{{ i18n "pages.inbounds.cloneInboundContent"}}',
+ okText: '{{ i18n "pages.inbounds.cloneInboundOk"}}',
+ cancelText: '{{ i18n "cancel" }}',
+ onOk: () => {
+ const baseInbound = dbInbound.toInbound();
+ dbInbound.up = 0;
+ dbInbound.down = 0;
+ this.cloneInbound(baseInbound, dbInbound);
+ },
+ });
+ },
+ async cloneInbound(baseInbound, dbInbound) {
+ const inbound = new Inbound();
+ const data = {
+ up: dbInbound.up,
+ down: dbInbound.down,
+ total: dbInbound.total,
+ remark: dbInbound.remark + " - Cloned",
+ enable: dbInbound.enable,
+ expiryTime: dbInbound.expiryTime,
+
+ listen: inbound.listen,
+ port: inbound.port,
+ protocol: baseInbound.protocol,
+ settings: inbound.settings.toString(),
+ streamSettings: baseInbound.stream.toString(),
+ sniffing: baseInbound.canSniffing() ? baseInbound.sniffing.toString() : '{}',
+ };
+ await this.submit('/xui/inbound/add', data, inModal);
},
openAddInbound() {
inModal.show({
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index 836e4692..d8a46d5d 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -129,6 +129,10 @@
"clickOnQRcode" = "Click on QR Code to Copy"
"client" = "Client"
"export" = "Export links"
+"Clone" = "Clone"
+"cloneInbound" = "Create"
+"cloneInboundContent" = "All items of this inbound except Port, Listening IP, Clients will be applied to the clone"
+"cloneInboundOk" = "Creating a clone from"
[pages.client]
"add" = "Add client"
diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml
index 0fcab166..157d9cf7 100644
--- a/web/translation/translate.fa_IR.toml
+++ b/web/translation/translate.fa_IR.toml
@@ -129,6 +129,11 @@
"clickOnQRcode" = "برای کپی بر روی کد تصویری کلیک کنید"
"client" = "کاربر"
"export" = "استخراج لینکها"
+"Clone" = "کلون"
+"cloneInbound" = "ایجاد"
+"cloneInboundContent" = "همه موارد این ورودی بجز پورت ، ای پی و کلاینت ها روی کلون اعمال خواهند شد"
+"cloneInboundOk" = "ساختن یک کلون از"
+
[pages.client]
"add" = "کاربر جدید"
diff --git a/web/translation/translate.zh_Hans.toml b/web/translation/translate.zh_Hans.toml
index 18c1e322..cbffba0f 100644
--- a/web/translation/translate.zh_Hans.toml
+++ b/web/translation/translate.zh_Hans.toml
@@ -129,6 +129,10 @@
"clickOnQRcode" = "点击二维码复制"
"client" = "客户"
"export" = "导出链接"
+"Clone" = "克隆"
+"cloneInbound" = "创造"
+"cloneInboundContent" = "此入站的所有项目除 Port、Listening IP、Clients 将应用于克隆"
+"cloneInboundOk" = "从创建克隆"
[pages.client]
"add" = "添加客户端"
From 88744d92b3677b33f0b6265bacb7805aeab856e6 Mon Sep 17 00:00:00 2001
From: MHSanaei <33454419+MHSanaei@users.noreply.github.com>
Date: Mon, 27 Mar 2023 20:12:45 +0330
Subject: [PATCH 2/2] new feature - reset traffic all inbound
---
web/html/xui/inbounds.html | 17 +++++++++++++++++
web/translation/translate.en_US.toml | 5 +++++
web/translation/translate.fa_IR.toml | 5 +++++
web/translation/translate.zh_Hans.toml | 5 +++++
4 files changed, 32 insertions(+)
diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html
index 9fd663f7..90250869 100644
--- a/web/html/xui/inbounds.html
+++ b/web/html/xui/inbounds.html
@@ -52,6 +52,7 @@
{{ i18n "pages.inbounds.addInbound" }}
{{ i18n "pages.inbounds.export" }}
+
{{ i18n "pages.inbounds.resetAllTraffic" }}
{
+ for (const dbInbound of this.dbInbounds) {
+ const inbound = dbInbound.toInbound();
+ dbInbound.up = 0;
+ dbInbound.down = 0;
+ this.updateInbound(inbound, dbInbound);
+ }
+ },
+ });
},
delInbound(dbInboundId) {
this.$confirm({
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index d8a46d5d..247096f1 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -133,6 +133,11 @@
"cloneInbound" = "Create"
"cloneInboundContent" = "All items of this inbound except Port, Listening IP, Clients will be applied to the clone"
"cloneInboundOk" = "Creating a clone from"
+"resetAllTraffic" = "Reset All Inbounds Traffic"
+"resetAllTrafficTitle" = "Reset all inbounds traffic"
+"resetAllTrafficContent" = "Are you sure to reset all inbounds traffic ?"
+"resetAllTrafficOkText" = "Confirm"
+"resetAllTrafficCancelText" = "Cancel"
[pages.client]
"add" = "Add client"
diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml
index 157d9cf7..c5e3e23f 100644
--- a/web/translation/translate.fa_IR.toml
+++ b/web/translation/translate.fa_IR.toml
@@ -133,6 +133,11 @@
"cloneInbound" = "ایجاد"
"cloneInboundContent" = "همه موارد این ورودی بجز پورت ، ای پی و کلاینت ها روی کلون اعمال خواهند شد"
"cloneInboundOk" = "ساختن یک کلون از"
+"resetAllTraffic" = "ریست ترافیک کل ورودی ها"
+"resetAllTrafficTitle" = "ریست ترافیک کل ورودی ها"
+"resetAllTrafficContent" = "آیا مطمئن هستید که تمام ترافیک ورودی ها را ریست می کنید؟"
+"resetAllTrafficOkText" = "بله"
+"resetAllTrafficCancelText" = "انصراف"
[pages.client]
diff --git a/web/translation/translate.zh_Hans.toml b/web/translation/translate.zh_Hans.toml
index cbffba0f..17b4688b 100644
--- a/web/translation/translate.zh_Hans.toml
+++ b/web/translation/translate.zh_Hans.toml
@@ -133,6 +133,11 @@
"cloneInbound" = "创造"
"cloneInboundContent" = "此入站的所有项目除 Port、Listening IP、Clients 将应用于克隆"
"cloneInboundOk" = "从创建克隆"
+"resetAllTraffic" = "重置所有入站流量"
+"resetAllTrafficTitle" = "重置所有入站流量"
+"resetAllTrafficContent" = "您确定要重置所有入站流量吗?"
+"resetAllTrafficOkText" = "确认"
+"resetAllTrafficCancelText" = "取消"
[pages.client]
"add" = "添加客户端"