]> git.proxmox.com Git - pve-manager.git/blobdiff - www/manager/openvz/CreateWizard.js
Added translations
[pve-manager.git] / www / manager / openvz / CreateWizard.js
index 1037d4878042b2fecc79749589cf9b20526d088e..2ebdcbd608c5ddbdbe03fc0a63d4224779812696 100644 (file)
@@ -1,15 +1,10 @@
+/*jslint confusion: true */
 Ext.define('PVE.openvz.CreateWizard', {
     extend: 'PVE.window.Wizard',
-    requires: [    
-       'Ext.form.*',
-       'PVE.data.ResourceStore'
-    ],
 
     initComponent: function() {
        var me = this;
 
-       var nextvmid = PVE.data.ResourceStore.findNextVMID();
-
        var summarystore = Ext.create('Ext.data.Store', {
            model: 'KeyValue',
            sorters: [
@@ -20,16 +15,37 @@ Ext.define('PVE.openvz.CreateWizard', {
            ]
        });
 
+       var storagesel = Ext.create('PVE.form.StorageSelector', {
+           name: 'storage',
+           fieldLabel: gettext('Storage'),
+           storageContent: 'rootdir',
+           autoSelect: true,
+           allowBlank: false
+       });
+
        var tmplsel = Ext.create('PVE.form.FileSelector', {
            name: 'ostemplate',
            storageContent: 'vztmpl',
-           fieldLabel: 'OS template',
+           fieldLabel: gettext('Template'),
            allowBlank: false
        });
 
+       var tmplstoragesel = Ext.create('PVE.form.StorageSelector', {
+           name: 'tmplstorage',
+           fieldLabel: gettext('Storage'),
+           storageContent: 'vztmpl',
+           autoSelect: true,
+           allowBlank: false,
+           listeners: {
+               change: function(f, value) {
+                   tmplsel.setStorage(value);
+               }
+           }
+       });
+
        var bridgesel = Ext.create('PVE.form.BridgeSelector', {
            name: 'bridge',
-           fieldLabel: 'Bridge',
+           fieldLabel: gettext('Bridge'),
            labelAlign: 'right',
            autoSelect: true,
            disabled: true,
@@ -37,57 +53,59 @@ Ext.define('PVE.openvz.CreateWizard', {
        });
 
        Ext.applyIf(me, {
-           title: 'Create new container',
+           subject: gettext('OpenVZ Container'),
            items: [
                {
                    xtype: 'inputpanel',
-                   title: 'General',
+                   title: gettext('General'),
                    column1: [
                        {
                            xtype: 'PVE.form.NodeSelector',
                            name: 'nodename',
-                           fieldLabel: 'Node',
+                           fieldLabel: gettext('Node'),
                            allowBlank: false,
                            onlineValidator: true,
                            listeners: {
                                change: function(f, value) {
-                                   tmplsel.setStorage('local', value);
+                                   tmplstoragesel.setNodename(value);
+                                   tmplsel.setStorage(undefined, value);
                                    bridgesel.setNodename(value);
+                                   storagesel.setNodename(value);
                                }
                            }
                        },
                        {
-                           xtype: 'numberfield',
+                           xtype: 'pveVMIDSelector',
                            name: 'vmid',
-                           value: nextvmid,
-                           minValue: 100,
-                           maxValue: 999999999,
-                           fieldLabel: 'VM ID',
-                           allowBlank: false,
-                           validator: function(value) {
-                               /*jslint confusion: true */
-                               if (!PVE.data.ResourceStore.findVMID(value)) {
-                                   return true;
-                               }
-                               return "This VM ID is already in use.";
-                           }
+                           value: '',
+                           loadNextFreeVMID: true,
+                           validateExists: false
                        },
                        {
                            xtype: 'pvetextfield',
                            name: 'hostname',
+                           vtype: 'DnsName',
                            value: '',
-                           fieldLabel: 'Hostname',
+                           fieldLabel: gettext('Hostname'),
                            skipEmptyText: true,
                            allowBlank: true
                        }
                    ],
                    column2: [
+                       {
+                           xtype: 'pvePoolSelector',
+                           fieldLabel: gettext('Resource Pool'),
+                           name: 'pool',
+                           value: '',
+                           allowBlank: true
+                       },
+                       storagesel,
                        {
                            xtype: 'textfield',
                            inputType: 'password',
                            name: 'password',
                            value: '',
-                           fieldLabel: 'Password',
+                           fieldLabel: gettext('Password'),
                            allowBlank: false,
                            minLength: 5,
                            change: function(f, value) {
@@ -102,12 +120,12 @@ Ext.define('PVE.openvz.CreateWizard', {
                            inputType: 'password',
                            name: 'confirmpw',
                            value: '',
-                           fieldLabel: 'Confirm password',
+                           fieldLabel: gettext('Confirm password'),
                            allowBlank: false,
                            validator: function(value) {
                                var pw = me.down('field[name=password]').getValue();
                                if (pw !== value) {
-                                   return "Passowords does not match!";
+                                   return "Passwords does not match!";
                                }
                                return true;
                            }
@@ -115,63 +133,24 @@ Ext.define('PVE.openvz.CreateWizard', {
                    ],
                    onGetValues: function(values) {
                        delete values.confirmpw;
+                       if (!values.pool) {
+                           delete values.pool;
+                       }
                        return values;
                    }
                },
                {
                    xtype: 'inputpanel',
-                   title: 'Template',
-                   items: tmplsel
+                   title: gettext('Template'),
+                   column1: [ tmplstoragesel, tmplsel]
                },
                {
-                   xtype: 'inputpanel',
-                   title: 'Resources',
-                   column1: [
-                       {
-                           xtype: 'numberfield',
-                           name: 'memory',
-                           minValue: 32,
-                           maxValue: 128*1024,
-                           value: '512',
-                           step: 32,
-                           fieldLabel: 'Memory (MB)',
-                           allowBlank: false
-                       },
-                       {
-                           xtype: 'numberfield',
-                           name: 'swap',
-                           minValue: 0,
-                           maxValue: 128*1024,
-                           value: '512',
-                           step: 32,
-                           fieldLabel: 'Swap (MB)',
-                           allowBlank: false
-                       }
-                   ],
-                   column2: [
-                       {
-                           xtype: 'numberfield',
-                           name: 'disk',
-                           minValue: 0.5,
-                           value: '4',
-                           step: 1,
-                           fieldLabel: 'Disk space (GB)',
-                           allowBlank: false
-                       },
-                       {
-                           xtype: 'numberfield',
-                           name: 'cpus',
-                           minValue: 1,
-                           value: '1',
-                           step: 1,
-                           fieldLabel: 'CPUs',
-                           allowBlank: false
-                       }
-                   ]
+                   xtype: 'pveOpenVZResourceInputPanel',
+                   title: gettext('Resources')
                },
                {
                    xtype: 'inputpanel',
-                   title: 'Network',
+                   title: gettext('Network'),
                    column1: [
                        {
                            xtype: 'radiofield',
@@ -194,7 +173,7 @@ Ext.define('PVE.openvz.CreateWizard', {
                            name: 'ip_address',
                            vtype: 'IPAddress',
                            value: '',
-                           fieldLabel: 'IP address',
+                           fieldLabel: gettext('IP address'),
                            labelAlign: 'right',
                            allowBlank: false
                        }
@@ -204,7 +183,7 @@ Ext.define('PVE.openvz.CreateWizard', {
                            xtype: 'radiofield',
                            name: 'networkmode',
                            inputValue: 'bridge',
-                           boxLabel: 'Bridged mode',
+                           boxLabel: gettext('Bridged mode'),
                            checked: false,
                            listeners: {
                                change: function(f, value) {
@@ -219,8 +198,11 @@ Ext.define('PVE.openvz.CreateWizard', {
                        bridgesel
                    ],
                    onGetValues: function(values) {
-                       delete values.networkmode;
-                       return values;
+                       if (values.networkmode === 'bridge') {
+                           return { netif: 'ifname=eth0,bridge=' + values.bridge };
+                       } else {
+                           return { ip_address: values.ip_address };
+                       }
                    }
                },
                {
@@ -231,7 +213,7 @@ Ext.define('PVE.openvz.CreateWizard', {
                            xtype: 'pvetextfield',
                            name: 'searchdomain',
                            skipEmptyText: true,
-                           fieldLabel: 'DNS domain',
+                           fieldLabel: gettext('DNS domain'),
                            emptyText: 'use host settings',
                            allowBlank: true,
                            listeners: {
@@ -239,10 +221,10 @@ Ext.define('PVE.openvz.CreateWizard', {
                                    if (!me.rendered) {
                                        return;
                                    }
-                                   var field =  me.down('#dns1');
+                                   var field = me.down('#dns1');
                                    field.setDisabled(!value);
                                    field.clearInvalid();
-                                   var field =  me.down('#dns2');
+                                   field = me.down('#dns2');
                                    field.setDisabled(!value);
                                    field.clearInvalid();
                                }
@@ -250,7 +232,7 @@ Ext.define('PVE.openvz.CreateWizard', {
                        },
                        {
                            xtype: 'pvetextfield',
-                           fieldLabel: 'DNS server 1',
+                           fieldLabel: gettext('DNS server') + " 1",
                            vtype: 'IPAddress',
                            allowBlank: true,
                            disabled: true,
@@ -259,7 +241,7 @@ Ext.define('PVE.openvz.CreateWizard', {
                        },
                        {
                            xtype: 'pvetextfield',
-                           fieldLabel: 'DNS server 2',
+                           fieldLabel: gettext('DNS server') + " 2",
                            vtype: 'IPAddress',
                            skipEmptyText: true,
                            disabled: true,
@@ -269,11 +251,11 @@ Ext.define('PVE.openvz.CreateWizard', {
                    ]
                },
                {
-                   title: 'Confirm',
+                   title: gettext('Confirm'),
                    layout: 'fit',
                    items: [
                        {
-                           title: 'Settings',
+                           title: gettext('Settings'),
                            xtype: 'grid',
                            store: summarystore,
                            columns: [
@@ -288,7 +270,7 @@ Ext.define('PVE.openvz.CreateWizard', {
                            var kv = me.getValues();
                            var data = [];
                            Ext.Object.each(kv, function(key, value) {
-                               if (key === 'delete') { // ignore
+                               if (key === 'delete' || key === 'tmplstorage') { // ignore
                                    return;
                                }
                                if (key === 'password') { // don't show pw
@@ -311,17 +293,24 @@ Ext.define('PVE.openvz.CreateWizard', {
 
                        var nodename = kv.nodename;
                        delete kv.nodename;
+                       delete kv.tmplstorage;
 
                        PVE.Utils.API2Request({
                            url: '/nodes/' + nodename + '/openvz',
                            waitMsgTarget: me,
                            method: 'POST',
                            params: kv,
-                           success: function(response){
+                           success: function(response, opts){
+                               var upid = response.result.data;
+                   
+                               var win = Ext.create('PVE.window.TaskViewer', { 
+                                   upid: upid
+                               });
+                               win.show();
                                me.close();
                            },
                            failure: function(response, opts) {
-                               Ext.Msg.alert('Error', response.htmlStatus);
+                               Ext.Msg.alert(gettext('Error'), response.htmlStatus);
                            }
                        });
                    }