--- www/manager/qemu/HDEdit.js | 152 +++++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 73 deletions(-)
diff --git a/www/manager/qemu/HDEdit.js b/www/manager/qemu/HDEdit.js index b8ca4e5..9677b83 100644 --- a/www/manager/qemu/HDEdit.js +++ b/www/manager/qemu/HDEdit.js @@ -1,3 +1,81 @@ +Ext.define('PVE.HDStorage', { statics: { + addStorageSelector: function(me, to, with_format) { + me.formatsel = Ext.create('PVE.form.DiskFormatSelector', { + name: 'diskformat', + fieldLabel: gettext('Format'), + value: 'qcow2', + allowBlank: false, + hidden: !with_format, + }); + + me.hdfilesel = Ext.create('PVE.form.FileSelector', { + name: 'hdimage', + nodename: me.nodename, + storageContent: 'images', + fieldLabel: gettext('Disk image'), + disabled: true, + hidden: true, + allowBlank: false + }); + + me.hdsizesel = Ext.createWidget('numberfield', { + name: 'disksize', + minValue: 0.001, + maxValue: 128*1024, + decimalPrecision: 3, + value: '32', + fieldLabel: gettext('Disk size') + ' (GB)', + allowBlank: false + }); + + me.hdstoragesel = Ext.create('PVE.form.StorageSelector', { + name: 'hdstorage', + nodename: me.nodename, + fieldLabel: gettext('Storage'), + storageContent: 'images', + autoSelect: me.insideWizard, + allowBlank: false, + listeners: { + change: function(f, value) { + var rec = f.store.getById(value); + if (rec.data.type === 'iscsi') { + me.hdfilesel.setStorage(value); + me.hdfilesel.setDisabled(false); + me.formatsel.setValue('raw'); + me.formatsel.setDisabled(true); + me.hdfilesel.setVisible(true); + me.hdsizesel.setDisabled(true); + me.hdsizesel.setVisible(false); + } else if (rec.data.type === 'lvm' || + rec.data.type === 'lvmthin' || + rec.data.type === 'rbd' || + rec.data.type === 'sheepdog' || + rec.data.type === 'zfs' || + rec.data.type === 'zfspool') { + me.hdfilesel.setDisabled(true); + me.hdfilesel.setVisible(false); + me.formatsel.setValue('raw'); + me.formatsel.setDisabled(true); + me.hdsizesel.setDisabled(false); + me.hdsizesel.setVisible(true); + } else { + me.hdfilesel.setDisabled(true); + me.hdfilesel.setVisible(false); + me.formatsel.setValue('qcow2'); + me.formatsel.setDisabled(false); + me.hdsizesel.setDisabled(false); + me.hdsizesel.setVisible(true); + } + } + } + }); + to.push(me.hdstoragesel); + to.push(me.hdfilesel); + to.push(me.hdsizesel); + to.push(me.formatsel); + } +}}); + // fixme: howto avoid jslint type confusion? /*jslint confusion: true */ Ext.define('PVE.qemu.HDInputPanel', { @@ -133,79 +211,7 @@ Ext.define('PVE.qemu.HDInputPanel', { }); me.column1.push(me.unusedDisks); } else if (me.create) { - me.formatsel = Ext.create('PVE.form.DiskFormatSelector', { - name: 'diskformat', - fieldLabel: gettext('Format'), - value: 'qcow2', - allowBlank: false - }); - - me.hdfilesel = Ext.create('PVE.form.FileSelector', { - name: 'hdimage', - nodename: me.nodename, - storageContent: 'images', - fieldLabel: gettext('Disk image'), - disabled: true, - hidden: true, - allowBlank: false - }); - - me.hdsizesel = Ext.createWidget('numberfield', { - name: 'disksize', - minValue: 0.001, - maxValue: 128*1024, - decimalPrecision: 3, - value: '32', - fieldLabel: gettext('Disk size') + ' (GB)', - allowBlank: false - }); - - me.hdstoragesel = Ext.create('PVE.form.StorageSelector', { - name: 'hdstorage', - nodename: me.nodename, - fieldLabel: gettext('Storage'), - storageContent: 'images', - autoSelect: me.insideWizard, - allowBlank: false, - listeners: { - change: function(f, value) { - var rec = f.store.getById(value); - if (rec.data.type === 'iscsi') { - me.hdfilesel.setStorage(value); - me.hdfilesel.setDisabled(false); - me.formatsel.setValue('raw'); - me.formatsel.setDisabled(true); - me.hdfilesel.setVisible(true); - me.hdsizesel.setDisabled(true); - me.hdsizesel.setVisible(false); - } else if (rec.data.type === 'lvm' || - rec.data.type === 'lvmthin' || - rec.data.type === 'rbd' || - rec.data.type === 'sheepdog' || - rec.data.type === 'zfs' || - rec.data.type === 'zfspool') { - me.hdfilesel.setDisabled(true); - me.hdfilesel.setVisible(false); - me.formatsel.setValue('raw'); - me.formatsel.setDisabled(true); - me.hdsizesel.setDisabled(false); - me.hdsizesel.setVisible(true); - } else { - me.hdfilesel.setDisabled(true); - me.hdfilesel.setVisible(false); - me.formatsel.setValue('qcow2'); - me.formatsel.setDisabled(false); - me.hdsizesel.setDisabled(false); - me.hdsizesel.setVisible(true); - } - } - } - }); - me.column1.push(me.hdstoragesel); - me.column1.push(me.hdfilesel); - me.column1.push(me.hdsizesel); - me.column1.push(me.formatsel); - + PVE.HDStorage.addStorageSelector(me, me.column1, true); } else { me.column1.push({ xtype: 'textfield', -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel