From 5a9470f5dd34ec70f1fdd77a5e457f3996e0421c Mon Sep 17 00:00:00 2001 From: Anton Date: Thu, 4 May 2023 14:02:04 +0200 Subject: [PATCH] Fix navigator update [SCI-8390] --- app/assets/javascripts/projects/canvas.js.erb | 1 + app/assets/javascripts/projects/show.js | 1 + app/javascript/vue/navigation/navigator_item.vue | 11 ++++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/projects/canvas.js.erb b/app/assets/javascripts/projects/canvas.js.erb index 8ec510206..93f28c598 100644 --- a/app/assets/javascripts/projects/canvas.js.erb +++ b/app/assets/javascripts/projects/canvas.js.erb @@ -148,6 +148,7 @@ function init() { initializeGraph(".diagram .module-large"); initializeFullZoom(); } + window.navigatorContainer.reloadChildrenLevel = true; } jsPlumb.ready(function () { diff --git a/app/assets/javascripts/projects/show.js b/app/assets/javascripts/projects/show.js index 664084138..9ef89b9cc 100644 --- a/app/assets/javascripts/projects/show.js +++ b/app/assets/javascripts/projects/show.js @@ -119,6 +119,7 @@ function refreshCurrentView() { loadCardsView(); + window.navigatorContainer.reloadChildrenLevel = true; } function selectDate($field) { diff --git a/app/javascript/vue/navigation/navigator_item.vue b/app/javascript/vue/navigation/navigator_item.vue index 3378a8557..b141211d9 100644 --- a/app/javascript/vue/navigation/navigator_item.vue +++ b/app/javascript/vue/navigation/navigator_item.vue @@ -44,12 +44,13 @@ export default { data: function() { return { childrenExpanded: false, + childrenLoaded: false, children: [] }; }, computed: { hasChildren: function() { - return this.item.has_children; + return this.item.has_children || this.children.length > 0; }, sortedMenuItems: function() { return this.children.sort((a, b) => { @@ -93,6 +94,13 @@ export default { if (this.reloadCurrentLevel && this.children.find((item) => item.id == this.currentItemId)) { this.loadChildren(); } + }, + children: function() { + if (this.children.length > 0) { + this.childrenExpanded = true; + } else if (this.childrenLoaded) { + this.item.has_children = false; + } } }, methods: { @@ -103,6 +111,7 @@ export default { loadChildren: function() { $.get(this.item.children_url, {archived: this.archived}, (data) => { this.children = data.items; + this.childrenLoaded = true; }); }, treeExpand: function() {