[pve-devel] [PATCH manager 07/17] move lxc mountpoint edit from ResourceEdit.js to MPEdit.js

Dominik Csapak d.csapak at proxmox.com
Wed Jul 19 15:45:19 CEST 2017


to follow qemu code

also fix the jslint errors in MountPointInputPanel and MountPointEdit

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 www/manager6/Makefile            |   1 +
 www/manager6/lxc/MPEdit.js       | 395 +++++++++++++++++++++++++++++++++++++++
 www/manager6/lxc/ResourceEdit.js | 395 ---------------------------------------
 3 files changed, 396 insertions(+), 395 deletions(-)
 create mode 100644 www/manager6/lxc/MPEdit.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 573beb57..05113dda 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -173,6 +173,7 @@ JSSRC= 				                 	\
 	lxc/Snapshot.js					\
 	lxc/ResourceEdit.js				\
 	lxc/MPResize.js					\
+	lxc/MPEdit.js					\
 	pool/StatusView.js				\
 	pool/Summary.js					\
 	pool/Config.js					\
diff --git a/www/manager6/lxc/MPEdit.js b/www/manager6/lxc/MPEdit.js
new file mode 100644
index 00000000..1238d086
--- /dev/null
+++ b/www/manager6/lxc/MPEdit.js
@@ -0,0 +1,395 @@
+Ext.define('PVE.lxc.MountPointInputPanel', {
+    extend: 'PVE.panel.InputPanel',
+    alias: 'widget.pveLxcMountPointInputPanel',
+
+    insideWizard: false,
+
+    onlineHelp: 'pct_container_storage',
+
+    unused: false, // ADD usused disk imaged
+
+    vmconfig: {}, // used to select usused disks
+
+    onGetValues: function(values) {
+	var me = this;
+
+	var confid = me.confid || values.mpsel;
+
+	if (me.unused) {
+	    me.mpdata.file = me.vmconfig[values.unusedId];
+	    confid = values.mpsel;
+	} else if (me.isCreate) {
+	    me.mpdata.file = values.storage + ':' + values.disksize;
+	}
+
+	if (confid !== 'rootfs') {
+	    me.mpdata.mp = values.mp;
+	}
+
+	if (values.ro) {
+	    me.mpdata.ro = 1;
+	} else {
+	    delete me.mpdata.ro;
+	}
+
+	if (values.quota) {
+	    me.mpdata.quota = 1;
+	} else {
+	    delete me.mpdata.quota;
+	}
+
+	if (values.acl === 'Default') {
+	    delete me.mpdata.acl;
+	} else {
+	    me.mpdata.acl = values.acl;
+	}
+
+	if (values.backup) {
+	    me.mpdata.backup = 1;
+	} else {
+	    delete me.mpdata.backup;
+	}
+
+	if (values.noreplicate) {
+	    me.mpdata.replicate = '0';
+	}
+	delete me.mpdata.noreplicate;
+
+	var res = {};
+	res[confid] = PVE.Parser.printLxcMountPoint(me.mpdata);
+	return res;
+    },
+
+    setMountPoint: function(mp) {
+	var me = this;
+
+	me.mpdata = mp;
+	if (!Ext.isDefined(me.mpdata.acl)) {
+	    me.mpdata.acl = 'Default';
+	}
+
+	if (mp.type === 'bind') {
+	    me.quota.setDisabled(true);
+	    me.quota.setValue(false);
+	    me.acl.setDisabled(true);
+	    me.acl.setValue('Default');
+	    me.hdstoragesel.setDisabled(true);
+	    if (me.confid !== 'rootfs') {
+		me.backup.setDisabled(true);
+	    }
+	}
+
+	if (mp.replicate) { // check box reverses the config option
+	    mp.noreplicate = !PVE.Parser.parseBoolean(mp.replicate, 1);
+	    delete mp.replicate;
+	}
+
+	me.setValues(mp);
+    },
+
+    setVMConfig: function(vmconfig) {
+	var me = this;
+
+	me.vmconfig = vmconfig;
+
+	if (me.mpsel) {
+	    var i;
+	    for (i = 0; i != 8; ++i) {
+		var name = "mp" + i.toString();
+		if (!Ext.isDefined(vmconfig[name])) {
+		    me.mpsel.setValue(name);
+		    break;
+		}
+	    }
+	}
+
+	if (me.unusedDisks) {
+	    var disklist = [];
+	    Ext.Object.each(vmconfig, function(key, value) {
+		if (key.match(/^unused\d+$/)) {
+		    disklist.push([key, value]);
+		}
+	    });
+	    me.unusedDisks.store.loadData(disklist);
+	    me.unusedDisks.setValue(me.confid);
+	}
+    },
+
+    setNodename: function(nodename) {
+	var me = this;
+	me.hdstoragesel.setNodename(nodename);
+	me.hdfilesel.setStorage(undefined, nodename);
+    },
+
+    initComponent : function() {
+	var me = this;
+
+	var isroot = me.confid === 'rootfs';
+
+	me.mpdata = {};
+
+	me.column1 = [];
+
+	if (!me.confid || me.unused) {
+	    var names = [];
+	    var i;
+	    for (i = 0; i != 8; ++i) {
+		var name = 'mp' + i.toString();
+		names.push([name, name]);
+	    }
+	    me.mpsel = Ext.create('PVE.form.KVComboBox', {
+		name: 'mpsel',
+		fieldLabel: gettext('Mount Point'),
+		matchFieldWidth: false,
+		allowBlank: false,
+		comboItems: names,
+		validator: function(value) {
+		    if (!me.rendered) {
+			return;
+		    }
+		    if (Ext.isDefined(me.vmconfig[value])) {
+			return "Mount point is already in use.";
+		    }
+		    /*jslint confusion: true*/
+		    return true;
+		},
+		listeners: {
+		    change: function(field, value) {
+			field.validate();
+		    }
+		}
+	    });
+	    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',
+	    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);
+		    }
+		}
+	    }
+	});
+	me.column1.push(me.hdstoragesel);
+
+	if (me.unused) {
+	    me.unusedDisks = Ext.create('PVE.form.KVComboBox', {
+		name: 'unusedId',
+		fieldLabel: gettext('Disk image'),
+		matchFieldWidth: false,
+		listConfig: {
+		    width: 350
+		},
+		data: [],
+		allowBlank: false,
+		listeners: {
+		    change: function(f, value) {
+			// make sure our buttons are enabled/disabled when switching
+			// between images on different storages:
+			var disk = me.vmconfig[value];
+			var storage = disk.split(':')[0];
+			me.hdstoragesel.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 {
+	    me.column1.push({
+		xtype: 'textfield',
+		disabled: true,
+		submitValue: false,
+		fieldLabel: gettext('Disk image'),
+		name: 'file'
+	    });
+	}
+
+	me.acl = Ext.createWidget('pveKVComboBox', {
+	    name: 'acl',
+	    fieldLabel: gettext('ACLs'),
+	    comboItems: [['Default', 'Default'], ['1', 'On'], ['0', 'Off']],
+	    value: 'Default',
+	    allowBlank: true
+	});
+
+	me.quota = Ext.createWidget('pvecheckbox', {
+	    name: 'quota',
+	    defaultValue: 0,
+	    fieldLabel: gettext('Enable quota')
+	});
+
+	me.column2 = [
+	    me.acl,
+	    me.quota
+	];
+
+	if (!isroot) {
+	    me.column2.splice(1, 0, {
+		xtype: 'pvecheckbox',
+		name: 'ro',
+		defaultValue: 0,
+		fieldLabel: gettext('Read-only'),
+		hidden: me.insideWizard
+	    });
+
+	    me.backup = Ext.createWidget('pvecheckbox',{
+		xtype: 'pvecheckbox',
+		name: 'backup',
+		fieldLabel: gettext('Backup')
+	    });
+	    if (me.mpdata.type !== 'bind') {
+		me.column2.push(me.backup);
+	    }
+	    me.column2.push({
+		xtype: 'pvecheckbox',
+		name: 'noreplicate',
+		fieldLabel: gettext('Skip replication')
+	    });
+	    me.column2.push({
+		xtype: 'textfield',
+		name: 'mp',
+		value: '',
+		emptyText:  gettext('/some/path'),
+		allowBlank: false,
+		hidden: isroot,
+		fieldLabel: gettext('Path')
+	    });
+	}
+
+	me.callParent();
+    }
+});
+
+Ext.define('PVE.lxc.MountPointEdit', {
+    extend: 'PVE.window.Edit',
+
+    initComponent : function() {
+	var me = this;
+
+	var nodename = me.pveSelNode.data.node;
+	if (!nodename) {
+	    throw "no node name specified";
+	}
+
+	var unused = me.confid && me.confid.match(/^unused\d+$/);
+
+	me.isCreate = me.confid ? unused : true;
+
+	var ipanel = Ext.create('PVE.lxc.MountPointInputPanel', {
+	    confid: me.confid,
+	    nodename: nodename,
+	    unused: unused,
+	    isCreate: me.isCreate
+	});
+
+	var subject;
+	if (unused) {
+	    subject = gettext('Unused Disk');
+	} else if (me.isCreate) {
+	    subject = gettext('Mount Point');
+	} else {
+	    subject = gettext('Mount Point') + ' (' + me.confid + ')';
+	}
+
+	Ext.apply(me, {
+	    subject: subject,
+	    items: ipanel
+	});
+
+	me.callParent();
+
+	me.load({
+	    success: function(response, options) {
+		ipanel.setVMConfig(response.result.data);
+		if (me.confid) {
+		    var value = response.result.data[me.confid.toString()];
+		    var mp = PVE.Parser.parseLxcMountPoint(value);
+
+		    if (!mp) {
+			Ext.Msg.alert(gettext('Error'), 'Unable to parse mount point options');
+			me.close();
+			return;
+		    }
+
+		    ipanel.setMountPoint(mp);
+		    me.isValid(); // trigger validation
+		}
+	    }
+	});
+    }
+});
diff --git a/www/manager6/lxc/ResourceEdit.js b/www/manager6/lxc/ResourceEdit.js
index 9efb5116..6bd35e8a 100644
--- a/www/manager6/lxc/ResourceEdit.js
+++ b/www/manager6/lxc/ResourceEdit.js
@@ -36,65 +36,6 @@ Ext.define('PVE.lxc.CPUEdit', {
     }
 });
 
-Ext.define('PVE.lxc.MountPointEdit', {
-    extend: 'PVE.window.Edit',
-
-    initComponent : function() {
-	var me = this;
-
-	var nodename = me.pveSelNode.data.node;
-	if (!nodename) {
-	    throw "no node name specified";
-	}
-
-	var unused = me.confid && me.confid.match(/^unused\d+$/);
-
-	me.isCreate = me.confid ? unused : true;
-
-	var ipanel = Ext.create('PVE.lxc.MountPointInputPanel', {
-	    confid: me.confid,
-	    nodename: nodename,
-	    unused: unused,
-	    isCreate: me.isCreate
-	});
-
-	var subject;
-	if (unused) {
-	    subject = gettext('Unused Disk');
-	} else if (me.isCreate) {
-	    subject = gettext('Mount Point');
-	} else {
-	    subject = gettext('Mount Point') + ' (' + me.confid + ')';
-	}
-
-	Ext.apply(me, {
-	    subject: subject,
-	    items: ipanel
-	});
-
-	me.callParent();
-
-	me.load({
-	    success: function(response, options) {
-		ipanel.setVMConfig(response.result.data);
-		if (me.confid) {
-		    var value = response.result.data[me.confid];
-		    var mp = PVE.Parser.parseLxcMountPoint(value);
-
-		    if (!mp) {
-			Ext.Msg.alert(gettext('Error'), 'Unable to parse mount point options');
-			me.close();
-			return;
-		    }
-
-		    ipanel.setMountPoint(mp);
-		    me.isValid(); // trigger validation
-		}
-	    }
-	});
-    }
-});
-
 Ext.define('PVE.lxc.CPUInputPanel', {
     extend: 'PVE.panel.InputPanel',
     alias: 'widget.pveLxcCPUInputPanel',
@@ -210,339 +151,3 @@ Ext.define('PVE.lxc.MemoryInputPanel', {
 	me.callParent();
     }
 });
-
-Ext.define('PVE.lxc.MountPointInputPanel', {
-    extend: 'PVE.panel.InputPanel',
-    alias: 'widget.pveLxcMountPointInputPanel',
-
-    insideWizard: false,
-
-    onlineHelp: 'pct_container_storage',
-
-    unused: false, // ADD usused disk imaged
-
-    vmconfig: {}, // used to select usused disks
-
-    onGetValues: function(values) {
-	var me = this;
-
-	var confid = me.confid || values.mpsel;
-
-	if (me.unused) {
-	    me.mpdata.file = me.vmconfig[values.unusedId];
-	    confid = values.mpsel;
-	} else if (me.isCreate) {
-	    me.mpdata.file = values.storage + ':' + values.disksize;
-	}
-
-	if (confid !== 'rootfs') {
-	    me.mpdata.mp = values.mp;
-	}
-
-	if (values.ro) {
-	    me.mpdata.ro = 1;
-	} else {
-	    delete me.mpdata.ro;
-	}
-
-	if (values.quota) {
-	    me.mpdata.quota = 1;
-	} else {
-	    delete me.mpdata.quota;
-	}
-
-	if (values.acl === 'Default') {
-	    delete me.mpdata.acl;
-	} else {
-	    me.mpdata.acl = values.acl;
-	}
-
-	if (values.backup) {
-	    me.mpdata.backup = 1;
-	} else {
-	    delete me.mpdata.backup;
-	}
-
-	if (values.noreplicate) {
-	    me.mpdata.replicate = '0';
-	}
-	delete me.mpdata.noreplicate;
-
-	var res = {};
-	res[confid] = PVE.Parser.printLxcMountPoint(me.mpdata);
-	return res;
-    },
-
-    setMountPoint: function(mp) {
-	var me = this;
-
-	me.mpdata = mp;
-	if (!Ext.isDefined(me.mpdata.acl)) {
-	    me.mpdata.acl = 'Default';
-	}
-
-	if (mp.type === 'bind') {
-	    me.quota.setDisabled(true);
-	    me.quota.setValue(false);
-	    me.acl.setDisabled(true);
-	    me.acl.setValue('Default');
-	    me.hdstoragesel.setDisabled(true);
-	    if (me.confid !== 'rootfs') {
-		me.backup.setDisabled(true);
-	    }
-	}
-
-	if (mp.replicate) { // check box reverses the config option
-	    mp.noreplicate = !PVE.Parser.parseBoolean(mp.replicate, 1);
-	    delete mp.replicate;
-	}
-
-	me.setValues(mp);
-    },
-
-    setVMConfig: function(vmconfig) {
-	var me = this;
-
-	me.vmconfig = vmconfig;
-
-	if (me.mpsel) {
-	    var i;
-	    for (i = 0; i != 8; ++i) {
-		var name = "mp" + i;
-		if (!Ext.isDefined(vmconfig[name])) {
-		    me.mpsel.setValue(name);
-		    break;
-		}
-	    }
-	}
-
-	if (me.unusedDisks) {
-	    var disklist = [];
-	    Ext.Object.each(vmconfig, function(key, value) {
-		if (key.match(/^unused\d+$/)) {
-		    disklist.push([key, value]);
-		}
-	    });
-	    me.unusedDisks.store.loadData(disklist);
-	    me.unusedDisks.setValue(me.confid);
-	}
-    },
-
-    setNodename: function(nodename) {
-	var me = this;
-	me.hdstoragesel.setNodename(nodename);
-	me.hdfilesel.setStorage(undefined, nodename);
-    },
-
-    initComponent : function() {
-	var me = this;
-
-	var isroot = me.confid === 'rootfs';
-
-	me.mpdata = {};
-
-	me.column1 = [];
-
-	if (!me.confid || me.unused) {
-	    var names = [];
-	    var i;
-	    for (i = 0; i != 8; ++i) {
-		var name = 'mp' + i;
-		names.push([name, name]);
-	    }
-	    me.mpsel = Ext.create('PVE.form.KVComboBox', {
-		name: 'mpsel',
-		fieldLabel: gettext('Mount Point'),
-		matchFieldWidth: false,
-		allowBlank: false,
-		comboItems: names,
-		validator: function(value) {
-		    if (!me.rendered) {
-			return;
-		    }
-		    if (Ext.isDefined(me.vmconfig[value])) {
-			return "Mount point is already in use.";
-		    }
-		    return true;
-		},
-		listeners: {
-		    change: function(field, value) {
-			field.validate();
-		    }
-		}
-	    });
-	    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',
-	    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);
-		    }
-		}
-	    }
-	});
-	me.column1.push(me.hdstoragesel);
-
-	if (me.unused) {
-	    me.unusedDisks = Ext.create('PVE.form.KVComboBox', {
-		name: 'unusedId',
-		fieldLabel: gettext('Disk image'),
-		matchFieldWidth: false,
-		listConfig: {
-		    width: 350
-		},
-		data: [],
-		allowBlank: false,
-		listeners: {
-		    change: function(f, value) {
-			// make sure our buttons are enabled/disabled when switching
-			// between images on different storages:
-			var disk = me.vmconfig[value];
-			var storage = disk.split(':')[0];
-			me.hdstoragesel.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 {
-	    me.column1.push({
-		xtype: 'textfield',
-		disabled: true,
-		submitValue: false,
-		fieldLabel: gettext('Disk image'),
-		name: 'file'
-	    });
-	}
-
-	me.acl = Ext.createWidget('pveKVComboBox', {
-	    name: 'acl',
-	    fieldLabel: gettext('ACLs'),
-	    comboItems: [['Default', 'Default'], ['1', 'On'], ['0', 'Off']],
-	    value: 'Default',
-	    allowBlank: true
-	});
-
-	me.quota = Ext.createWidget('pvecheckbox', {
-	    name: 'quota',
-	    defaultValue: 0,
-	    fieldLabel: gettext('Enable quota')
-	});
-
-	me.column2 = [
-	    me.acl,
-	    me.quota
-	];
-
-	if (!isroot) {
-	    me.column2.splice(1, 0, {
-		xtype: 'pvecheckbox',
-		name: 'ro',
-		defaultValue: 0,
-		fieldLabel: gettext('Read-only'),
-		hidden: me.insideWizard
-	    });
-
-	    me.backup = Ext.createWidget('pvecheckbox',{
-		xtype: 'pvecheckbox',
-		name: 'backup',
-		fieldLabel: gettext('Backup')
-	    });
-	    if (me.mpdata.type !== 'bind') {
-		me.column2.push(me.backup);
-	    }
-	    me.column2.push({
-		xtype: 'pvecheckbox',
-		name: 'noreplicate',
-		fieldLabel: gettext('Skip replication')
-	    });
-	    me.column2.push({
-		xtype: 'textfield',
-		name: 'mp',
-		value: '',
-		emptyText:  gettext('/some/path'),
-		allowBlank: false,
-		hidden: isroot,
-		fieldLabel: gettext('Path')
-	    });
-	}
-
-	me.callParent();
-    }
-});
-- 
2.11.0





More information about the pve-devel mailing list