copy qemu/CreateWizard.js from manager to manager6
This commit is contained in:
parent
14ba222f51
commit
e0b3ee0539
177
www/manager6/qemu/CreateWizard.js
Normal file
177
www/manager6/qemu/CreateWizard.js
Normal file
@ -0,0 +1,177 @@
|
||||
// fixme: howto avoid jslint type confusion?
|
||||
/*jslint confusion: true */
|
||||
Ext.define('PVE.qemu.CreateWizard', {
|
||||
extend: 'PVE.window.Wizard',
|
||||
|
||||
initComponent: function() {
|
||||
var me = this;
|
||||
|
||||
var summarystore = Ext.create('Ext.data.Store', {
|
||||
model: 'KeyValue',
|
||||
sorters: [
|
||||
{
|
||||
property : 'key',
|
||||
direction: 'ASC'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
var cdpanel = Ext.create('PVE.qemu.CDInputPanel', {
|
||||
title: gettext('CD/DVD'),
|
||||
confid: 'ide2',
|
||||
fieldDefaults: {
|
||||
labelWidth: 160
|
||||
},
|
||||
insideWizard: true
|
||||
});
|
||||
|
||||
var hdpanel = Ext.create('PVE.qemu.HDInputPanel', {
|
||||
title: gettext('Hard Disk'),
|
||||
create: true,
|
||||
insideWizard: true
|
||||
});
|
||||
|
||||
var networkpanel = Ext.create('PVE.qemu.NetworkInputPanel', {
|
||||
title: gettext('Network'),
|
||||
insideWizard: true
|
||||
});
|
||||
|
||||
Ext.applyIf(me, {
|
||||
subject: gettext('Virtual Machine'),
|
||||
items: [
|
||||
{
|
||||
xtype: 'inputpanel',
|
||||
title: gettext('General'),
|
||||
column1: [
|
||||
{
|
||||
xtype: 'PVE.form.NodeSelector',
|
||||
name: 'nodename',
|
||||
selectCurNode: true,
|
||||
fieldLabel: gettext('Node'),
|
||||
allowBlank: false,
|
||||
onlineValidator: true,
|
||||
listeners: {
|
||||
change: function(f, value) {
|
||||
networkpanel.setNodename(value);
|
||||
hdpanel.setNodename(value);
|
||||
cdpanel.setNodename(value);
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
xtype: 'pveVMIDSelector',
|
||||
name: 'vmid',
|
||||
value: '',
|
||||
loadNextFreeVMID: true,
|
||||
validateExists: false
|
||||
},
|
||||
{
|
||||
xtype: 'textfield',
|
||||
name: 'name',
|
||||
vtype: 'DnsName',
|
||||
value: '',
|
||||
fieldLabel: gettext('Name'),
|
||||
allowBlank: true
|
||||
}
|
||||
],
|
||||
column2: [
|
||||
{
|
||||
xtype: 'pvePoolSelector',
|
||||
fieldLabel: gettext('Resource Pool'),
|
||||
name: 'pool',
|
||||
value: '',
|
||||
allowBlank: true
|
||||
}
|
||||
],
|
||||
onGetValues: function(values) {
|
||||
if (!values.name) {
|
||||
delete values.name;
|
||||
}
|
||||
if (!values.pool) {
|
||||
delete values.pool;
|
||||
}
|
||||
return values;
|
||||
}
|
||||
},
|
||||
{
|
||||
title: gettext('OS'),
|
||||
xtype: 'PVE.qemu.OSTypeInputPanel'
|
||||
},
|
||||
cdpanel,
|
||||
hdpanel,
|
||||
{
|
||||
xtype: 'PVE.qemu.ProcessorInputPanel',
|
||||
title: gettext('CPU')
|
||||
},
|
||||
{
|
||||
xtype: 'PVE.qemu.MemoryInputPanel',
|
||||
insideWizard: true,
|
||||
title: gettext('Memory')
|
||||
},
|
||||
networkpanel,
|
||||
{
|
||||
title: gettext('Confirm'),
|
||||
layout: 'fit',
|
||||
items: [
|
||||
{
|
||||
title: gettext('Settings'),
|
||||
xtype: 'grid',
|
||||
store: summarystore,
|
||||
columns: [
|
||||
{header: 'Key', width: 150, dataIndex: 'key'},
|
||||
{header: 'Value', flex: 1, dataIndex: 'value'}
|
||||
]
|
||||
}
|
||||
],
|
||||
listeners: {
|
||||
show: function(panel) {
|
||||
var form = me.down('form').getForm();
|
||||
var kv = me.getValues();
|
||||
var data = [];
|
||||
Ext.Object.each(kv, function(key, value) {
|
||||
if (key === 'delete') { // ignore
|
||||
return;
|
||||
}
|
||||
var html = Ext.htmlEncode(Ext.JSON.encode(value));
|
||||
data.push({ key: key, value: value });
|
||||
});
|
||||
summarystore.suspendEvents();
|
||||
summarystore.removeAll();
|
||||
summarystore.add(data);
|
||||
summarystore.sort();
|
||||
summarystore.resumeEvents();
|
||||
summarystore.fireEvent('datachanged', summarystore);
|
||||
|
||||
}
|
||||
},
|
||||
onSubmit: function() {
|
||||
var kv = me.getValues();
|
||||
delete kv['delete'];
|
||||
|
||||
var nodename = kv.nodename;
|
||||
delete kv.nodename;
|
||||
|
||||
PVE.Utils.API2Request({
|
||||
url: '/nodes/' + nodename + '/qemu',
|
||||
waitMsgTarget: me,
|
||||
method: 'POST',
|
||||
params: kv,
|
||||
success: function(response){
|
||||
me.close();
|
||||
},
|
||||
failure: function(response, opts) {
|
||||
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
me.callParent();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user