mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-05-31 01:05:38 +00:00
qemu/wizard: move to declarative syntax
Use a ViewModel directly, instead of emulating its behaviour with a ViewController. The rest consists mostly of indentation changes, moving some components directly inside their parent declaration. Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
bd2118c6ed
commit
8cdfb23faa
@ -1,38 +1,21 @@
|
|||||||
|
/*jslint confusion: true*/
|
||||||
Ext.define('PVE.qemu.CreateWizard', {
|
Ext.define('PVE.qemu.CreateWizard', {
|
||||||
extend: 'PVE.window.Wizard',
|
extend: 'PVE.window.Wizard',
|
||||||
alias: 'widget.pveQemuCreateWizard',
|
alias: 'widget.pveQemuCreateWizard',
|
||||||
|
mixins: ['Proxmox.Mixin.CBind'],
|
||||||
|
|
||||||
controller: {
|
viewModel: {
|
||||||
|
data: {
|
||||||
xclass: 'Ext.app.ViewController',
|
nodename: ''
|
||||||
|
|
||||||
control: {
|
|
||||||
'field[name=nodename]': {
|
|
||||||
change: function(f, value) {
|
|
||||||
var me = this;
|
|
||||||
['networkpanel', 'hdpanel', 'cdpanel'].forEach(function(reference) {
|
|
||||||
me.lookup(reference).setNodename(value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
initComponent: function() {
|
cbindData: {
|
||||||
var me = this;
|
nodename: undefined
|
||||||
|
},
|
||||||
|
|
||||||
var summarystore = Ext.create('Ext.data.Store', {
|
|
||||||
model: 'KeyValue',
|
|
||||||
sorters: [
|
|
||||||
{
|
|
||||||
property : 'key',
|
|
||||||
direction: 'ASC'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
|
||||||
subject: gettext('Virtual Machine'),
|
subject: gettext('Virtual Machine'),
|
||||||
|
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
xtype: 'inputpanel',
|
xtype: 'inputpanel',
|
||||||
@ -42,8 +25,13 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
{
|
{
|
||||||
xtype: 'pveNodeSelector',
|
xtype: 'pveNodeSelector',
|
||||||
name: 'nodename',
|
name: 'nodename',
|
||||||
selectCurNode: !me.nodename,
|
cbind: {
|
||||||
preferredValue: me.nodename,
|
selectCurNode: '{!nodename}',
|
||||||
|
preferredValue: '{nodename}'
|
||||||
|
},
|
||||||
|
bind: {
|
||||||
|
value: '{nodename}'
|
||||||
|
},
|
||||||
fieldLabel: gettext('Node'),
|
fieldLabel: gettext('Node'),
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
onlineValidator: true
|
onlineValidator: true
|
||||||
@ -95,7 +83,9 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
xtype: 'pveQemuCDInputPanel',
|
xtype: 'pveQemuCDInputPanel',
|
||||||
reference: 'cdpanel',
|
bind: {
|
||||||
|
nodename: '{nodename}'
|
||||||
|
},
|
||||||
confid: 'ide2',
|
confid: 'ide2',
|
||||||
insideWizard: true
|
insideWizard: true
|
||||||
},
|
},
|
||||||
@ -107,7 +97,9 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveQemuHDInputPanel',
|
xtype: 'pveQemuHDInputPanel',
|
||||||
reference: 'hdpanel',
|
bind: {
|
||||||
|
nodename: '{nodename}'
|
||||||
|
},
|
||||||
title: gettext('Hard Disk'),
|
title: gettext('Hard Disk'),
|
||||||
isCreate: true,
|
isCreate: true,
|
||||||
insideWizard: true
|
insideWizard: true
|
||||||
@ -124,7 +116,9 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveQemuNetworkInputPanel',
|
xtype: 'pveQemuNetworkInputPanel',
|
||||||
reference: 'networkpanel',
|
bind: {
|
||||||
|
nodename: '{nodename}'
|
||||||
|
},
|
||||||
title: gettext('Network'),
|
title: gettext('Network'),
|
||||||
insideWizard: true
|
insideWizard: true
|
||||||
},
|
},
|
||||||
@ -134,7 +128,13 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
xtype: 'grid',
|
xtype: 'grid',
|
||||||
store: summarystore,
|
store: {
|
||||||
|
model: 'KeyValue',
|
||||||
|
sorters: [{
|
||||||
|
property : 'key',
|
||||||
|
direction: 'ASC'
|
||||||
|
}]
|
||||||
|
},
|
||||||
columns: [
|
columns: [
|
||||||
{header: 'Key', width: 150, dataIndex: 'key'},
|
{header: 'Key', width: 150, dataIndex: 'key'},
|
||||||
{header: 'Value', flex: 1, dataIndex: 'value'}
|
{header: 'Value', flex: 1, dataIndex: 'value'}
|
||||||
@ -143,7 +143,7 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
],
|
],
|
||||||
listeners: {
|
listeners: {
|
||||||
show: function(panel) {
|
show: function(panel) {
|
||||||
var kv = me.getValues();
|
var kv = this.up('window').getValues();
|
||||||
var data = [];
|
var data = [];
|
||||||
Ext.Object.each(kv, function(key, value) {
|
Ext.Object.each(kv, function(key, value) {
|
||||||
if (key === 'delete') { // ignore
|
if (key === 'delete') { // ignore
|
||||||
@ -151,6 +151,8 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
}
|
}
|
||||||
data.push({ key: key, value: value });
|
data.push({ key: key, value: value });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var summarystore = panel.down('grid').getStore();
|
||||||
summarystore.suspendEvents();
|
summarystore.suspendEvents();
|
||||||
summarystore.removeAll();
|
summarystore.removeAll();
|
||||||
summarystore.add(data);
|
summarystore.add(data);
|
||||||
@ -161,7 +163,8 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onSubmit: function() {
|
onSubmit: function() {
|
||||||
var kv = me.getValues();
|
var wizard = this.up('window');
|
||||||
|
var kv = wizard.getValues();
|
||||||
delete kv['delete'];
|
delete kv['delete'];
|
||||||
|
|
||||||
var nodename = kv.nodename;
|
var nodename = kv.nodename;
|
||||||
@ -169,11 +172,11 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
|
|
||||||
Proxmox.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/qemu',
|
url: '/nodes/' + nodename + '/qemu',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: wizard,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
params: kv,
|
params: kv,
|
||||||
success: function(response){
|
success: function(response){
|
||||||
me.close();
|
wizard.close();
|
||||||
},
|
},
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
@ -182,10 +185,6 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
|
||||||
|
|
||||||
me.callParent();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user