]>
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',
6 'PVE.data.ResourceStore'
9 initComponent: function() {
12 var nextvmid
= PVE
.data
.ResourceStore
.findNextVMID();
14 var summarystore
= Ext
.create('Ext.data.Store', {
24 var storagesel
= Ext
.create('PVE.form.StorageSelector', {
26 fieldLabel
: 'Storage',
27 storageContent
: 'rootdir',
32 var tmplsel
= Ext
.create('PVE.form.FileSelector', {
34 storageContent
: 'vztmpl',
35 fieldLabel
: 'OS template',
39 var tmplstoragesel
= Ext
.create('PVE.form.StorageSelector', {
41 fieldLabel
: 'Storage',
42 storageContent
: 'vztmpl',
46 change: function(f
, value
) {
47 tmplsel
.setStorage(value
);
52 var bridgesel
= Ext
.create('PVE.form.BridgeSelector', {
62 subject
: gettext('OpenVZ Container'),
69 xtype
: 'PVE.form.NodeSelector',
73 onlineValidator
: true,
75 change: function(f
, value
) {
76 tmplstoragesel
.setNodename(value
);
77 tmplsel
.setStorage(undefined, value
);
78 bridgesel
.setNodename(value
);
79 storagesel
.setNodename(value
);
84 xtype
: 'pveVMIDSelector',
90 xtype
: 'pvetextfield',
93 fieldLabel
: 'Hostname',
102 inputType
: 'password',
105 fieldLabel
: 'Password',
108 change: function(f
, value
) {
112 me
.down('field[name=confirmpw]').validate();
117 inputType
: 'password',
120 fieldLabel
: 'Confirm password',
122 validator: function(value
) {
123 var pw
= me
.down('field[name=password]').getValue();
125 return "Passowords does not match!";
131 onGetValues: function(values
) {
132 delete values
.confirmpw
;
139 column1
: [ tmplstoragesel
, tmplsel
]
142 xtype
: 'pveOpenVZResourceInputPanel',
152 inputValue
: 'routed',
153 boxLabel
: 'Routed mode (venet)',
156 change: function(f
, value
) {
160 me
.down('field[name=ip_address]').setDisabled(!value
);
161 me
.down('field[name=ip_address]').validate();
170 fieldLabel
: 'IP address',
179 inputValue
: 'bridge',
180 boxLabel
: 'Bridged mode',
183 change: function(f
, value
) {
187 me
.down('field[name=bridge]').setDisabled(!value
);
188 me
.down('field[name=bridge]').validate();
194 onGetValues: function(values
) {
195 if (values
.networkmode
=== 'bridge') {
196 return { netif
: 'ifname=eth0,bridge=' + values
.bridge
};
198 return { ip_address
: values
.ip_address
};
207 xtype
: 'pvetextfield',
208 name
: 'searchdomain',
210 fieldLabel
: 'DNS domain',
211 emptyText
: 'use host settings',
214 change: function(f
, value
) {
218 var field
= me
.down('#dns1');
219 field
.setDisabled(!value
);
220 field
.clearInvalid();
221 field
= me
.down('#dns2');
222 field
.setDisabled(!value
);
223 field
.clearInvalid();
228 xtype
: 'pvetextfield',
229 fieldLabel
: 'DNS server 1',
237 xtype
: 'pvetextfield',
238 fieldLabel
: 'DNS server 2',
256 {header
: 'Key', width
: 150, dataIndex
: 'key'},
257 {header
: 'Value', flex
: 1, dataIndex
: 'value'}
262 show: function(panel
) {
263 var form
= me
.down('form').getForm();
264 var kv
= me
.getValues();
266 Ext
.Object
.each(kv
, function(key
, value
) {
267 if (key
=== 'delete' || key
=== 'tmplstorage') { // ignore
270 if (key
=== 'password') { // don't show pw
273 var html
= Ext
.htmlEncode(Ext
.JSON
.encode(value
));
274 data
.push({ key
: key
, value
: value
});
276 summarystore
.suspendEvents();
277 summarystore
.removeAll();
278 summarystore
.add(data
);
280 summarystore
.resumeEvents();
281 summarystore
.fireEvent('datachanged', summarystore
);
284 onSubmit: function() {
285 var kv
= me
.getValues();
288 var nodename
= kv
.nodename
;
290 delete kv
.tmplstorage
;
292 PVE
.Utils
.API2Request({
293 url
: '/nodes/' + nodename
+ '/openvz',
297 success: function(response
, opts
){
298 var upid
= response
.result
.data
;
300 var win
= Ext
.create('PVE.window.TaskViewer', {
306 failure: function(response
, opts
) {
307 Ext
.Msg
.alert('Error', response
.htmlStatus
);