[pve-devel] r6219 - in pve-manager/pve2/www/manager: qemu window
svn-commits at proxmox.com
svn-commits at proxmox.com
Fri Jul 1 15:07:22 CEST 2011
Author: dietmar
Date: 2011-07-01 15:07:22 +0200 (Fri, 01 Jul 2011)
New Revision: 6219
Modified:
pve-manager/pve2/www/manager/qemu/HardwareView.js
pve-manager/pve2/www/manager/window/Edit.js
Log:
impl. PVE.qemu.HDCreate (first try)
Modified: pve-manager/pve2/www/manager/qemu/HardwareView.js
===================================================================
--- pve-manager/pve2/www/manager/qemu/HardwareView.js 2011-07-01 11:53:29 UTC (rev 6218)
+++ pve-manager/pve2/www/manager/qemu/HardwareView.js 2011-07-01 13:07:22 UTC (rev 6219)
@@ -6,7 +6,7 @@
var field = me.down('field[name=_cache]');
var value = field.getValue();
- me.drive.cache = value ? field.getValue() : undefined;
+ me.drive.cache = value ? value : undefined;
field = me.down('field[name=_nobackup]');
value = field.getValue();
@@ -45,20 +45,19 @@
xtype: 'displayfield',
fieldLabel: 'Image',
name: '_file'
- },
+ }
+ ];
+
+ me.column2 = [
{
xtype: 'CacheTypeSelector',
name: '_cache',
value: '',
fieldLabel: 'Cache',
- }
- ];
-
- me.column2 = [
+ },
{
xtype: 'pvecheckbox',
- fieldLabel: 'Exclude from backup',
- labelWidth: 130,
+ fieldLabel: 'No backup',
name: '_nobackup'
}
];
@@ -100,6 +99,127 @@
}
});
+Ext.define('PVE.qemu.HDCreate', {
+ extend: 'PVE.window.Edit',
+
+ create: 1,
+
+ submit: function(formpanel) {
+ var me = this;
+
+ var drive = {};
+
+ var confid = me.down('field[name=_confid]').getValue();
+
+ 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();
+
+ 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';
+
+ var params = {};
+
+ params[confid] = PVE.Parser.printQemuDrive(drive);
+
+ console.dir(params);
+
+ PVE.Utils.API2Request({
+ url: me.url,
+ method: 'PUT',
+ params: params,
+ failure: function(response, opts) {
+ Ext.Msg.alert('Error', response.htmlStatus);
+ },
+ success: function(response, opts) {
+ me.close();
+ }
+ });
+
+ },
+
+ initComponent : function() {
+ var me = this;
+
+ var nodename = me.pveSelNode.data.node;
+ if (!nodename)
+ throw "no node name specified";
+
+ var hdstoragesel = Ext.create('PVE.form.StorageSelector', {
+ name: '_storage',
+ nodename: nodename,
+ fieldLabel: 'Storage',
+ storageContent: 'images',
+ allowBlank: false
+ });
+
+ me.column1 = [
+ hdstoragesel,
+ {
+ xtype: 'numberfield',
+ name: '_disksize',
+ minValue: 1,
+ maxValue: 128*1024,
+ value: 32,
+ fieldLabel: 'Disk size (GB)',
+ allowBlank: false
+ },
+ {
+ // fixme: we need a selector for all unused disk ids
+ xtype: 'displayfield',
+ name: '_confid',
+ value: 'virtio5',
+ fieldLabel: 'Bus/Device',
+ allowBlank: false
+ },
+ {
+ xtype: 'PVE.form.DiskFormatSelector',
+ name: '_diskformat',
+ fieldLabel: 'Image format',
+ value: 'raw',
+ allowBlank: false
+ }
+ ];
+
+ me.column2 = [
+ {
+ xtype: 'CacheTypeSelector',
+ name: '_cache',
+ value: '',
+ fieldLabel: 'Cache',
+ },
+ {
+ xtype: 'pvecheckbox',
+ fieldLabel: 'No backup',
+ name: '_nobackup'
+ }
+ ];
+
+ Ext.applyIf(me, {
+ title: 'Add Harddisk',
+ });
+
+ me.callParent();
+
+ me.load({
+ success: function(form, action) {
+ me.vmconfig = action.result.data;
+ }
+ });
+ }
+});
+
Ext.define('PVE.qemu.MemoryEdit', {
extend: 'PVE.window.Edit',
@@ -361,6 +481,10 @@
};
}
+ var reload = function() {
+ me.rstore.load();
+ };
+
var baseurl = 'nodes/' + nodename + '/qemu/' + vmid + '/config';
var run_editor = function() {
@@ -380,9 +504,7 @@
});
win.show();
- win.on('destroy', function() {
- me.rstore.load();
- });
+ win.on('destroy', reload);
};
var edit_btn = new Ext.Button({
@@ -428,10 +550,11 @@
text: 'Hard Disk',
iconCls: 'pve-itype-icon-storage',
handler: function() {
- var win = Ext.create('PVE.qemu.HDEdit', {
- pveSelNode: me.pveSelNode,
+ var win = Ext.create('PVE.qemu.HDCreate', {
+ url: '/api2/extjs/' + baseurl,
+ pveSelNode: me.pveSelNode
});
- win.on('destroy', reload)
+ win.on('destroy', reload);
win.show();
}
},
Modified: pve-manager/pve2/www/manager/window/Edit.js
===================================================================
--- pve-manager/pve2/www/manager/window/Edit.js 2011-07-01 11:53:29 UTC (rev 6218)
+++ pve-manager/pve2/www/manager/window/Edit.js 2011-07-01 13:07:22 UTC (rev 6219)
@@ -3,6 +3,10 @@
resizable: false,
+ // set create to true if you want a CREAT button (instead
+ // OK and RESET)
+ create: false,
+
submit: function(formpanel) {
var me = this;
@@ -87,7 +91,7 @@
var form = formpanel.getForm();
var submitBtn = Ext.create('Ext.Button', {
- text: 'OK',
+ text: me.create ? 'Create' : 'OK',
disabled: true,
handler: function() {
me.submit(formpanel);
@@ -122,7 +126,7 @@
width: me.column2 ? colwidth*2 : colwidth,
border: false,
items: formpanel,
- buttons: [ submitBtn, resetBtn ]
+ buttons: me.create ? [ submitBtn ] : [ submitBtn, resetBtn ]
});
me.callParent();
More information about the pve-devel
mailing list