[pve-devel] [PATCH manager 12/17] use DiskStorageSelector in lxc/MPEdit.js
Emmanuel Kasper
e.kasper at proxmox.com
Wed Aug 30 15:04:14 CEST 2017
patches 7 to 12 tested OK, looks good to me
On 07/19/2017 03:45 PM, Dominik Csapak wrote:
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
> www/manager6/lxc/MPEdit.js | 119 ++++++++++++---------------------------------
> 1 file changed, 32 insertions(+), 87 deletions(-)
>
> diff --git a/www/manager6/lxc/MPEdit.js b/www/manager6/lxc/MPEdit.js
> index 1238d086..eaab0193 100644
> --- a/www/manager6/lxc/MPEdit.js
> +++ b/www/manager6/lxc/MPEdit.js
> @@ -19,7 +19,7 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
> me.mpdata.file = me.vmconfig[values.unusedId];
> confid = values.mpsel;
> } else if (me.isCreate) {
> - me.mpdata.file = values.storage + ':' + values.disksize;
> + me.mpdata.file = values.hdstorage + ':' + values.disksize;
> }
>
> if (confid !== 'rootfs') {
> @@ -63,6 +63,11 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
> setMountPoint: function(mp) {
> var me = this;
>
> + // the fields name is 'hdstorage',
> + // but the api expects/has 'storage'
> + mp.hdstorage = mp.storage;
> + delete mp.hdstorage;
> +
> me.mpdata = mp;
> if (!Ext.isDefined(me.mpdata.acl)) {
> me.mpdata.acl = 'Default';
> @@ -73,7 +78,7 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
> me.quota.setValue(false);
> me.acl.setDisabled(true);
> me.acl.setValue('Default');
> - me.hdstoragesel.setDisabled(true);
> + me.down('#hdstorage').setDisabled(true);
> if (me.confid !== 'rootfs') {
> me.backup.setDisabled(true);
> }
> @@ -117,8 +122,8 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
>
> setNodename: function(nodename) {
> var me = this;
> - me.hdstoragesel.setNodename(nodename);
> - me.hdfilesel.setStorage(undefined, nodename);
> + me.down('#hdstorage').setNodename(nodename);
> + me.down('#hdimage').setStorage(undefined, nodename);
> },
>
> initComponent : function() {
> @@ -162,69 +167,13 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
> me.column1.push(me.mpsel);
> }
>
> - // we always have this around, but only visible when creating a new mp
> - // since this handles per-filesystem capabilities
> - me.hdstoragesel = Ext.create('PVE.form.StorageSelector', {
> - name: 'storage',
> + me.column1.push({
> + xtype: 'pveDiskStorageSelector',
> nodename: me.nodename,
> - fieldLabel: gettext('Storage'),
> storageContent: 'rootdir',
> - allowBlank: false,
> autoSelect: true,
> - hidden: me.unused || !me.isCreate,
> - listeners: {
> - change: function(f, value) {
> - if (!value) { // initial store loading fires an unwanted 'change'
> - return;
> - }
> - if (me.mpdata.type === 'bind') {
> - me.quota.setDisabled(true);
> - me.quota.setValue(false);
> - me.acl.setDisabled(true);
> - me.acl.setValue('Default');
> - if (!isroot) {
> - me.backup.setDisabled(true);
> - }
> - return;
> - }
> - var rec = f.store.getById(value);
> - if (rec &&
> - (rec.data.type === 'zfs' ||
> - rec.data.type === 'zfspool')) {
> - me.quota.setDisabled(true);
> - me.quota.setValue(false);
> - } else {
> - me.quota.setDisabled(false);
> - }
> - if (me.unused || !me.isCreate) {
> - return;
> - }
> - if (rec.data.type === 'iscsi') {
> - me.hdfilesel.setStorage(value);
> - me.hdfilesel.setDisabled(false);
> - 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.hdsizesel.setDisabled(false);
> - me.hdsizesel.setVisible(true);
> - } else {
> - me.hdfilesel.setDisabled(true);
> - me.hdfilesel.setVisible(false);
> - me.hdsizesel.setDisabled(false);
> - me.hdsizesel.setVisible(true);
> - }
> - }
> - }
> + hidden: me.unused || !me.isCreate
> });
> - me.column1.push(me.hdstoragesel);
>
> if (me.unused) {
> me.unusedDisks = Ext.create('PVE.form.KVComboBox', {
> @@ -242,34 +191,12 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
> // between images on different storages:
> var disk = me.vmconfig[value];
> var storage = disk.split(':')[0];
> - me.hdstoragesel.setValue(storage);
> + me.down('#hdstorage').setValue(storage);
> }
> }
> });
> me.column1.push(me.unusedDisks);
> - } else if (me.isCreate) {
> - me.hdfilesel = Ext.create('PVE.form.FileSelector', {
> - name: 'file',
> - nodename: me.nodename,
> - storageContent: 'images',
> - fieldLabel: gettext('Disk image'),
> - disabled: true,
> - hidden: true,
> - allowBlank: false
> - });
> - me.hdsizesel = Ext.createWidget('numberfield', {
> - name: 'disksize',
> - minValue: 0.1,
> - maxValue: 128*1024,
> - decimalPrecision: 3,
> - value: '8',
> - step: 1,
> - fieldLabel: gettext('Disk size') + ' (GB)',
> - allowBlank: false
> - });
> - me.column1.push(me.hdfilesel);
> - me.column1.push(me.hdsizesel);
> - } else {
> + } else if (!me.isCreate) {
> me.column1.push({
> xtype: 'textfield',
> disabled: true,
> @@ -332,6 +259,24 @@ Ext.define('PVE.lxc.MountPointInputPanel', {
> }
>
> me.callParent();
> +
> + if (me.unused || me.isCreate) {
> + me.mon(me.down('#hdstorage'), 'change', function(field, newValue) {
> + if (!newValue) {
> + return;
> + }
> + var rec = field.store.getById(newValue);
> + if (!rec) {
> + return;
> + }
> + if (rec.data.type === 'zfs' || rec.data.type === 'zfspool') {
> + me.quota.setDisabled(true);
> + me.quota.setValue(false);
> + } else {
> + me.quota.setDisabled(false);
> + }
> + });
> + }
> }
> });
>
>
More information about the pve-devel
mailing list