[pve-devel] [PATCH manager 1/2] ui: ceph: differentiate between install & configure only
Tim Marx
t.marx at proxmox.com
Fri Mar 29 12:42:43 CET 2019
Signed-off-by: Tim Marx <t.marx at proxmox.com>
---
www/manager6/Utils.js | 2 ++
www/manager6/ceph/CephInstallWizard.js | 12 +++++++++---
www/manager6/window/CephInstall.js | 28 +++++++++++++++++++++++-----
3 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index d8e6f275..ffa6970a 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1138,9 +1138,11 @@ Ext.define('PVE.Utils', { utilities: {
if (Proxmox.UserName === 'root at pam') {
container.el.mask();
if (!container.down('pveCephInstallWindow')){
+ var isInstalled = msg.match(/not initialized/i) ? true : false;
var win = Ext.create('PVE.ceph.Install', {
nodename: nodename
});
+ win.getViewModel().set('isInstalled', isInstalled);
container.add(win);
win.show();
callback(win);
diff --git a/www/manager6/ceph/CephInstallWizard.js b/www/manager6/ceph/CephInstallWizard.js
index 968b1294..a9ab0c24 100644
--- a/www/manager6/ceph/CephInstallWizard.js
+++ b/www/manager6/ceph/CephInstallWizard.js
@@ -8,13 +8,14 @@ Ext.define('PVE.ceph.CephInstallWizard', {
viewModel: {
data: {
nodename: '',
- configuration: true
+ configuration: true,
+ isInstalled: false
}
},
cbindData: {
nodename: undefined
},
- title: gettext('Installation'),
+ title: gettext('Setup'),
navigateNext: function() {
var tp = this.down('#wizcontent');
var atab = tp.getActiveTab();
@@ -63,10 +64,15 @@ Ext.define('PVE.ceph.CephInstallWizard', {
cbind:{
nodename: '{nodename}'
},
+ viewModel: {}, // needed to inherit parent viewModel data
listeners: {
afterrender: function() {
var me = this;
- me.down('pveNoVncConsole').fireEvent('activate');
+ if (this.getViewModel().get('isInstalled')) {
+ this.mask("Ceph is already installed, click next to create your configuration.",['pve-static-mask']);
+ } else {
+ me.down('pveNoVncConsole').fireEvent('activate');
+ }
},
activate: function() {
var me = this;
diff --git a/www/manager6/window/CephInstall.js b/www/manager6/window/CephInstall.js
index cd38dd0b..bb5046a6 100644
--- a/www/manager6/window/CephInstall.js
+++ b/www/manager6/window/CephInstall.js
@@ -22,20 +22,36 @@ Ext.define('PVE.ceph.Install', {
type: 'vbox'
},
viewModel: {
- parent: null,
data: {
- cephVersion: 'luminous'
+ cephVersion: 'luminous',
+ isInstalled: false
},
formulas: {
buttonText: function (get){
- return gettext('Install Ceph-') + get('cephVersion');
+ if (get('isInstalled')) {
+ return gettext('Configure Ceph');
+ } else {
+ return gettext('Install Ceph-') + get('cephVersion');
+ }
+ },
+ windowText: function (get) {
+ if (get('isInstalled')) {
+ return '<p class="install-mask">' +
+ Ext.String.format(gettext('{0} is not initialized.'), 'Ceph') + ' '+
+ gettext('You need to create a initial config once.') + '</p>';
+ } else {
+ return '<p class="install-mask">' +
+ Ext.String.format(gettext('{0} is not installed on this node.'), 'Ceph') + '<br>' +
+ gettext('Would you like to install it now?') + '</p>';
+ }
}
}
},
items: [
{
- html: '<p class="install-mask">' + Ext.String.format(gettext('{0} is not installed on this node.'), 'Ceph') + '<br>' +
- gettext('Would you like to install it now?') + '</p>',
+ bind: {
+ html: '{windowText}'
+ },
border: false,
padding: 5,
bodyCls: 'install-mask'
@@ -46,6 +62,7 @@ Ext.define('PVE.ceph.Install', {
bind: {
text: '{buttonText}'
},
+ viewModel: {},
cbind: {
nodename: '{nodename}'
},
@@ -54,6 +71,7 @@ Ext.define('PVE.ceph.Install', {
var win = Ext.create('PVE.ceph.CephInstallWizard',{
nodename: me.nodename
});
+ win.getViewModel().set('isInstalled', this.getViewModel().get('isInstalled'));
win.show();
me.mon(win,'beforeClose', function(){
me.fireEvent("cephInstallWindowClosed");
--
2.11.0
More information about the pve-devel
mailing list