Browse Source

[feature] inbounds manual refresh

Co-Authored-By: Alireza Ahmadi <[email protected]>
MHSanaei 1 year ago
parent
commit
735df6bd4e
1 changed files with 11 additions and 1 deletions
  1. 11 1
      web/html/xui/inbounds.html

+ 11 - 1
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) {