Removing a node via updateTree() would cause the selection to be lost temporary
which in turn via the selectionchange listener would select an
empty content.
Now we only set a content if we have a selection.
This fix a graphical glitch where a migrated VM would not be properly
re-selected at its new position in tree.

The bug was introduced by:
    Clear sensitive content when logging out fixes #1060
    192f1ad2827c895bfd91465dfa4d3537ce02e9d2
---
changes since V1:
 * move var definitions inside the selected.length test since they
  are not used otherwise

 www/manager6/Workspace.js | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/www/manager6/Workspace.js b/www/manager6/Workspace.js
index 8b7b239..06357a0 100644
--- a/www/manager6/Workspace.js
+++ b/www/manager6/Workspace.js
@@ -291,19 +291,17 @@ Ext.define('PVE.StdWorkspace', {
                selType: 'treemodel',
                listeners: {
                    selectionchange: function(sm, selected) {
-                       var comp;
-                       var tlckup = {
-                           root: 'PVE.dc.Config',
-                           node: 'PVE.node.Config',
-                           qemu: 'PVE.qemu.Config',
-                           lxc: 'PVE.lxc.Config',
-                           storage: 'PVE.storage.Browser',
-                           pool: 'pvePoolConfig'
-                       };
-                       
                        if (selected.length > 0) {
                            var n = selected[0];
-                           comp = {
+                           var tlckup = {
+                               root: 'PVE.dc.Config',
+                               node: 'PVE.node.Config',
+                               qemu: 'PVE.qemu.Config',
+                               lxc: 'PVE.lxc.Config',
+                               storage: 'PVE.storage.Browser',
+                               pool: 'pvePoolConfig'
+                           };
+                           var comp = {
                                xtype: tlckup[n.data.type || 'root'] || 
                                    'pvePanelConfig',
                                showSearch: (n.data.id === 'root') ||
@@ -313,9 +311,8 @@ Ext.define('PVE.StdWorkspace', {
                                viewFilter: selview.getViewFilter()
                            };
                            PVE.curSelectedNode = n;
+                           me.setContent(comp);
                        }
-
-                       me.setContent(comp);
                    }
                }
            }
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to