From 735df6bd4ed18d656355067826a6f5e50495c63e Mon Sep 17 00:00:00 2001
From: MHSanaei <ho3ein.sanaei@gmail.com>
Date: Sat, 6 May 2023 19:20:42 +0330
Subject: [PATCH] [feature] inbounds manual refresh

Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
---
 web/html/xui/inbounds.html | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/web/html/xui/inbounds.html b/web/html/xui/inbounds.html
index e697b8a1..2792eb75 100644
--- a/web/html/xui/inbounds.html
+++ b/web/html/xui/inbounds.html
@@ -99,7 +99,7 @@
                                               :dropdown-class-name="siderDrawer.isDarkTheme ? 'ant-card-dark' : ''">
                                         <a-select-option v-for="key in [5,10,30,60]" :value="key*1000">[[ key ]]s</a-select-option>
                                     </a-select>
-                                    <a-icon type="sync" :spin="isRefreshEnabled" style="margin: 0 5px;"></a-icon>
+                                    <a-icon type="sync" :spin="refreshing" @click="manualRefresh" style="margin: 0 5px;"></a-icon>
                                     <a-switch v-model="isRefreshEnabled" @change="toggleRefresh"></a-switch>
                                 </a-col>
                             </a-row>
@@ -331,6 +331,7 @@
             defaultKey: '',
             clientCount: {},
             isRefreshEnabled: localStorage.getItem("isRefreshEnabled") === "true" ? true : false,
+            refreshing: false,
             refreshInterval: Number(localStorage.getItem("refreshInterval")) || 5000,
         },
         methods: {
@@ -338,11 +339,13 @@
                 this.spinning = spinning;
             },
             async getDBInbounds() {
+                this.refreshing = true;
                 const msg = await HttpUtil.post('/xui/inbound/list');
                 if (!msg.success) {
                     return;
                 }
                 this.setInbounds(msg.obj);
+                this.refreshing = false;
             },
             async getDefaultSettings() {
                 const msg = await HttpUtil.post('/xui/setting/defaultSettings');
@@ -818,6 +821,13 @@
             changeRefreshInterval(){
                 localStorage.setItem("refreshInterval", this.refreshInterval);
             },
+            async manualRefresh(){
+                if(!this.refreshing){
+                    this.spinning = true;
+                    await this.getDBInbounds();
+                    this.spinning = false;
+                }
+            },
         },
         watch: {
             searchKey: debounce(function (newVal) {