Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---

changes v1 -> v2:
* no need for join info window to be resizable (Dominik)

 www/manager6/dc/Cluster.js     | 20 +++++++++++
 www/manager6/dc/ClusterEdit.js | 77 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 97 insertions(+)

diff --git a/www/manager6/dc/Cluster.js b/www/manager6/dc/Cluster.js
index c38a2da5..8e955f76 100644
--- a/www/manager6/dc/Cluster.js
+++ b/www/manager6/dc/Cluster.js
@@ -102,6 +102,18 @@ Ext.define('PVE.ClusterAdministration', {
                            }
                        }
                    });
+               },
+
+               onClusterInfo: function() {
+                   var vm = this.getViewModel();
+                   var win = Ext.create('PVE.ClusterInfoWindow', {
+                       joinInfo: {
+                           ipAddress: vm.get('preferred_node.addr'),
+                           fingerprint: vm.get('preferred_node.fp'),
+                           totem: vm.get('totem')
+                       }
+                   });
+                   win.show();
                }
            },
            tbar: [
@@ -112,6 +124,14 @@ Ext.define('PVE.ClusterAdministration', {
                    bind: {
                        disabled: '{isInCluster}'
                    }
+               },
+               {
+                   text: gettext('Join Information'),
+                   reference: 'addButton',
+                   handler: 'onClusterInfo',
+                   bind: {
+                       disabled: '{!isInCluster}'
+                   }
                }
            ],
            layout: 'hbox',
diff --git a/www/manager6/dc/ClusterEdit.js b/www/manager6/dc/ClusterEdit.js
index cef35f7c..8d7843cb 100644
--- a/www/manager6/dc/ClusterEdit.js
+++ b/www/manager6/dc/ClusterEdit.js
@@ -30,3 +30,80 @@ Ext.define('PVE.ClusterCreateWindow', {
        // TODO: for advanced options: ring1_addr
     ]
 });
+
+Ext.define('PVE.ClusterInfoWindow', {
+    extend: 'Ext.window.Window',
+    xtype: 'pveClusterInfoWindow',
+    mixins: ['Proxmox.Mixin.CBind'],
+
+    width: 800,
+    modal: true,
+    resizable: false,
+    title: gettext('Cluster Join Information'),
+
+    joinInfo: {
+       ipAddress: undefined,
+       fingerprint: undefined,
+       totem: {}
+    },
+
+    items: [
+       {
+           xtype: 'component',
+           border: false,
+           padding: '10 10 10 10',
+           html: gettext("Copy the Join Information here and use it on the 
node you want to add.")
+       },
+       {
+           xtype: 'container',
+           layout: 'form',
+           border: false,
+           padding: '0 10 10 10',
+           items: [
+               {
+                   xtype: 'textfield',
+                   fieldLabel: gettext('IP Address'),
+                   cbind: { value: '{joinInfo.ipAddress}' },
+                   editable: false
+               },
+               {
+                   xtype: 'textfield',
+                   fieldLabel: gettext('Fingerprint'),
+                   cbind: { value: '{joinInfo.fingerprint}' },
+                   editable: false
+               },
+               {
+                   xtype: 'textarea',
+                   inputId: 'pveSerializedClusterInfo',
+                   fieldLabel: gettext('Join Information'),
+                   grow: true,
+                   cbind: { joinInfo: '{joinInfo}' },
+                   editable: false,
+                   listeners: {
+                       afterrender: function(field) {
+                           if (!field.joinInfo) {
+                               return;
+                           }
+                           var jsons = Ext.JSON.encode(field.joinInfo);
+                           var base64s = Ext.util.Base64.encode(jsons);
+                           field.setValue(base64s);
+                       }
+                   }
+               }
+           ]
+       }
+    ],
+    dockedItems: [{
+       dock: 'bottom',
+       xtype: 'toolbar',
+       items: [{
+           xtype: 'button',
+           handler: function(b) {
+               var el = document.getElementById('pveSerializedClusterInfo');
+               el.select();
+               document.execCommand("copy");
+           },
+           text: gettext('Copy Information')
+       }]
+    }]
+});
-- 
2.14.2


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

Reply via email to