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

Reply via email to