[pve-devel] [PATCH manager 3/5] dc/Cluster: allow to get join information
Dominik Csapak
d.csapak at proxmox.com
Tue Apr 3 10:16:25 CEST 2018
i guess it would be good to make this window non-resizable
because the fields do not really resize well
otherwise looks good
On 03/27/2018 03:45 PM, Thomas Lamprecht wrote:
> Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
> ---
> www/manager6/dc/Cluster.js | 20 +++++++++++
> www/manager6/dc/ClusterEdit.js | 76 ++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 96 insertions(+)
>
> diff --git a/www/manager6/dc/Cluster.js b/www/manager6/dc/Cluster.js
> index 97f7496d..ca43c8f9 100644
> --- a/www/manager6/dc/Cluster.js
> +++ b/www/manager6/dc/Cluster.js
> @@ -101,6 +101,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: [
> @@ -111,6 +123,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 0c44ec44..249801c3 100644
> --- a/www/manager6/dc/ClusterEdit.js
> +++ b/www/manager6/dc/ClusterEdit.js
> @@ -29,3 +29,79 @@ 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,
> + 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')
> + }]
> + }]
> +});
>
More information about the pve-devel
mailing list