diff --git a/ui/app.js b/ui/app.js index ae99a62..776a22c 100644 --- a/ui/app.js +++ b/ui/app.js @@ -42,6 +42,8 @@ const backendQueryRetryDelay = 2000; const maxTimeDiff = 30000; +const updateIndicatorMaxDisplayTime = 3000; + const mainTemplate = ` + @navigate-to="changeURLHash" + @tab-opened="tabOpened" + @tab-closed="tabClosed" + @tab-updated="tabUpdated" +> { + this.updateTabTitleInfo(tabs, false); + }, updateIndicatorMaxDisplayTime); } } }); diff --git a/ui/home.vue b/ui/home.vue index efe5687..d768044 100644 --- a/ui/home.vue +++ b/ui/home.vue @@ -440,6 +440,8 @@ export default { this.windows.connect = false; this.addToTab(data); + + this.$emit("tab-opened", this.tab.tabs); }, async addToTab(data) { await this.switchTab( @@ -498,6 +500,8 @@ export default { } this.removeFromTab(index); + + this.$emit("tab-closed", this.tab.tabs); }, tabStopped(index, reason) { if (reason === null) { @@ -507,7 +511,9 @@ export default { } }, tabUpdated(index) { - this.tab.tabs[index].indicator.updated = this.tab.current !== index; + this.$emit("tab-updated", this.tab.tabs); + + this.tab.tabs[index].indicator.updated = index !== this.tab.current; } } }; diff --git a/ui/widgets/tab_list.vue b/ui/widgets/tab_list.vue index 8918412..822be9c 100644 --- a/ui/widgets/tab_list.vue +++ b/ui/widgets/tab_list.vue @@ -25,7 +25,7 @@ :class="{ active: tab === idx, error: tabInfo.indicator.error.length > 0, - updated: tabInfo.indicator.updated + updated: tabInfo.indicator.updated && tab !== idx }" :style=" 'background: ' +