]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/CreateWizard.js
1 /*jslint confusion: true */
2 Ext
.define('PVE.lxc.CreateWizard', {
3 extend
: 'PVE.window.Wizard',
5 initComponent: function() {
8 var summarystore
= Ext
.create('Ext.data.Store', {
18 var tmplsel
= Ext
.create('PVE.form.FileSelector', {
20 storageContent
: 'vztmpl',
21 fieldLabel
: gettext('Template'),
25 var tmplstoragesel
= Ext
.create('PVE.form.StorageSelector', {
27 fieldLabel
: gettext('Storage'),
28 storageContent
: 'vztmpl',
32 change: function(f
, value
) {
33 tmplsel
.setStorage(value
);
38 var rootfspanel
= Ext
.create('PVE.lxc.MountPointInputPanel', {
39 title
: gettext('Root Disk'),
46 var networkpanel
= Ext
.create('PVE.lxc.NetworkInputPanel', {
47 title
: gettext('Network'),
54 subject
: gettext('LXC Container'),
58 title
: gettext('General'),
61 xtype
: 'pveNodeSelector',
64 fieldLabel
: gettext('Node'),
66 onlineValidator
: true,
68 change: function(f
, value
) {
69 tmplstoragesel
.setNodename(value
);
70 tmplsel
.setStorage(undefined, value
);
71 networkpanel
.setNodename(value
);
72 rootfspanel
.setNodename(value
);
77 xtype
: 'pveVMIDSelector',
80 loadNextFreeVMID
: true,
84 xtype
: 'pvetextfield',
88 fieldLabel
: gettext('Hostname'),
95 xtype
: 'pvePoolSelector',
96 fieldLabel
: gettext('Resource Pool'),
103 inputType
: 'password',
106 fieldLabel
: gettext('Password'),
109 change: function(f
, value
) {
113 me
.down('field[name=confirmpw]').validate();
118 inputType
: 'password',
121 fieldLabel
: gettext('Confirm password'),
123 validator: function(value
) {
124 var pw
= me
.down('field[name=password]').getValue();
126 return "Passwords does not match!";
132 onGetValues: function(values
) {
133 delete values
.confirmpw
;
142 title
: gettext('Template'),
143 column1
: [ tmplstoragesel
, tmplsel
]
147 xtype
: 'pveLxcCPUInputPanel',
148 title
: gettext('CPU'),
152 xtype
: 'pveLxcMemoryInputPanel',
153 title
: gettext('Memory'),
158 xtype
: 'pveLxcDNSInputPanel',
159 title
: gettext('DNS'),
163 title
: gettext('Confirm'),
167 title
: gettext('Settings'),
171 {header
: 'Key', width
: 150, dataIndex
: 'key'},
172 {header
: 'Value', flex
: 1, dataIndex
: 'value'}
177 show: function(panel
) {
178 var form
= me
.down('form').getForm();
179 var kv
= me
.getValues();
181 Ext
.Object
.each(kv
, function(key
, value
) {
182 if (key
=== 'delete' || key
=== 'tmplstorage') { // ignore
185 if (key
=== 'password') { // don't show pw
188 var html
= Ext
.htmlEncode(Ext
.JSON
.encode(value
));
189 data
.push({ key
: key
, value
: value
});
191 summarystore
.suspendEvents();
192 summarystore
.removeAll();
193 summarystore
.add(data
);
195 summarystore
.resumeEvents();
196 summarystore
.fireEvent('datachanged', summarystore
);
199 onSubmit: function() {
200 var kv
= me
.getValues();
203 var nodename
= kv
.nodename
;
205 delete kv
.tmplstorage
;
207 PVE
.Utils
.API2Request({
208 url
: '/nodes/' + nodename
+ '/lxc',
212 success: function(response
, opts
){
213 var upid
= response
.result
.data
;
215 var win
= Ext
.create('PVE.window.TaskViewer', {
221 failure: function(response
, opts
) {
222 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);