Second iteration of the WebUI Cluster Create, Join series[1]. Changes between v1 and v2 are described in each respective patch.
Look at [1] for the v1 cover letter. Dominik comments, and a bit more, should be addressed now. While 4/5 is not my ideal looking UI, it's simple and works, we can enhance it just fine later, so if the code is OK this could be committed now. NOTE: You'll still need to build widget toolkit from git and pve-cluster with my autoflush patch (not yet applied, pull it from pve-devel) on top. It work else too, but you won't get a really nice user experience when joining, without those. I included the full diff between this and the last version below inline, so that it should be very easy to see what changed. cheers, Thomas [1]: https://pve.proxmox.com/pipermail/pve-devel/2018-March/031293.html Thomas Lamprecht (5): dc: add simple cluster panel dc/Cluster: allow cluster create over WebUI dc/Cluster: allow to get join information ui: add cluster join window POC ui: silence auth failures during cluster join www/manager6/Makefile | 2 + www/manager6/Workspace.js | 2 +- www/manager6/dc/Cluster.js | 264 ++++++++++++++++++++++++++++++++++ www/manager6/dc/ClusterEdit.js | 311 +++++++++++++++++++++++++++++++++++++++++ www/manager6/dc/Config.js | 13 +- 5 files changed, 587 insertions(+), 5 deletions(-) create mode 100644 www/manager6/dc/Cluster.js create mode 100644 www/manager6/dc/ClusterEdit.js -- 2.14.2 -- $ git diff ui_cluster_addcreate_singlepanel diff --git a/www/manager6/dc/Cluster.js b/www/manager6/dc/Cluster.js index 11e24c66..b048f9bc 100644 --- a/www/manager6/dc/Cluster.js +++ b/www/manager6/dc/Cluster.js @@ -59,6 +59,7 @@ Ext.define('PVE.ClusterAdministration', { model: 'pve-cluster-info' }); view.store.on('load', this.onLoad, this); + view.on('destroy', view.store.stopUpdate); }, onLoad: function(store, records, success) { @@ -187,7 +188,7 @@ Ext.define('PVE.ClusterAdministration', { }, { xtype: 'displayfield', - value: gettext('No cluster configured'), + value: gettext('Standalone node - no cluster defined'), bind: { hidden: '{isInCluster}' }, @@ -202,20 +203,24 @@ Ext.define('PVE.ClusterAdministration', { xclass: 'Ext.app.ViewController', init: function(view) { - view.setStore(Ext.create('Proxmox.data.UpdateStore', { + view.rstore = Ext.create('Proxmox.data.UpdateStore', { autoLoad: true, xtype: 'update', interval: 5 * 1000, autoStart: true, storeid: 'pve-cluster-nodes', - model: 'pve-cluster-nodes', + model: 'pve-cluster-nodes' + }); + view.setStore(Ext.create('Proxmox.data.DiffStore', { + rstore: view.rstore, sorters: { property: 'nodeid', order: 'DESC' } })); + Proxmox.Utils.monStoreErrors(view, view.rstore); view.store.on('load', this.onLoad, this); - //Proxmox.Utils.monStoreErrors(view, view.getStore()); + view.on('destroy', view.rstore.stopUpdate); }, onLoad: function(store, records, success) { @@ -227,13 +232,6 @@ Ext.define('PVE.ClusterAdministration', { vm.set('nodecount', records.length); } }, - /*tbar: [ - { - text: gettext('Isolate Node'), - reference: 'isolateButton', - hidden: true // TODO - } - ],*/ columns: [ { header: gettext('Nodename'), diff --git a/www/manager6/dc/ClusterEdit.js b/www/manager6/dc/ClusterEdit.js index 81e6532d..bdf1ae69 100644 --- a/www/manager6/dc/ClusterEdit.js +++ b/www/manager6/dc/ClusterEdit.js @@ -17,6 +17,7 @@ Ext.define('PVE.ClusterCreateWindow', { { xtype: 'textfield', fieldLabel: gettext('Cluster Name'), + allowBlank: false, name: 'clustername' }, { @@ -37,6 +38,7 @@ Ext.define('PVE.ClusterInfoWindow', { width: 800, modal: true, + resizable: false, title: gettext('Cluster Join Information'), joinInfo: { _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel