[pve-devel] r6229 - in pve-manager/pve2: . www/manager/form www/manager/qemu
svn-commits at proxmox.com
svn-commits at proxmox.com
Mon Jul 4 13:59:19 CEST 2011
Author: dietmar
Date: 2011-07-04 13:59:19 +0200 (Mon, 04 Jul 2011)
New Revision: 6229
Modified:
pve-manager/pve2/ChangeLog
pve-manager/pve2/www/manager/form/BusTypeSelector.js
pve-manager/pve2/www/manager/qemu/HardwareView.js
Log:
* www/manager/form/BusTypeSelector.js: add noVirtIO, noScsi options.
* www/manager/qemu/HardwareView.js: impl. add cdrom, cleanup code,
impl. remove
Modified: pve-manager/pve2/ChangeLog
===================================================================
--- pve-manager/pve2/ChangeLog 2011-07-04 08:50:44 UTC (rev 6228)
+++ pve-manager/pve2/ChangeLog 2011-07-04 11:59:19 UTC (rev 6229)
@@ -1,3 +1,10 @@
+2011-07-04 Proxmox Support Team <support at proxmox.com>
+
+ * www/manager/form/BusTypeSelector.js: add noVirtIO, noScsi options.
+
+ * www/manager/qemu/HardwareView.js: impl. add cdrom, cleanup code,
+ impl. remove
+
2011-07-01 Seth Lauzon <seth.lauzon at gmail.com>
* www/manager/UserView.js: add modify functionality and disallow
Modified: pve-manager/pve2/www/manager/form/BusTypeSelector.js
===================================================================
--- pve-manager/pve2/www/manager/form/BusTypeSelector.js 2011-07-04 08:50:44 UTC (rev 6228)
+++ pve-manager/pve2/www/manager/form/BusTypeSelector.js 2011-07-04 11:59:19 UTC (rev 6229)
@@ -5,13 +5,17 @@
initComponent: function() {
var me = this;
+ var data = [['ide', 'IDE']];
+
+ if (!me.noVirtIO)
+ data.push(['virtio', 'VIRTIO']);
+
+ if (!me.noScsi)
+ data.push(['scsi', 'SCSI']);
+
var store = Ext.create('Ext.data.ArrayStore', {
model: 'KeyValue',
- data : [
- ['ide', 'IDE'],
- ['virtio', 'VIRTIO'],
- ['scsi', 'SCSI']
- ]
+ data : data
});
Ext.apply(me, {
Modified: pve-manager/pve2/www/manager/qemu/HardwareView.js
===================================================================
--- pve-manager/pve2/www/manager/qemu/HardwareView.js 2011-07-04 08:50:44 UTC (rev 6228)
+++ pve-manager/pve2/www/manager/qemu/HardwareView.js 2011-07-04 11:59:19 UTC (rev 6229)
@@ -4,11 +4,11 @@
submit: function(formpanel) {
var me = this;
- var field = me.down('field[name=_cache]');
+ var field = me.down('field[name=cache]');
var value = field.getValue();
me.drive.cache = value ? value : undefined;
- field = me.down('field[name=_nobackup]');
+ field = me.down('field[name=nobackup]');
value = field.getValue();
me.drive.backup = value ? 'no' : undefined;
@@ -44,21 +44,21 @@
{
xtype: 'displayfield',
fieldLabel: 'Image',
- name: '_file'
+ name: 'file'
}
];
me.column2 = [
{
xtype: 'CacheTypeSelector',
- name: '_cache',
+ name: 'cache',
value: '',
fieldLabel: 'Cache',
},
{
xtype: 'pvecheckbox',
fieldLabel: 'No backup',
- name: '_nobackup'
+ name: 'nobackup'
}
];
@@ -81,16 +81,16 @@
return;
}
- var field = me.down('field[name=_file]');
+ var field = me.down('field[name=file]');
field.setValue(me.drive.file);
field.resetOriginalValue();
- field = me.down('field[name=_cache]');
+ field = me.down('field[name=cache]');
field.setValue(me.drive.cache || '');
field.resetOriginalValue();
if (me.drive.backup === 'no') {
- field = me.down('field[name=_nobackup]');
+ field = me.down('field[name=nobackup]');
field.setValue(true);
field.resetOriginalValue();
}
@@ -102,42 +102,43 @@
Ext.define('PVE.qemu.HDCreate', {
extend: 'PVE.window.Edit',
- create: 1,
+ create: true,
+ cdrom: false,
+
submit: function(formpanel) {
var me = this;
+ var values = formpanel.getValues();
+
var drive = {};
- var controller = me.down('field[name=_controller]').getValue();
- var deviceid = me.down('field[name=_deviceid]').getValue();
-
- var confid = '' + controller + deviceid;
+ var confid = '' + values.controller + values.deviceid;
- var field = me.down('field[name=_disksize]');
- var hdsize = field.getValue();
-
- var field = me.down('field[name=_storage]');
- var value = field.getValue();
- drive.file = value + ":" + hdsize;
-
- var field = me.down('field[name=_diskformat]');
- drive.format = field.getValue();
+ if (me.cdrom) {
+ drive.media = 'cdrom';
+ if (values.mediaType === 'iso') {
+ drive.file = values.cdimage;
+ } else if (values.mediaType === 'cdrom') {
+ drive.file = 'cdrom';
+ } else {
+ drive.file = 'none';
+ }
+ } else {
+ drive.file = values.storage + ":" + values.hdsize;
+ drive.format = values.diskformat;
- var field = me.down('field[name=_cache]');
- if (value = field.getValue())
- drive.cache = value;
-
- field = me.down('field[name=_nobackup]');
- if (value = field.getValue())
- drive.backup = 'no';
+ if (values.cache)
+ drive.cache = values.cache;
+
+ if (values.nobackup)
+ drive.backup = 'no';
+ }
var params = {};
params[confid] = PVE.Parser.printQemuDrive(drive);
- console.dir(params);
-
PVE.Utils.API2Request({
url: me.url,
method: 'PUT',
@@ -159,96 +160,161 @@
if (!nodename)
throw "no node name specified";
- var hdstoragesel = Ext.create('PVE.form.StorageSelector', {
- name: '_storage',
- nodename: nodename,
- fieldLabel: 'Storage',
- storageContent: 'images',
- allowBlank: false
- });
-
var maxIds = {
ide: 3,
virtio: 15,
scsi: 15
};
- me.column1 = [
- hdstoragesel,
- {
- xtype: 'numberfield',
- name: '_disksize',
- minValue: 1,
- maxValue: 128*1024,
- value: 32,
- fieldLabel: 'Disk size (GB)',
- allowBlank: false
+ var bussel = Ext.createWidget('fieldcontainer', {
+ fieldLabel: 'Bus/Device',
+ layout: 'hbox',
+ defaults: {
+ flex: 1,
+ hideLabel: true
},
- {
- xtype: 'fieldcontainer',
- fieldLabel: 'Bus/Device',
- layout: 'hbox',
- defaults: {
- flex: 1,
- hideLabel: true
- },
- items: [
- {
- xtype: 'PVE.form.BusTypeSelector',
- name: '_controller',
- value: 'ide',
- allowBlank: false,
- listeners: {
- change: function(t, value) {
- if (!value)
- return;
- var field = me.down('field[name=_deviceid]');
- field.setMaxValue(maxIds[value]);
- field.validate();
- }
+ items: [
+ {
+ xtype: 'PVE.form.BusTypeSelector',
+ name: 'controller',
+ value: 'ide',
+ noVirtIO: me.cdrom,
+ allowBlank: false,
+ listeners: {
+ change: function(t, value) {
+ if (!me.rendered || !value)
+ return;
+ var field = me.down('field[name=deviceid]');
+ field.setMaxValue(maxIds[value]);
+ field.validate();
}
- },
- {
- xtype: 'numberfield',
- name: '_deviceid',
- minValue: 0,
- maxValue: maxIds['ide'],
- value: 0,
- validator: function(value) {
- var controller = me.down('field[name=_controller]').getValue();
- var confid = '' + controller + value;
- if (Ext.isDefined(me.vmconfig[confid]))
- return "This device is already in use.";
- return true;
- }
}
- ]
- }
- ];
+ },
+ {
+ xtype: 'numberfield',
+ name: 'deviceid',
+ minValue: 0,
+ maxValue: maxIds['ide'],
+ value: 0,
+ validator: function(value) {
+ if (!me.rendered)
+ return;
+ var field = me.down('field[name=controller]');
+ var controller = field.getValue();
+ var confid = '' + controller + value;
+ if (Ext.isDefined(me.vmconfig[confid]))
+ return "This device is already in use.";
+ return true;
+ }
+ }
+ ]
+ });
- me.column2 = [
- {
- xtype: 'PVE.form.DiskFormatSelector',
- name: '_diskformat',
- fieldLabel: 'Image format',
- value: 'raw',
+ if (me.cdrom) {
+
+ var cdfilesel = Ext.create('PVE.form.FileSelector', {
+ name: 'cdimage',
+ nodename: nodename,
+ storageContent: 'iso',
+ fieldLabel: 'ISO Image',
+ labelAlign: 'right',
allowBlank: false
- },
- {
- xtype: 'CacheTypeSelector',
- name: '_cache',
- value: '',
- fieldLabel: 'Cache',
- },
- {
- xtype: 'pvecheckbox',
- fieldLabel: 'No backup',
- name: '_nobackup'
- }
- ];
+ });
+ var cdstoragesel = Ext.create('PVE.form.StorageSelector', {
+ name: 'storage',
+ nodename: nodename,
+ fieldLabel: 'Storage',
+ labelAlign: 'right',
+ storageContent: 'iso',
+ allowBlank: false,
+ listeners: {
+ change: function(f, value) {
+ cdfilesel.setStorage(value);
+ }
+ }
+ });
+
+ me.items = [
+ bussel,
+ {
+ xtype: 'radiofield',
+ name: 'mediaType',
+ inputValue: 'iso',
+ boxLabel: 'Use CD/DVD disc image file (iso)',
+ checked: true,
+ listeners: {
+ change: function(f, value) {
+ if (!me.rendered)
+ return;
+ me.down('field[name=storage]').setDisabled(!value);
+ me.down('field[name=cdimage]').setDisabled(!value);
+ me.down('field[name=cdimage]').validate();
+ }
+ }
+ },
+ cdstoragesel,
+ cdfilesel,
+ {
+ xtype: 'radiofield',
+ name: 'mediaType',
+ inputValue: 'cdrom',
+ boxLabel: 'Use physical CD/DVD Drive'
+ },
+ {
+ xtype: 'radiofield',
+ name: 'mediaType',
+ inputValue: 'none',
+ boxLabel: 'Do not use any installation media'
+ }
+ ];
+
+ } else {
+ me.column1 = [
+ {
+ xtype: 'PVE.form.StorageSelector',
+ name: 'storage',
+ nodename: nodename,
+ fieldLabel: 'Storage',
+ storageContent: 'images',
+ allowBlank: false
+ },
+ {
+ xtype: 'numberfield',
+ name: 'disksize',
+ minValue: 1,
+ maxValue: 128*1024,
+ value: 32,
+ fieldLabel: 'Disk size (GB)',
+ allowBlank: false
+ },
+ bussel
+ ];
+
+ me.column2 = [
+ {
+ xtype: 'PVE.form.DiskFormatSelector',
+ name: 'diskformat',
+ fieldLabel: 'Image format',
+ value: 'raw',
+ allowBlank: false
+ },
+ {
+ xtype: 'CacheTypeSelector',
+ name: 'cache',
+ value: '',
+ fieldLabel: 'Cache',
+ },
+ {
+ xtype: 'pvecheckbox',
+ fieldLabel: 'No backup',
+ name: 'nobackup'
+ }
+ ];
+ }
+
Ext.applyIf(me, {
- title: 'Add Harddisk',
+ title: me.cdrom ? 'Add CD/DVD Drive' : 'Add Harddisk',
});
me.callParent();
@@ -261,12 +327,12 @@
if (me.vmconfig.ostype === 'l26') {
controller = 'virtio';
}
- me.down('field[name=_controller]').setValue(controller);
+ me.down('field[name=controller]').setValue(controller);
var i;
for (i = 0; i <= maxIds[controller]; i++) {
confid = '' + controller + i;
if (!Ext.isDefined(me.vmconfig[confid])) {
- me.down('field[name=_deviceid]').setValue(i);
+ me.down('field[name=deviceid]').setValue(i);
break;
}
}
@@ -323,6 +389,7 @@
me.load();
}
});
+
Ext.define('PVE.qemu.KeyboardEdit', {
extend: 'PVE.window.Edit',
@@ -572,7 +639,28 @@
text: 'Remove',
disabled: true,
handler: function(){
- console.log("REMOVE");
+ var sm = me.getSelectionModel();
+ var rec = sm.getSelection()[0];
+
+ if (!rec)
+ return;
+
+ me.setLoading(true, true);
+ PVE.Utils.API2Request({
+ url: '/api2/extjs/' + baseurl,
+ method: 'PUT',
+ params: {
+ delete: rec.data.key
+ },
+ callback: function() {
+ me.setLoading(false);
+ reload();
+ },
+ failure: function (response, opts) {
+ Ext.Msg.alert('Error',response.htmlStatus);
+ }
+ });
+
}
});
@@ -617,6 +705,13 @@
text: 'CD/DVD Drive',
iconCls: 'pve-itype-icon-cdrom',
handler: function() {
+ var win = Ext.create('PVE.qemu.HDCreate', {
+ cdrom: true,
+ url: '/api2/extjs/' + baseurl,
+ pveSelNode: me.pveSelNode
+ });
+ win.on('destroy', reload);
+ win.show();
}
},
{
@@ -643,7 +738,7 @@
me.callParent();
me.on('show', function() {
- me.rstore.load();
+ reload();
});
}
More information about the pve-devel
mailing list