]>
git.proxmox.com Git - pve-manager.git/blob - www/manager/openvz/CreateWizard.js
1 /*jslint confusion: true */
2 Ext
.define('PVE.openvz.CreateWizard', {
3 extend
: 'PVE.window.Wizard',
5 initComponent: function() {
8 var nextvmid
= PVE
.data
.ResourceStore
.findNextVMID();
10 var summarystore
= Ext
.create('Ext.data.Store', {
20 var storagesel
= Ext
.create('PVE.form.StorageSelector', {
22 fieldLabel
: gettext('Storage'),
23 storageContent
: 'rootdir',
28 var tmplsel
= Ext
.create('PVE.form.FileSelector', {
30 storageContent
: 'vztmpl',
31 fieldLabel
: gettext('Template'),
35 var tmplstoragesel
= Ext
.create('PVE.form.StorageSelector', {
37 fieldLabel
: gettext('Storage'),
38 storageContent
: 'vztmpl',
42 change: function(f
, value
) {
43 tmplsel
.setStorage(value
);
48 var bridgesel
= Ext
.create('PVE.form.BridgeSelector', {
58 subject
: gettext('OpenVZ Container'),
62 title
: gettext('General'),
65 xtype
: 'PVE.form.NodeSelector',
67 fieldLabel
: gettext('Node'),
69 onlineValidator
: true,
71 change: function(f
, value
) {
72 tmplstoragesel
.setNodename(value
);
73 tmplsel
.setStorage(undefined, value
);
74 bridgesel
.setNodename(value
);
75 storagesel
.setNodename(value
);
80 xtype
: 'pveVMIDSelector',
86 xtype
: 'pvetextfield',
89 fieldLabel
: 'Hostname',
96 xtype
: 'pvePoolSelector',
97 fieldLabel
: gettext('Resource Pool'),
105 inputType
: 'password',
108 fieldLabel
: gettext('Password'),
111 change: function(f
, value
) {
115 me
.down('field[name=confirmpw]').validate();
120 inputType
: 'password',
123 fieldLabel
: gettext('Confirm password'),
125 validator: function(value
) {
126 var pw
= me
.down('field[name=password]').getValue();
128 return "Passowords does not match!";
134 onGetValues: function(values
) {
135 delete values
.confirmpw
;
144 title
: gettext('Template'),
145 column1
: [ tmplstoragesel
, tmplsel
]
148 xtype
: 'pveOpenVZResourceInputPanel',
149 title
: gettext('Resources')
153 title
: gettext('Network'),
158 inputValue
: 'routed',
159 boxLabel
: 'Routed mode (venet)',
162 change: function(f
, value
) {
166 me
.down('field[name=ip_address]').setDisabled(!value
);
167 me
.down('field[name=ip_address]').validate();
176 fieldLabel
: gettext('IP address'),
185 inputValue
: 'bridge',
186 boxLabel
: 'Bridged mode',
189 change: function(f
, value
) {
193 me
.down('field[name=bridge]').setDisabled(!value
);
194 me
.down('field[name=bridge]').validate();
200 onGetValues: function(values
) {
201 if (values
.networkmode
=== 'bridge') {
202 return { netif
: 'ifname=eth0,bridge=' + values
.bridge
};
204 return { ip_address
: values
.ip_address
};
213 xtype
: 'pvetextfield',
214 name
: 'searchdomain',
216 fieldLabel
: 'DNS domain',
217 emptyText
: 'use host settings',
220 change: function(f
, value
) {
224 var field
= me
.down('#dns1');
225 field
.setDisabled(!value
);
226 field
.clearInvalid();
227 field
= me
.down('#dns2');
228 field
.setDisabled(!value
);
229 field
.clearInvalid();
234 xtype
: 'pvetextfield',
235 fieldLabel
: gettext('DNS server') + " 1",
243 xtype
: 'pvetextfield',
244 fieldLabel
: gettext('DNS server') + " 2",
254 title
: gettext('Confirm'),
258 title
: gettext('Settings'),
262 {header
: 'Key', width
: 150, dataIndex
: 'key'},
263 {header
: 'Value', flex
: 1, dataIndex
: 'value'}
268 show: function(panel
) {
269 var form
= me
.down('form').getForm();
270 var kv
= me
.getValues();
272 Ext
.Object
.each(kv
, function(key
, value
) {
273 if (key
=== 'delete' || key
=== 'tmplstorage') { // ignore
276 if (key
=== 'password') { // don't show pw
279 var html
= Ext
.htmlEncode(Ext
.JSON
.encode(value
));
280 data
.push({ key
: key
, value
: value
});
282 summarystore
.suspendEvents();
283 summarystore
.removeAll();
284 summarystore
.add(data
);
286 summarystore
.resumeEvents();
287 summarystore
.fireEvent('datachanged', summarystore
);
290 onSubmit: function() {
291 var kv
= me
.getValues();
294 var nodename
= kv
.nodename
;
296 delete kv
.tmplstorage
;
298 PVE
.Utils
.API2Request({
299 url
: '/nodes/' + nodename
+ '/openvz',
303 success: function(response
, opts
){
304 var upid
= response
.result
.data
;
306 var win
= Ext
.create('PVE.window.TaskViewer', {
312 failure: function(response
, opts
) {
313 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);