diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-25 16:53:38 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-25 16:53:38 +0300 |
| commit | 6a71ea7f5e66fe147bad4b6df1f37d10cc632c0c (patch) | |
| tree | 78c5c78b214c98238152b364026e3a841f1b9aed | |
| parent | 942b9862d8fe2b2c659d63a8f6c5bc24e476e6b0 (diff) | |
[feature] reset traffics of all client
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
| -rw-r--r-- | web/html/xui/inbounds.html | 45 | ||||
| -rw-r--r-- | web/translation/translate.en_US.toml | 11 | ||||
| -rw-r--r-- | web/translation/translate.fa_IR.toml | 9 | ||||
| -rw-r--r-- | web/translation/translate.zh_Hans.toml | 11 |
4 files changed, 58 insertions, 18 deletions
diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html index 14849873..483b0030 100644 --- a/web/html/xui/inbounds.html +++ b/web/html/xui/inbounds.html @@ -67,8 +67,23 @@ <a-card hoverable :class="siderDrawer.isDarkTheme ? darkClass : ''"> <div slot="title"> <a-button type="primary" icon="plus" @click="openAddInbound">{{ i18n "pages.inbounds.addInbound" }}</a-button> - <a-button type="primary" icon="export" @click="exportAllLinks">{{ i18n "pages.inbounds.export" }}</a-button> - <a-button type="primary" icon="reload" @click="resetAllTraffic">{{ i18n "pages.inbounds.resetAllTraffic" }}</a-button> + <a-dropdown :trigger="['click']"> + <a-button type="primary" icon="menu">General Actions</a-button> + <a-menu slot="overlay" @click="a => generalActions(a)" :theme="siderDrawer.theme"> + <a-menu-item key="export"> + <a-icon type="export"></a-icon> + {{ i18n "pages.inbounds.export" }} + </a-menu-item> + <a-menu-item key="resetInbounds"> + <a-icon type="reload"></a-icon> + {{ i18n "pages.inbounds.resetAllTraffic" }} + </a-menu-item> + <a-menu-item key="resetClients"> + <a-icon type="file-done"></a-icon> + {{ i18n "pages.inbounds.resetAllClientTraffics" }} + </a-menu-item> + </a-menu> + </a-dropdown> </div> <a-input v-model.lazy="searchKey" placeholder='{{ i18n "search" }}' autofocus style="max-width: 300px"></a-input> <a-table :columns="columns" :row-key="dbInbound => dbInbound.id" @@ -78,7 +93,7 @@ style="margin-top: 20px" @change="() => getDBInbounds()"> <template slot="action" slot-scope="text, dbInbound"> - <a-icon type="edit" style="font-size: 25px" @click="openEditInbound(dbInbound.id);"></a-icon> + <a-icon type="edit" style="font-size: 22px" @click="openEditInbound(dbInbound.id);"></a-icon> <a-dropdown :trigger="['click']"> <a @click="e => e.preventDefault()">{{ i18n "pages.inbounds.operate" }}</a> <a-menu slot="overlay" @click="a => clickAction(a, dbInbound)" :theme="siderDrawer.theme"> @@ -101,7 +116,7 @@ </a-menu-item> <a-menu-item key="resetClients"> <a-icon type="file-done"></a-icon> - {{ i18n "pages.inbounds.resetAllClientTraffics"}} + {{ i18n "pages.inbounds.resetInboundClientTraffics"}} </a-menu-item> <a-menu-item key="export"> <a-icon type="export"></a-icon> @@ -390,6 +405,21 @@ }); } }, + generalActions(action){ + switch (action.key) { + case "export": + this.exportAllLinks(); + break; + case "resetInbounds": + this.resetAllTraffic(); + break; + case "resetClients": + this.resetAllClientTraffics(-1); + break; + case "": + break; + } + }, clickAction(action, dbInbound) { switch (action.key) { case "qrcode": @@ -651,7 +681,8 @@ clients = this.getClients(dbInbound.protocol, inbound.settings); index = this.findIndexOfClient(clients, client); clients[index].enable = !clients[index].enable; - await this.updateClient(clients[index],dbInboundId, index); + clientId = dbInbound.protocol == "trojan" ? clients[index].password : clients[index].id; + await this.updateClient(clients[index],dbInboundId, clientId); this.loading(false); }, async submit(url, data) { @@ -691,8 +722,8 @@ }, resetAllClientTraffics(dbInboundId) { this.$confirm({ - title: '{{ i18n "pages.inbounds.resetAllClientTrafficTitle"}}', - content: '{{ i18n "pages.inbounds.resetAllClientTrafficContent"}}', + title: dbInboundId>0 ? '{{ i18n "pages.inbounds.resetInboundClientTrafficTitle"}}' : '{{ i18n "pages.inbounds.resetAllClientTrafficTitle"}}', + content: dbInboundId>0 ? '{{ i18n "pages.inbounds.resetInboundClientTrafficContent"}}' : '{{ i18n "pages.inbounds.resetAllClientTrafficContent"}}', class: siderDrawer.isDarkTheme ? darkClass : '', okText: '{{ i18n "reset"}}', cancelText: '{{ i18n "cancel"}}', diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml index 48252b7b..2d2936db 100644 --- a/web/translation/translate.en_US.toml +++ b/web/translation/translate.en_US.toml @@ -96,7 +96,7 @@ "totalDownUp" = "Total uploads/downloads" "totalUsage" = "Total usage" "inboundCount" = "Number of inbound" -"operate" = "Actions" +"operate" = "Menu" "enable" = "Enable" "remark" = "Remark" "protocol" = "Protocol" @@ -144,16 +144,19 @@ "resetAllTrafficCancelText" = "Cancel" "IPLimit" = "IP Limit" "IPLimitDesc" = "Disable inbound if the count exceeds the entered value (Enter 0 to disable IP limit)" -"resetAllClientTraffics" = "Reset Clients Traffic" +"resetInboundClientTraffics" = "Reset Clients Traffic" +"resetInboundClientTrafficTitle" = "Reset all clients traffic" +"resetInboundClientTrafficContent" = "Are you sure to reset all traffics of this inbound's clients ?" +"resetAllClientTraffics" = "Reset All Clients Traffic" "resetAllClientTrafficTitle" = "Reset all clients traffic" -"resetAllClientTrafficContent" = "Confirm reset of all traffic for clients of this inbound?" +"resetAllClientTrafficContent" = "Are you sure to reset all traffics of all clients ?" "Email" = "Email" "EmailDesc" = "Please provide a unique email address" "IPLimitlog" = "IP Log" "IPLimitlogDesc" = "IPs history Log (before enabling inbound after it has been disabled by IP limit, you should clear the log)" "IPLimitlogclear" = "Clear The Log" "setDefaultCert" = "Set cert from panel" -"XTLSdec" = "Xray core needs to be 1.7.5 and below" +"XTLSdec" = "Xray core needs to be 1.7.5" "Realitydec" = "Xray core needs to be 1.8.0 and above" [pages.client] diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml index ec21d582..12fb7f2b 100644 --- a/web/translation/translate.fa_IR.toml +++ b/web/translation/translate.fa_IR.toml @@ -96,7 +96,7 @@ "totalDownUp" = "جمع آپلود/دانلود" "totalUsage" = "جمع کل" "inboundCount" = "تعداد سرویس ها" -"operate" = "عملیات" +"operate" = "فهرست" "enable" = "فعال" "remark" = "نام" "protocol" = "پروتکل" @@ -140,9 +140,12 @@ "resetAllTraffic" = "ریست ترافیک کل سرویس ها" "resetAllTrafficTitle" = "ریست ترافیک کل سرویس ها" "resetAllTrafficContent" = "آیا مطمئن هستید که میخواهید تمام ترافیک سرویس ها را ریست کنید؟" +"resetInboundClientTraffics" = "ریست ترافیک کاربران" +"resetInboundClientTrafficTitle" = "ریست ترافیک کل کاربران" +"resetInboundClientTrafficContent" = "آیا مطمئن هستید که میخواهید تمام ترافیک کاربران این سرویس را ریست کنید؟" "resetAllClientTraffics" = "ریست ترافیک کاربران" "resetAllClientTrafficTitle" = "ریست ترافیک کل کاربران" -"resetAllClientTrafficContent" = "آیا مطمئن هستید که میخواهید تمام ترافیک کاربران این سرویس را ریست کنید؟" +"resetAllClientTrafficContent" = "آیا مطمئن هستید که میخواهید تمام ترافیک کاربران را ریست کنید؟" "IPLimit" = "محدودیت ای پی" "IPLimitDesc" = "غیرفعال کردن ورودی در صورت بیش از تعداد وارد شده (0 برای غیرفعال کردن محدودیت ای پی )" "Email" = "ایمیل" @@ -151,7 +154,7 @@ "IPLimitlogDesc" = "گزارش سابقه ای پی (قبل از فعال کردن ورودی پس از غیرفعال شدن توسط محدودیت ای پی، باید گزارش را پاک کنید)" "IPLimitlogclear" = "پاک کردن گزارش ها" "setDefaultCert" = "استفاده از گواهی پنل" -"XTLSdec" = "هسته Xray باید 1.7.5 و کمتر باشد" +"XTLSdec" = "هسته Xray باید 1.7.5 باشد" "Realitydec" = "هسته Xray باید 1.8.0 و بالاتر باشد" [pages.client] diff --git a/web/translation/translate.zh_Hans.toml b/web/translation/translate.zh_Hans.toml index 09a54247..1d0a3466 100644 --- a/web/translation/translate.zh_Hans.toml +++ b/web/translation/translate.zh_Hans.toml @@ -96,7 +96,7 @@ "totalDownUp" = "总上传 / 下载" "totalUsage" = "总用量" "inboundCount" = "入站数量" -"operate" = "操作" +"operate" = "菜单" "enable" = "启用" "remark" = "备注" "protocol" = "协议" @@ -140,9 +140,12 @@ "resetAllTraffic" = "重置所有入站流量" "resetAllTrafficTitle" = "重置所有入站流量" "resetAllTrafficContent" = "您确定要重置所有入站流量吗?" -"resetAllClientTraffics" = "重置客户端流量" +"resetInboundClientTraffics" = "重置客户端流量" +"resetInboundClientTrafficTitle" = "重置所有客户端流量" +"resetInboundClientTrafficContent" = "您确定要重置此入站客户端的所有流量吗?" +"resetAllClientTraffics" = "重置所有客户端流量" "resetAllClientTrafficTitle" = "重置所有客户端流量" -"resetAllClientTrafficContent" = "您确定要重置此入站客户端的所有流量吗?" +"resetAllClientTrafficContent" = "你确定要重置所有客户端的所有流量吗?" "IPLimit" = "IP限制" "IPLimitDesc" = "如果超过输入的计数则禁用入站(0 表示禁用限制 ip)" "Email" = "电子邮件" @@ -151,7 +154,7 @@ "IPLimitlogDesc" = "IP 历史日志 (通过IP限制禁用inbound之前,需要清空日志)" "IPLimitlogclear" = "清除日志" "setDefaultCert" = "从面板设置证书" -"XTLSdec" = "Xray核心需要1.7.5及以下版本" +"XTLSdec" = "Xray核心需要1.7.5" "Realitydec" = "Xray核心需要1.8.0及以上版本" [pages.client] |
