mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-14 20:55:48 +00:00
Added translations
Signed-off-by: Damien PIQUET <piqudam@gmail.com>
This commit is contained in:
parent
38f6e3b98a
commit
0070ee3752
@ -158,7 +158,7 @@ Ext.define('PVE.StateProvider', {
|
|||||||
var history_change_cb = function(token) {
|
var history_change_cb = function(token) {
|
||||||
//console.log("HC " + token);
|
//console.log("HC " + token);
|
||||||
if (!token) {
|
if (!token) {
|
||||||
var res = window.confirm('Are you sure you want to navigate away from this page?');
|
var res = window.confirm(gettext('Are you sure you want to navigate away from this page?'));
|
||||||
if (res){
|
if (res){
|
||||||
// process text value and close...
|
// process text value and close...
|
||||||
Ext.History.back();
|
Ext.History.back();
|
||||||
@ -230,4 +230,4 @@ Ext.define('PVE.StateProvider', {
|
|||||||
me.callParent(arguments);
|
me.callParent(arguments);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -184,14 +184,14 @@ Ext.define('PVE.Utils', { statics: {
|
|||||||
},
|
},
|
||||||
|
|
||||||
kvm_vga_drivers: {
|
kvm_vga_drivers: {
|
||||||
std: 'Standard VGA',
|
std: gettext('Standard VGA'),
|
||||||
vmware: 'VMWare compatible',
|
vmware: gettext('VMWare compatible'),
|
||||||
cirrus: 'Cirrus Logic GD5446',
|
cirrus: 'Cirrus Logic GD5446',
|
||||||
qxl: 'SPICE',
|
qxl: 'SPICE',
|
||||||
serial0: 'Serial terminal 0',
|
serial0: gettext('Serial terminal') + ' 0',
|
||||||
serial1: 'Serial terminal 1',
|
serial1: gettext('Serial terminal') + ' 1',
|
||||||
serial2: 'Serial terminal 2',
|
serial2: gettext('Serial terminal') + ' 2',
|
||||||
serial3: 'Serial terminal 3'
|
serial3: gettext('Serial terminal') + ' 3'
|
||||||
},
|
},
|
||||||
|
|
||||||
render_kvm_language: function (value) {
|
render_kvm_language: function (value) {
|
||||||
@ -442,14 +442,14 @@ Ext.define('PVE.Utils', { statics: {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
//waitMsgTarget: me,
|
//waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
var data = response.result.data;
|
var data = response.result.data;
|
||||||
|
|
||||||
if (data.status !== 'Active') {
|
if (data.status !== 'Active') {
|
||||||
Ext.Msg.show({
|
Ext.Msg.show({
|
||||||
title: 'No valid subscription',
|
title: gettext('No valid subscription'),
|
||||||
icon: Ext.Msg.WARNING,
|
icon: Ext.Msg.WARNING,
|
||||||
msg: PVE.Utils.noSubKeyHtml,
|
msg: PVE.Utils.noSubKeyHtml,
|
||||||
buttons: Ext.Msg.OK,
|
buttons: Ext.Msg.OK,
|
||||||
@ -674,8 +674,6 @@ Ext.define('PVE.Utils', { statics: {
|
|||||||
return 'Directory';
|
return 'Directory';
|
||||||
} else if (value === 'nfs') {
|
} else if (value === 'nfs') {
|
||||||
return 'NFS';
|
return 'NFS';
|
||||||
} else if (value === 'glusterfs') {
|
|
||||||
return 'GlusterFS';
|
|
||||||
} else if (value === 'lvm') {
|
} else if (value === 'lvm') {
|
||||||
return 'LVM';
|
return 'LVM';
|
||||||
} else if (value === 'iscsi') {
|
} else if (value === 'iscsi') {
|
||||||
|
@ -160,7 +160,7 @@ Ext.define('PVE.ConsoleWorkspace', {
|
|||||||
content = {
|
content = {
|
||||||
border: false,
|
border: false,
|
||||||
bodyPadding: 10,
|
bodyPadding: 10,
|
||||||
html: 'Error: No such console type'
|
html: gettext('Error: No such console type')
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,14 +126,14 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
maxcpu: {
|
maxcpu: {
|
||||||
header: 'maxcpu',
|
header: gettext('maxcpu'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
width: 60
|
width: 60
|
||||||
},
|
},
|
||||||
diskread: {
|
diskread: {
|
||||||
header: 'Total Disk Read',
|
header: gettext('Total Disk Read'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
@ -141,7 +141,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
diskwrite: {
|
diskwrite: {
|
||||||
header: 'Total Disk Write',
|
header: gettext('Total Disk Write'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
@ -149,7 +149,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
netin: {
|
netin: {
|
||||||
header: 'Total NetIn',
|
header: gettext('Total NetIn'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
@ -157,7 +157,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
netout: {
|
netout: {
|
||||||
header: 'Total NetOut',
|
header: gettext('Total NetOut'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
@ -165,7 +165,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
template: {
|
template: {
|
||||||
header: 'template',
|
header: gettext('Template'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
|
@ -34,24 +34,24 @@ Ext.define('PVE.dc.AuthEdit', {
|
|||||||
|
|
||||||
if (me.authType === 'ad') {
|
if (me.authType === 'ad') {
|
||||||
|
|
||||||
me.subject = 'Active Directory Server';
|
me.subject = gettext('Active Directory Server');
|
||||||
|
|
||||||
column1.push({
|
column1.push({
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'domain',
|
name: 'domain',
|
||||||
fieldLabel: 'Domain',
|
fieldLabel: gettext('Domain'),
|
||||||
emptyText: 'company.net',
|
emptyText: 'company.net',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if (me.authType === 'ldap') {
|
} else if (me.authType === 'ldap') {
|
||||||
|
|
||||||
me.subject = 'LDAP Server';
|
me.subject = gettext('LDAP Server');
|
||||||
|
|
||||||
column1.push({
|
column1.push({
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'base_dn',
|
name: 'base_dn',
|
||||||
fieldLabel: 'Base Domain Name',
|
fieldLabel: gettext('Base Domain Name'),
|
||||||
emptyText: 'CN=Users,DC=Company,DC=net',
|
emptyText: 'CN=Users,DC=Company,DC=net',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
});
|
});
|
||||||
@ -60,7 +60,7 @@ Ext.define('PVE.dc.AuthEdit', {
|
|||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'user_attr',
|
name: 'user_attr',
|
||||||
emptyText: 'uid / sAMAccountName',
|
emptyText: 'uid / sAMAccountName',
|
||||||
fieldLabel: 'User Attribute Name',
|
fieldLabel: gettext('User Attribute Name'),
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ Ext.define('PVE.dc.AuthView', {
|
|||||||
menu: new Ext.menu.Menu({
|
menu: new Ext.menu.Menu({
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
text: 'Active Directory Server',
|
text: gettext('Active Directory server'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var win = Ext.create('PVE.dc.AuthEdit', {
|
var win = Ext.create('PVE.dc.AuthEdit', {
|
||||||
authType: 'ad'
|
authType: 'ad'
|
||||||
@ -92,7 +92,7 @@ Ext.define('PVE.dc.AuthView', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'LDAP Server',
|
text: gettext('LDAP Server'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var win = Ext.create('PVE.dc.AuthEdit',{
|
var win = Ext.create('PVE.dc.AuthEdit',{
|
||||||
authType: 'ldap'
|
authType: 'ldap'
|
||||||
|
@ -32,7 +32,7 @@ Ext.define('PVE.dc.vmHAServiceEdit', {
|
|||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
name: 'autostart',
|
name: 'autostart',
|
||||||
checked: true,
|
checked: true,
|
||||||
fieldLabel: 'autostart'
|
fieldLabel: gettext('Autostart')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
@ -5,7 +5,7 @@ Ext.define('PVE.dc.HttpProxyEdit', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
Ext.applyIf(me, {
|
||||||
subject: 'HTTP proxy',
|
subject: gettext('HTTP proxy'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvetextfield',
|
xtype: 'pvetextfield',
|
||||||
name: 'http_proxy',
|
name: 'http_proxy',
|
||||||
@ -13,7 +13,7 @@ Ext.define('PVE.dc.HttpProxyEdit', {
|
|||||||
emptyText: gettext('Do not use any proxy'),
|
emptyText: gettext('Do not use any proxy'),
|
||||||
deleteEmpty: true,
|
deleteEmpty: true,
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'HTTP proxy'
|
fieldLabel: gettext('HTTP proxy')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ Ext.define('PVE.dc.OptionView', {
|
|||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
http_proxy: {
|
http_proxy: {
|
||||||
header: 'HTTP proxy',
|
header: gettext('HTTP proxy'),
|
||||||
editor: 'PVE.dc.HttpProxyEdit',
|
editor: 'PVE.dc.HttpProxyEdit',
|
||||||
required: true,
|
required: true,
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
|
@ -36,8 +36,6 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
editor = 'PVE.storage.DirEdit';
|
editor = 'PVE.storage.DirEdit';
|
||||||
} else if (type === 'nfs') {
|
} else if (type === 'nfs') {
|
||||||
editor = 'PVE.storage.NFSEdit';
|
editor = 'PVE.storage.NFSEdit';
|
||||||
} else if (type === 'glusterfs') {
|
|
||||||
editor = 'PVE.storage.GlusterFsEdit';
|
|
||||||
} else if (type === 'lvm') {
|
} else if (type === 'lvm') {
|
||||||
editor = 'PVE.storage.LVMEdit';
|
editor = 'PVE.storage.LVMEdit';
|
||||||
} else if (type === 'iscsi') {
|
} else if (type === 'iscsi') {
|
||||||
@ -102,7 +100,7 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
menu: new Ext.menu.Menu({
|
menu: new Ext.menu.Menu({
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
text: 'Directory',
|
text: gettext('Directory'),
|
||||||
iconCls: 'pve-itype-icon-itype',
|
iconCls: 'pve-itype-icon-itype',
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var win = Ext.create('PVE.storage.DirEdit', {});
|
var win = Ext.create('PVE.storage.DirEdit', {});
|
||||||
@ -112,7 +110,7 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'LVM group',
|
text: gettext('LVM group'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var win = Ext.create('PVE.storage.LVMEdit', {});
|
var win = Ext.create('PVE.storage.LVMEdit', {});
|
||||||
win.on('destroy', reload);
|
win.on('destroy', reload);
|
||||||
@ -120,7 +118,7 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'NFS share',
|
text: gettext('NFS share'),
|
||||||
iconCls: 'pve-itype-icon-node',
|
iconCls: 'pve-itype-icon-node',
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var win = Ext.create('PVE.storage.NFSEdit', {});
|
var win = Ext.create('PVE.storage.NFSEdit', {});
|
||||||
@ -129,7 +127,7 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'iSCSI target',
|
text: gettext('iSCSI target'),
|
||||||
iconCls: 'pve-itype-icon-node',
|
iconCls: 'pve-itype-icon-node',
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var win = Ext.create('PVE.storage.IScsiEdit', {});
|
var win = Ext.create('PVE.storage.IScsiEdit', {});
|
||||||
@ -137,15 +135,6 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
win.show();
|
win.show();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
text: 'GlusterFS volume',
|
|
||||||
iconCls: 'pve-itype-icon-node',
|
|
||||||
handler: function() {
|
|
||||||
var win = Ext.create('PVE.storage.GlusterFsEdit', {});
|
|
||||||
win.on('destroy', reload);
|
|
||||||
win.show();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
text: 'RBD',
|
text: 'RBD',
|
||||||
iconCls: 'pve-itype-icon-node',
|
iconCls: 'pve-itype-icon-node',
|
||||||
|
@ -46,8 +46,8 @@ Ext.define('PVE.dc.Support', {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
me.update("Unable to load subscription status: " + response.htmlStatus);
|
me.update(gettext('Unable to load subscription status') + ": " + response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
var data = response.result.data;
|
var data = response.result.data;
|
||||||
@ -75,4 +75,4 @@ Ext.define('PVE.dc.Support', {
|
|||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -116,7 +116,7 @@ Ext.define('PVE.dc.UserEdit', {
|
|||||||
{
|
{
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'email',
|
name: 'email',
|
||||||
fieldLabel: 'E-Mail',
|
fieldLabel: gettext('E-Mail'),
|
||||||
vtype: 'email'
|
vtype: 'email'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -6,9 +6,9 @@ Ext.define('PVE.form.BackupModeSelector', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.data = [
|
me.data = [
|
||||||
['snapshot', 'Snapshot'],
|
['snapshot', gettext('Snapshot')],
|
||||||
['suspend', 'Suspend'],
|
['suspend', gettext('Suspend')],
|
||||||
['stop', 'Stop']
|
['stop', gettext('Stop')]
|
||||||
];
|
];
|
||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
@ -43,7 +43,7 @@ Ext.define('PVE.form.BridgeSelector', {
|
|||||||
listConfig: {
|
listConfig: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Bridge',
|
header: gettext('Bridge'),
|
||||||
dataIndex: 'iface',
|
dataIndex: 'iface',
|
||||||
hideable: false,
|
hideable: false,
|
||||||
flex: 1
|
flex: 1
|
||||||
|
@ -6,7 +6,7 @@ Ext.define('PVE.form.CPUModelSelector', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.data = [
|
me.data = [
|
||||||
['', 'Default (kvm64)'],
|
['', gettext('Default') + ' (kvm64)'],
|
||||||
['486', '486'],
|
['486', '486'],
|
||||||
['athlon', 'athlon'],
|
['athlon', 'athlon'],
|
||||||
['core2duo', 'core2duo'],
|
['core2duo', 'core2duo'],
|
||||||
|
@ -6,12 +6,12 @@ Ext.define('PVE.form.CacheTypeSelector', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.data = [
|
me.data = [
|
||||||
['', 'Default (No cache)'],
|
['', gettext('Default') + " (" + gettext('No cache') + ")"],
|
||||||
['directsync', 'Direct sync'],
|
['directsync', 'Direct sync'],
|
||||||
['writethrough', 'Write through'],
|
['writethrough', 'Write through'],
|
||||||
['writeback', 'Write back'],
|
['writeback', 'Write back'],
|
||||||
['unsafe', 'Write back (unsafe)'],
|
['unsafe', 'Write back (' + gettext('unsafe') + ')'],
|
||||||
['none', 'No cache']
|
['none', gettext('No cache')]
|
||||||
];
|
];
|
||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
@ -57,7 +57,7 @@ Ext.define('PVE.form.ControllerSelector', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
fieldLabel: 'Bus/Device',
|
fieldLabel: gettext('Bus/Device'),
|
||||||
layout: 'hbox',
|
layout: 'hbox',
|
||||||
height: 22, // hack: set to same height as other fields
|
height: 22, // hack: set to same height as other fields
|
||||||
defaults: {
|
defaults: {
|
||||||
@ -108,4 +108,4 @@ Ext.define('PVE.form.ControllerSelector', {
|
|||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -6,9 +6,9 @@ Ext.define('PVE.form.DiskFormatSelector', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.data = [
|
me.data = [
|
||||||
['raw', 'Raw disk image (raw)'],
|
['raw', gettext('Raw disk image') + ' (raw)')],
|
||||||
['qcow2', 'QEMU image format (qcow2)'],
|
['qcow2', gettext('QEMU image format') + ' (qcow2)'],
|
||||||
['vmdk', 'VMware image format (vmdk)']
|
['vmdk', gettext('VMware image format') + ' (vmdk)']
|
||||||
];
|
];
|
||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
@ -49,18 +49,18 @@ Ext.define('PVE.form.FileSelector', {
|
|||||||
listConfig: {
|
listConfig: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Name',
|
header: gettext('Name'),
|
||||||
dataIndex: 'text',
|
dataIndex: 'text',
|
||||||
hideable: false,
|
hideable: false,
|
||||||
flex: 1
|
flex: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Format',
|
header: gettext('Format'),
|
||||||
width: 60,
|
width: 60,
|
||||||
dataIndex: 'format'
|
dataIndex: 'format'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Size',
|
header: gettext('Size'),
|
||||||
width: 60,
|
width: 60,
|
||||||
dataIndex: 'size',
|
dataIndex: 'size',
|
||||||
renderer: PVE.Utils.format_size
|
renderer: PVE.Utils.format_size
|
||||||
@ -73,4 +73,4 @@ Ext.define('PVE.form.FileSelector', {
|
|||||||
|
|
||||||
me.setStorage(me.storage, me.nodename);
|
me.setStorage(me.storage, me.nodename);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -26,7 +26,7 @@ Ext.define('PVE.form.GroupSelector', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'comment',
|
id: 'comment',
|
||||||
header: 'Comment',
|
header: gettext('Comment'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
dataIndex: 'comment',
|
dataIndex: 'comment',
|
||||||
flex: 1
|
flex: 1
|
||||||
|
@ -7,7 +7,7 @@ Ext.define('PVE.form.NetworkCardSelector', {
|
|||||||
|
|
||||||
me.data = [
|
me.data = [
|
||||||
['e1000', 'Intel E1000'],
|
['e1000', 'Intel E1000'],
|
||||||
['virtio', 'VirtIO (paravirtualized)'],
|
['virtio', 'VirtIO (' + gettext('paravirtualized') + ')'],
|
||||||
['rtl8139', 'Realtec RTL8139']
|
['rtl8139', 'Realtec RTL8139']
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -40,21 +40,21 @@ Ext.define('PVE.form.NodeSelector', {
|
|||||||
listConfig: {
|
listConfig: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Node',
|
header: gettext('Node'),
|
||||||
dataIndex: 'node',
|
dataIndex: 'node',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
hideable: false,
|
hideable: false,
|
||||||
flex: 1
|
flex: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Memory usage',
|
header: gettext('Memory usage'),
|
||||||
renderer: PVE.Utils.render_mem_usage,
|
renderer: PVE.Utils.render_mem_usage,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'mem'
|
dataIndex: 'mem'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'CPU usage',
|
header: gettext('CPU usage'),
|
||||||
renderer: PVE.Utils.render_cpu,
|
renderer: PVE.Utils.render_cpu,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
width: 100,
|
width: 100,
|
||||||
|
@ -26,7 +26,7 @@ Ext.define('PVE.form.PoolSelector', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'comment',
|
id: 'comment',
|
||||||
header: 'Comment',
|
header: gettext('Comment'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
dataIndex: 'comment',
|
dataIndex: 'comment',
|
||||||
flex: 1
|
flex: 1
|
||||||
|
@ -13,7 +13,7 @@ Ext.define('PVE.form.RealmComboBox', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
fieldLabel: 'Realm',
|
fieldLabel: gettext('Realm'),
|
||||||
name: 'realm',
|
name: 'realm',
|
||||||
store: realmstore,
|
store: realmstore,
|
||||||
queryMode: 'local',
|
queryMode: 'local',
|
||||||
@ -58,4 +58,4 @@ Ext.define('PVE.form.RealmComboBox', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -48,7 +48,7 @@ Ext.define('PVE.form.SnapshotSelector', {
|
|||||||
listConfig: {
|
listConfig: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Snapshot',
|
header: gettext('Snapshot'),
|
||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
hideable: false,
|
hideable: false,
|
||||||
flex: 1
|
flex: 1
|
||||||
|
@ -73,24 +73,24 @@ Ext.define('PVE.form.StorageSelector', {
|
|||||||
listConfig: {
|
listConfig: {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Name',
|
header: gettext('Name'),
|
||||||
dataIndex: 'storage',
|
dataIndex: 'storage',
|
||||||
hideable: false,
|
hideable: false,
|
||||||
flex: 1
|
flex: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Type',
|
header: gettext('Type'),
|
||||||
width: 60,
|
width: 60,
|
||||||
dataIndex: 'type'
|
dataIndex: 'type'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Avail',
|
header: gettext('Avail'),
|
||||||
width: 80,
|
width: 80,
|
||||||
dataIndex: 'avail',
|
dataIndex: 'avail',
|
||||||
renderer: PVE.Utils.format_size
|
renderer: PVE.Utils.format_size
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Capacity',
|
header: gettext('Capacity'),
|
||||||
width: 80,
|
width: 80,
|
||||||
dataIndex: 'total',
|
dataIndex: 'total',
|
||||||
renderer: PVE.Utils.format_size
|
renderer: PVE.Utils.format_size
|
||||||
|
@ -31,7 +31,7 @@ Ext.define('PVE.form.UserSelector', {
|
|||||||
flex: 1
|
flex: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Name',
|
header: gettext('Name'),
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: render_full_name,
|
renderer: render_full_name,
|
||||||
dataIndex: 'firstname',
|
dataIndex: 'firstname',
|
||||||
@ -39,7 +39,7 @@ Ext.define('PVE.form.UserSelector', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'comment',
|
id: 'comment',
|
||||||
header: 'Comment',
|
header: gettext('Comment'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
dataIndex: 'comment',
|
dataIndex: 'comment',
|
||||||
flex: 1
|
flex: 1
|
||||||
|
@ -28,12 +28,12 @@ Ext.define('PVE.form.VMIDSelector', {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
if (me.validateExists === true) {
|
if (me.validateExists === true) {
|
||||||
me.markInvalid("This VM ID does not exists.");
|
me.markInvalid(gettext('This VM ID does not exists'));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
if (me.validateExists === false) {
|
if (me.validateExists === false) {
|
||||||
me.markInvalid("This VM ID is already in use.");
|
me.markInvalid(gettext('This VM ID is already in use'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -90,14 +90,14 @@ Ext.define('PVE.grid.ObjectGrid', {
|
|||||||
stateful: false,
|
stateful: false,
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Name',
|
header: gettext('Name'),
|
||||||
width: me.cwidth1 || 100,
|
width: me.cwidth1 || 100,
|
||||||
dataIndex: 'key',
|
dataIndex: 'key',
|
||||||
renderer: me.renderKey
|
renderer: me.renderKey
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
flex: 1,
|
flex: 1,
|
||||||
header: 'Value',
|
header: gettext('Value'),
|
||||||
dataIndex: 'value',
|
dataIndex: 'value',
|
||||||
renderer: me.renderValue
|
renderer: me.renderValue
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ Ext.define('PVE.node.APT', {
|
|||||||
url: "/nodes/" + nodename + "/apt/" + cmd,
|
url: "/nodes/" + nodename + "/apt/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
var upid = response.result.data;
|
var upid = response.result.data;
|
||||||
@ -129,7 +129,7 @@ Ext.define('PVE.node.APT', {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
win.close();
|
win.close();
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
win.show();
|
win.show();
|
||||||
|
@ -24,7 +24,7 @@ Ext.define('PVE.node.Config', {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -88,7 +88,7 @@ Ext.define('PVE.node.Config', {
|
|||||||
xtype: 'pveNodeNetworkView'
|
xtype: 'pveNodeNetworkView'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'DNS',
|
title: gettext('DNS'),
|
||||||
itemId: 'dns',
|
itemId: 'dns',
|
||||||
xtype: 'pveNodeDNSView'
|
xtype: 'pveNodeDNSView'
|
||||||
},
|
},
|
||||||
@ -121,7 +121,7 @@ Ext.define('PVE.node.Config', {
|
|||||||
|
|
||||||
me.items.push([
|
me.items.push([
|
||||||
{
|
{
|
||||||
title: 'Task History',
|
title: gettext('Task History'),
|
||||||
itemId: 'tasks',
|
itemId: 'tasks',
|
||||||
xtype: 'pveNodeTasks'
|
xtype: 'pveNodeTasks'
|
||||||
}
|
}
|
||||||
@ -140,7 +140,7 @@ Ext.define('PVE.node.Config', {
|
|||||||
|
|
||||||
me.items.push([
|
me.items.push([
|
||||||
{
|
{
|
||||||
title: 'Subscription',
|
title: gettext('Subscription'),
|
||||||
itemId: 'support',
|
itemId: 'support',
|
||||||
xtype: 'pveNodeSubscription',
|
xtype: 'pveNodeSubscription',
|
||||||
nodename: nodename
|
nodename: nodename
|
||||||
|
@ -13,7 +13,7 @@ Ext.define('PVE.node.DNSEdit', {
|
|||||||
me.items = [
|
me.items = [
|
||||||
{
|
{
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
fieldLabel: 'Search domain',
|
fieldLabel: gettext('Search domain'),
|
||||||
name: 'search',
|
name: 'search',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
},
|
},
|
||||||
@ -41,7 +41,7 @@ Ext.define('PVE.node.DNSEdit', {
|
|||||||
];
|
];
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
Ext.applyIf(me, {
|
||||||
subject: 'DNS',
|
subject: gettext('DNS'),
|
||||||
url: "/api2/extjs/nodes/" + nodename + "/dns",
|
url: "/api2/extjs/nodes/" + nodename + "/dns",
|
||||||
fieldDefaults: {
|
fieldDefaults: {
|
||||||
labelWidth: 120
|
labelWidth: 120
|
||||||
|
@ -33,7 +33,7 @@ Ext.define('PVE.node.NetworkEdit', {
|
|||||||
var column2 = [
|
var column2 = [
|
||||||
{
|
{
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
fieldLabel: 'Autostart',
|
fieldLabel: gettext('Autostart'),
|
||||||
name: 'autostart',
|
name: 'autostart',
|
||||||
uncheckedValue: 0,
|
uncheckedValue: 0,
|
||||||
checked: me.create ? true : undefined
|
checked: me.create ? true : undefined
|
||||||
@ -43,18 +43,18 @@ Ext.define('PVE.node.NetworkEdit', {
|
|||||||
if (me.iftype === 'bridge') {
|
if (me.iftype === 'bridge') {
|
||||||
column2.push({
|
column2.push({
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
fieldLabel: 'Bridge ports',
|
fieldLabel: gettext('Bridge ports'),
|
||||||
name: 'bridge_ports'
|
name: 'bridge_ports'
|
||||||
});
|
});
|
||||||
} else if (me.iftype === 'bond') {
|
} else if (me.iftype === 'bond') {
|
||||||
column2.push({
|
column2.push({
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
fieldLabel: 'Slaves',
|
fieldLabel: gettext('Slaves'),
|
||||||
name: 'slaves'
|
name: 'slaves'
|
||||||
});
|
});
|
||||||
column2.push({
|
column2.push({
|
||||||
xtype: 'bondModeSelector',
|
xtype: 'bondModeSelector',
|
||||||
fieldLabel: 'Mode',
|
fieldLabel: gettext('Mode'),
|
||||||
name: 'bond_mode',
|
name: 'bond_mode',
|
||||||
value: me.create ? 'balance-rr' : undefined,
|
value: me.create ? 'balance-rr' : undefined,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
@ -117,7 +117,7 @@ Ext.define('PVE.node.NetworkEdit', {
|
|||||||
{
|
{
|
||||||
xtype: 'pvetextfield',
|
xtype: 'pvetextfield',
|
||||||
deleteEmpty: !me.create,
|
deleteEmpty: !me.create,
|
||||||
fieldLabel: 'Gateway',
|
fieldLabel: gettext('Gateway'),
|
||||||
vtype: 'IPAddress',
|
vtype: 'IPAddress',
|
||||||
name: 'gateway'
|
name: 'gateway'
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ Ext.define('PVE.node.NetworkView', {
|
|||||||
PVE.Utils.API2Request({
|
PVE.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/network',
|
url: '/nodes/' + nodename + '/network',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
changeitem.update('Error: ' + response.htmlStatus);
|
changeitem.update(gettext('Error') + ': ' + response.htmlStatus);
|
||||||
store.loadData({});
|
store.loadData({});
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
@ -89,7 +89,7 @@ Ext.define('PVE.node.NetworkView', {
|
|||||||
reload();
|
reload();
|
||||||
},
|
},
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -206,7 +206,7 @@ Ext.define('PVE.node.NetworkView', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'booleancolumn',
|
xtype: 'booleancolumn',
|
||||||
header: 'Autostart',
|
header: gettext('Autostart'),
|
||||||
width: 80,
|
width: 80,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'autostart',
|
dataIndex: 'autostart',
|
||||||
@ -215,7 +215,7 @@ Ext.define('PVE.node.NetworkView', {
|
|||||||
undefinedText: 'No'
|
undefinedText: 'No'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Ports/Slaves',
|
header: gettext('Ports/Slaves'),
|
||||||
dataIndex: 'type',
|
dataIndex: 'type',
|
||||||
renderer: render_ports
|
renderer: render_ports
|
||||||
},
|
},
|
||||||
@ -230,7 +230,7 @@ Ext.define('PVE.node.NetworkView', {
|
|||||||
dataIndex: 'netmask'
|
dataIndex: 'netmask'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Gateway',
|
header: gettext('Gateway'),
|
||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'gateway'
|
dataIndex: 'gateway'
|
||||||
}
|
}
|
||||||
@ -275,4 +275,4 @@ Ext.define('PVE.node.NetworkView', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ Ext.define('PVE.node.ServiceView', {
|
|||||||
url: "/nodes/" + nodename + "/services/" + rec.data.service + "/" + cmd,
|
url: "/nodes/" + nodename + "/services/" + rec.data.service + "/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
me.loading = true;
|
me.loading = true;
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
|
@ -13,7 +13,7 @@ Ext.define('PVE.node.StatusView', {
|
|||||||
var render_cpuinfo = function(value) {
|
var render_cpuinfo = function(value) {
|
||||||
return value.cpus + " x " + value.model + " (" +
|
return value.cpus + " x " + value.model + " (" +
|
||||||
value.sockets.toString() + " " +
|
value.sockets.toString() + " " +
|
||||||
(value.sockets > 1 ? "Sockets" : "Socket") + ")";
|
(value.sockets > 1 ? gettext('Sockets') : gettext('Socket')) + ")";
|
||||||
};
|
};
|
||||||
|
|
||||||
var render_loadavg = function(value) {
|
var render_loadavg = function(value) {
|
||||||
@ -31,23 +31,23 @@ Ext.define('PVE.node.StatusView', {
|
|||||||
|
|
||||||
var render_meminfo = function(value) {
|
var render_meminfo = function(value) {
|
||||||
var per = (value.used / value.total)*100;
|
var per = (value.used / value.total)*100;
|
||||||
var text = "<div>Total: " + PVE.Utils.format_size(value.total) + "</div>" +
|
var text = "<div>" + gettext('Total') + ": " + PVE.Utils.format_size(value.total) + "</div>" +
|
||||||
"<div>Used: " + PVE.Utils.format_size(value.used) + "</div>";
|
"<div>" + gettext('Used') + ": " + PVE.Utils.format_size(value.used) + "</div>";
|
||||||
return text;
|
return text;
|
||||||
};
|
};
|
||||||
|
|
||||||
var rows = {
|
var rows = {
|
||||||
uptime: { header: 'Uptime', required: true, renderer: PVE.Utils.format_duration_long },
|
uptime: { header: gettext('Uptime'), required: true, renderer: PVE.Utils.format_duration_long },
|
||||||
loadavg: { header: 'Load average', required: true, renderer: render_loadavg },
|
loadavg: { header: gettext('Load average'), required: true, renderer: render_loadavg },
|
||||||
cpuinfo: { header: 'CPUs', required: true, renderer: render_cpuinfo },
|
cpuinfo: { header: gettext('CPUs'), required: true, renderer: render_cpuinfo },
|
||||||
cpu: { header: 'CPU usage',required: true, renderer: render_cpu },
|
cpu: { header: gettext('CPU usage'),required: true, renderer: render_cpu },
|
||||||
wait: { header: 'IO delay', required: true, renderer: render_cpu },
|
wait: { header: gettext('IO delay'), required: true, renderer: render_cpu },
|
||||||
memory: { header: 'RAM usage', required: true, renderer: render_meminfo },
|
memory: { header: gettext('RAM usage'), required: true, renderer: render_meminfo },
|
||||||
swap: { header: 'SWAP usage', required: true, renderer: render_meminfo },
|
swap: { header: gettext('SWAP usage'), required: true, renderer: render_meminfo },
|
||||||
ksm: { header: 'KSM sharing', required: true, renderer: render_ksm },
|
ksm: { header: gettext('KSM sharing'), required: true, renderer: render_ksm },
|
||||||
rootfs: { header: 'HD space (root)', required: true, renderer: render_meminfo },
|
rootfs: { header: gettext('HD space (root)'), required: true, renderer: render_meminfo },
|
||||||
pveversion: { header: 'PVE Manager version', required: true },
|
pveversion: { header: gettext('PVE Manager version'), required: true },
|
||||||
kversion: { header: 'Kernel version', required: true }
|
kversion: { header: gettext('Kernel version'), required: true }
|
||||||
};
|
};
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
Ext.applyIf(me, {
|
||||||
|
@ -69,10 +69,10 @@ Ext.define('PVE.node.Subscription', {
|
|||||||
header: gettext('Server ID')
|
header: gettext('Server ID')
|
||||||
},
|
},
|
||||||
sockets: {
|
sockets: {
|
||||||
header: 'Sockets'
|
header: gettext('Sockets')
|
||||||
},
|
},
|
||||||
checktime: {
|
checktime: {
|
||||||
header: 'Last checked',
|
header: gettext('Last checked'),
|
||||||
renderer: PVE.Utils.render_timestamp
|
renderer: PVE.Utils.render_timestamp
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -100,7 +100,7 @@ Ext.define('PVE.node.Subscription', {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
callback: reload
|
callback: reload
|
||||||
});
|
});
|
||||||
|
@ -35,7 +35,7 @@ Ext.define('PVE.node.Summary', {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
win.close();
|
win.close();
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
win.show();
|
win.show();
|
||||||
@ -78,9 +78,9 @@ Ext.define('PVE.node.Summary', {
|
|||||||
var rstore = me.statusStore;
|
var rstore = me.statusStore;
|
||||||
|
|
||||||
var statusview = Ext.create('PVE.node.StatusView', {
|
var statusview = Ext.create('PVE.node.StatusView', {
|
||||||
title: 'Status',
|
title: gettext('Status'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
style: { 'padding-top': '0px' },
|
style: 'padding-top:0px',
|
||||||
rstore: rstore
|
rstore: rstore
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -98,32 +98,32 @@ Ext.define('PVE.node.Summary', {
|
|||||||
bodyStyle: 'padding:10px',
|
bodyStyle: 'padding:10px',
|
||||||
defaults: {
|
defaults: {
|
||||||
width: 800,
|
width: 800,
|
||||||
style: { 'padding-top': '10px' }
|
style: 'padding-top:10px'
|
||||||
},
|
},
|
||||||
tbar: [version_btn, '->', { xtype: 'pveRRDTypeSelector' } ],
|
tbar: [version_btn, '->', { xtype: 'pveRRDTypeSelector' } ],
|
||||||
items: [
|
items: [
|
||||||
statusview,
|
statusview,
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "CPU usage %",
|
title: gettext('CPU usage'),
|
||||||
datasource: 'cpu,iowait',
|
datasource: 'cpu,iowait',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Server load",
|
title: gettext('Server load'),
|
||||||
datasource: 'loadavg',
|
datasource: 'loadavg',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Memory usage",
|
title: gettext('Memory usage'),
|
||||||
datasource: 'memtotal,memused',
|
datasource: 'memtotal,memused',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Network traffic",
|
title: gettext('Network traffic'),
|
||||||
datasource: 'netin,netout',
|
datasource: 'netin,netout',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
}
|
}
|
||||||
|
@ -49,36 +49,36 @@ Ext.define('PVE.openvz.BeanCounterGrid', {
|
|||||||
stateful: false,
|
stateful: false,
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: 'Ressource',
|
header: gettext('Resource'),
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'id'
|
dataIndex: 'id'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'held',
|
header: gettext('Held'),
|
||||||
width: 100,
|
width: 100,
|
||||||
renderer: me.renderUbc,
|
renderer: me.renderUbc,
|
||||||
dataIndex: 'held'
|
dataIndex: 'held'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'maxheld',
|
header: gettext('Maxheld'),
|
||||||
width: 100,
|
width: 100,
|
||||||
renderer: me.renderUbc,
|
renderer: me.renderUbc,
|
||||||
dataIndex: 'maxheld'
|
dataIndex: 'maxheld'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'barrier',
|
header: gettext('Barrier'),
|
||||||
width: 100,
|
width: 100,
|
||||||
renderer: me.renderUbc,
|
renderer: me.renderUbc,
|
||||||
dataIndex: 'bar'
|
dataIndex: 'bar'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'limit',
|
header: gettext('Limit'),
|
||||||
width: 100,
|
width: 100,
|
||||||
renderer: me.renderUbc,
|
renderer: me.renderUbc,
|
||||||
dataIndex: 'lim'
|
dataIndex: 'lim'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'failcnt',
|
header: gettext('Failcnt'),
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'failcnt'
|
dataIndex: 'failcnt'
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ Ext.define('PVE.openvz.CmdMenu', {
|
|||||||
url: '/nodes/' + nodename + '/openvz/' + vmid + "/status/" + cmd,
|
url: '/nodes/' + nodename + '/openvz/' + vmid + "/status/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -134,7 +134,7 @@ Ext.define('PVE.openvz.Config', {
|
|||||||
xtype: 'pveOpenVZNetworkView'
|
xtype: 'pveOpenVZNetworkView'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'DNS',
|
title: gettext('DNS'),
|
||||||
itemId: 'dns',
|
itemId: 'dns',
|
||||||
xtype: 'pveOpenVZDNS'
|
xtype: 'pveOpenVZDNS'
|
||||||
},
|
},
|
||||||
@ -144,7 +144,7 @@ Ext.define('PVE.openvz.Config', {
|
|||||||
xtype: 'pveOpenVZOptions'
|
xtype: 'pveOpenVZOptions'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Task History',
|
title: gettext('Task History'),
|
||||||
itemId: 'tasks',
|
itemId: 'tasks',
|
||||||
xtype: 'pveNodeTasks',
|
xtype: 'pveNodeTasks',
|
||||||
vmidFilter: vmid
|
vmidFilter: vmid
|
||||||
|
@ -45,7 +45,7 @@ Ext.define('PVE.openvz.CreateWizard', {
|
|||||||
|
|
||||||
var bridgesel = Ext.create('PVE.form.BridgeSelector', {
|
var bridgesel = Ext.create('PVE.form.BridgeSelector', {
|
||||||
name: 'bridge',
|
name: 'bridge',
|
||||||
fieldLabel: 'Bridge',
|
fieldLabel: gettext('Bridge'),
|
||||||
labelAlign: 'right',
|
labelAlign: 'right',
|
||||||
autoSelect: true,
|
autoSelect: true,
|
||||||
disabled: true,
|
disabled: true,
|
||||||
@ -86,7 +86,7 @@ Ext.define('PVE.openvz.CreateWizard', {
|
|||||||
name: 'hostname',
|
name: 'hostname',
|
||||||
vtype: 'DnsName',
|
vtype: 'DnsName',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'Hostname',
|
fieldLabel: gettext('Hostname'),
|
||||||
skipEmptyText: true,
|
skipEmptyText: true,
|
||||||
allowBlank: true
|
allowBlank: true
|
||||||
}
|
}
|
||||||
@ -183,7 +183,7 @@ Ext.define('PVE.openvz.CreateWizard', {
|
|||||||
xtype: 'radiofield',
|
xtype: 'radiofield',
|
||||||
name: 'networkmode',
|
name: 'networkmode',
|
||||||
inputValue: 'bridge',
|
inputValue: 'bridge',
|
||||||
boxLabel: 'Bridged mode',
|
boxLabel: gettext('Bridged mode'),
|
||||||
checked: false,
|
checked: false,
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
@ -213,7 +213,7 @@ Ext.define('PVE.openvz.CreateWizard', {
|
|||||||
xtype: 'pvetextfield',
|
xtype: 'pvetextfield',
|
||||||
name: 'searchdomain',
|
name: 'searchdomain',
|
||||||
skipEmptyText: true,
|
skipEmptyText: true,
|
||||||
fieldLabel: 'DNS domain',
|
fieldLabel: gettext('DNS domain'),
|
||||||
emptyText: 'use host settings',
|
emptyText: 'use host settings',
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
listeners: {
|
listeners: {
|
||||||
|
@ -23,31 +23,31 @@ Ext.define('PVE.openvz.DNS', {
|
|||||||
hostname: {
|
hostname: {
|
||||||
required: true,
|
required: true,
|
||||||
defaultValue: me.pveSelNode.data.name,
|
defaultValue: me.pveSelNode.data.name,
|
||||||
header: 'Hostname',
|
header: gettext('Hostname'),
|
||||||
editor: caps.vms['VM.Config.Network'] ? {
|
editor: caps.vms['VM.Config.Network'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'Hostname',
|
subject: gettext('Hostname'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'hostname',
|
name: 'hostname',
|
||||||
vtype: 'DnsName',
|
vtype: 'DnsName',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'Hostname',
|
fieldLabel: gettext('Hostname'),
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
emptyText: me.pveSelNode.data.name
|
emptyText: me.pveSelNode.data.name
|
||||||
}
|
}
|
||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
searchdomain: {
|
searchdomain: {
|
||||||
header: 'DNS domain',
|
header: gettext('DNS domain'),
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
editor: caps.vms['VM.Config.Network'] ? {
|
editor: caps.vms['VM.Config.Network'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'DNS domain',
|
subject: gettext('DNS domain'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvetextfield',
|
xtype: 'pvetextfield',
|
||||||
name: 'searchdomain',
|
name: 'searchdomain',
|
||||||
fieldLabel: 'DNS domain',
|
fieldLabel: gettext('DNS domain'),
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
} : undefined
|
} : undefined
|
||||||
|
@ -68,7 +68,7 @@ Ext.define('PVE.OpenVZ.NetIfEdit', {
|
|||||||
{
|
{
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'mac',
|
name: 'mac',
|
||||||
fieldLabel: 'MAC',
|
fieldLabel: gettext('MAC address'),
|
||||||
vtype: 'MacAddress',
|
vtype: 'MacAddress',
|
||||||
value: cdata.mac,
|
value: cdata.mac,
|
||||||
allowBlank: me.create,
|
allowBlank: me.create,
|
||||||
@ -78,14 +78,14 @@ Ext.define('PVE.OpenVZ.NetIfEdit', {
|
|||||||
xtype: 'PVE.form.BridgeSelector',
|
xtype: 'PVE.form.BridgeSelector',
|
||||||
name: 'bridge',
|
name: 'bridge',
|
||||||
nodename: me.nodename,
|
nodename: me.nodename,
|
||||||
fieldLabel: 'Bridge',
|
fieldLabel: gettext('Bridge'),
|
||||||
value: cdata.bridge,
|
value: cdata.bridge,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'host_ifname',
|
name: 'host_ifname',
|
||||||
fieldLabel: 'Host device name',
|
fieldLabel: gettext('Host device name'),
|
||||||
value: cdata.host_ifname,
|
value: cdata.host_ifname,
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
emptyText: 'auto'
|
emptyText: 'auto'
|
||||||
@ -93,7 +93,7 @@ Ext.define('PVE.OpenVZ.NetIfEdit', {
|
|||||||
{
|
{
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'host_mac',
|
name: 'host_mac',
|
||||||
fieldLabel: 'Host MAC address',
|
fieldLabel: gettext('Host MAC address'),
|
||||||
vtype: 'MacAddress',
|
vtype: 'MacAddress',
|
||||||
value: cdata.host_mac,
|
value: cdata.host_mac,
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
@ -395,22 +395,22 @@ Ext.define('PVE.openvz.NetworkView', {
|
|||||||
renderer: me.renderValue
|
renderer: me.renderValue
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Bridge',
|
header: gettext('Bridge'),
|
||||||
width: 110,
|
width: 110,
|
||||||
dataIndex: 'bridge'
|
dataIndex: 'bridge'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'MAC',
|
header: gettext('MAC address'),
|
||||||
width: 110,
|
width: 110,
|
||||||
dataIndex: 'mac'
|
dataIndex: 'mac'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Host ifname',
|
header: gettext('Host ifname'),
|
||||||
width: 110,
|
width: 110,
|
||||||
dataIndex: 'host_ifname'
|
dataIndex: 'host_ifname'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'Host MAC',
|
header: gettext('Host MAC address'),
|
||||||
width: 110,
|
width: 110,
|
||||||
dataIndex: 'host_mac'
|
dataIndex: 'host_mac'
|
||||||
}
|
}
|
||||||
|
@ -45,15 +45,15 @@ Ext.define('PVE.openvz.Options', {
|
|||||||
defaultValue: 'no set'
|
defaultValue: 'no set'
|
||||||
},
|
},
|
||||||
cpuunits: {
|
cpuunits: {
|
||||||
header: 'CPU units',
|
header: gettext('CPU units'),
|
||||||
defaultValue: '1000',
|
defaultValue: '1000',
|
||||||
editor: caps.vms['VM.Config.CPU'] ? {
|
editor: caps.vms['VM.Config.CPU'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'CPU units',
|
subject: gettext('CPU units'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'numberfield',
|
xtype: 'numberfield',
|
||||||
name: 'cpuunits',
|
name: 'cpuunits',
|
||||||
fieldLabel: 'CPU units',
|
fieldLabel: gettext('CPU units'),
|
||||||
minValue: 8,
|
minValue: 8,
|
||||||
maxValue: 500000,
|
maxValue: 500000,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
@ -61,7 +61,7 @@ Ext.define('PVE.openvz.Options', {
|
|||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
quotaugidlimit: {
|
quotaugidlimit: {
|
||||||
header: 'Quota UGID limit',
|
header: gettext('Quota UGID limit'),
|
||||||
defaultValue: '0',
|
defaultValue: '0',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
@ -71,22 +71,22 @@ Ext.define('PVE.openvz.Options', {
|
|||||||
},
|
},
|
||||||
editor: caps.vms['VM.Config.Disk'] ? {
|
editor: caps.vms['VM.Config.Disk'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'Quota UGID limit (0 to disable user quotas)',
|
subject: gettext('Quota UGID limit (0 to disable user quotas)'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'numberfield',
|
xtype: 'numberfield',
|
||||||
name: 'quotaugidlimit',
|
name: 'quotaugidlimit',
|
||||||
fieldLabel: 'UGID limit',
|
fieldLabel: gettext('UGID limit'),
|
||||||
minValue: 0,
|
minValue: 0,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
quotatime: {
|
quotatime: {
|
||||||
header: 'Quota Grace period',
|
header: gettext('Quota Grace period'),
|
||||||
defaultValue: '0',
|
defaultValue: '0',
|
||||||
editor: caps.vms['VM.Config.Disk'] ? {
|
editor: caps.vms['VM.Config.Disk'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'Quota Grace period (seconds)',
|
subject: gettext('Quota Grace period (seconds)'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'numberfield',
|
xtype: 'numberfield',
|
||||||
name: 'quotatime',
|
name: 'quotatime',
|
||||||
|
@ -53,7 +53,7 @@ Ext.define('PVE.openvz.RessourceInputPanel', {
|
|||||||
minValue: 1,
|
minValue: 1,
|
||||||
value: '1',
|
value: '1',
|
||||||
step: 1,
|
step: 1,
|
||||||
fieldLabel: 'CPUs',
|
fieldLabel: gettext('CPUs'),
|
||||||
labelWidth: labelWidth,
|
labelWidth: labelWidth,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
@ -78,4 +78,4 @@ Ext.define('PVE.openvz.RessourceEdit', {
|
|||||||
|
|
||||||
me.load();
|
me.load();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -33,16 +33,16 @@ Ext.define('PVE.openvz.StatusView', {
|
|||||||
var render_mem = function(value, metaData, record, rowIndex, colIndex, store) {
|
var render_mem = function(value, metaData, record, rowIndex, colIndex, store) {
|
||||||
var maxmem = me.getObjectValue('maxmem', 0);
|
var maxmem = me.getObjectValue('maxmem', 0);
|
||||||
var per = (value / maxmem)*100;
|
var per = (value / maxmem)*100;
|
||||||
var text = "<div>Total: " + PVE.Utils.format_size(maxmem) + "</div>" +
|
var text = "<div>" + gettext('Total') + ": " + PVE.Utils.format_size(maxmem) + "</div>" +
|
||||||
"<div>Used: " + PVE.Utils.format_size(value) + "</div>";
|
"<div>" + gettext('Used') + ": " + PVE.Utils.format_size(value) + "</div>";
|
||||||
return text;
|
return text;
|
||||||
};
|
};
|
||||||
|
|
||||||
var render_swap = function(value, metaData, record, rowIndex, colIndex, store) {
|
var render_swap = function(value, metaData, record, rowIndex, colIndex, store) {
|
||||||
var maxswap = me.getObjectValue('maxswap', 0);
|
var maxswap = me.getObjectValue('maxswap', 0);
|
||||||
var per = (value / maxswap)*100;
|
var per = (value / maxswap)*100;
|
||||||
var text = "<div>Total: " + PVE.Utils.format_size(maxswap) + "</div>" +
|
var text = "<div>" + gettext('Total') + ": " + PVE.Utils.format_size(maxswap) + "</div>" +
|
||||||
"<div>Used: " + PVE.Utils.format_size(value) + "</div>";
|
"<div>" + gettext('Used') + ": " + PVE.Utils.format_size(value) + "</div>";
|
||||||
return text;
|
return text;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -58,14 +58,14 @@ Ext.define('PVE.openvz.StatusView', {
|
|||||||
name: { header: gettext('Name'), defaultValue: 'no name specified' },
|
name: { header: gettext('Name'), defaultValue: 'no name specified' },
|
||||||
status: { header: gettext('Status'), defaultValue: 'unknown', renderer: render_status },
|
status: { header: gettext('Status'), defaultValue: 'unknown', renderer: render_status },
|
||||||
failcnt: { visible: false },
|
failcnt: { visible: false },
|
||||||
cpu: { header: 'CPU usage', required: true, renderer: render_cpu },
|
cpu: { header: gettext('CPU usage'), required: true, renderer: render_cpu },
|
||||||
cpus: { visible: false },
|
cpus: { visible: false },
|
||||||
mem: { header: 'Memory usage', required: true, renderer: render_mem },
|
mem: { header: gettext('Memory usage'), required: true, renderer: render_mem },
|
||||||
maxmem: { visible: false },
|
maxmem: { visible: false },
|
||||||
swap: { header: 'VSwap usage', required: true, renderer: render_swap },
|
swap: { header: gettext('VSwap usage'), required: true, renderer: render_swap },
|
||||||
maxswap: { visible: false },
|
maxswap: { visible: false },
|
||||||
uptime: { header: gettext('Uptime'), required: true, renderer: PVE.Utils.render_uptime },
|
uptime: { header: gettext('Uptime'), required: true, renderer: PVE.Utils.render_uptime },
|
||||||
ha: { header: 'Managed by HA', required: true, renderer: PVE.Utils.format_boolean }
|
ha: { header: gettext('Managed by HA'), required: true, renderer: PVE.Utils.format_boolean }
|
||||||
};
|
};
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
Ext.applyIf(me, {
|
||||||
|
@ -26,7 +26,7 @@ Ext.define('PVE.openvz.Summary', {
|
|||||||
var rstore = me.statusStore;
|
var rstore = me.statusStore;
|
||||||
|
|
||||||
var statusview = Ext.create('PVE.openvz.StatusView', {
|
var statusview = Ext.create('PVE.openvz.StatusView', {
|
||||||
title: 'Status',
|
title: gettext('Status'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
width: 400,
|
width: 400,
|
||||||
rstore: rstore
|
rstore: rstore
|
||||||
@ -64,28 +64,28 @@ Ext.define('PVE.openvz.Summary', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "CPU usage %",
|
title: gettext('CPU usage %'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'cpu',
|
datasource: 'cpu',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Memory usage",
|
title: gettext('Memory usage'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'mem,maxmem',
|
datasource: 'mem,maxmem',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Network traffic",
|
title: gettext('Network traffic'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'netin,netout',
|
datasource: 'netin,netout',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Disk IO",
|
title: gettext('Disk IO'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'diskread,diskwrite',
|
datasource: 'diskread,diskwrite',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
|
@ -8,7 +8,7 @@ Ext.define('PVE.panel.NotesView', {
|
|||||||
url: me.url,
|
url: me.url,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
me.update("Error " + response.htmlStatus);
|
me.update(gettext('Error') + " " + response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
var data = response.result.data.description || '';
|
var data = response.result.data.description || '';
|
||||||
|
@ -82,7 +82,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
|
|||||||
xtype: 'radiofield',
|
xtype: 'radiofield',
|
||||||
name: 'mediaType',
|
name: 'mediaType',
|
||||||
inputValue: 'iso',
|
inputValue: 'iso',
|
||||||
boxLabel: 'Use CD/DVD disc image file (iso)',
|
boxLabel: gettext('Use CD/DVD disc image file (iso)'),
|
||||||
checked: true,
|
checked: true,
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
@ -100,7 +100,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
|
|||||||
name: 'cdimage',
|
name: 'cdimage',
|
||||||
nodename: me.nodename,
|
nodename: me.nodename,
|
||||||
storageContent: 'iso',
|
storageContent: 'iso',
|
||||||
fieldLabel: 'ISO Image',
|
fieldLabel: gettext('ISO Image'),
|
||||||
labelAlign: 'right',
|
labelAlign: 'right',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
});
|
});
|
||||||
@ -127,7 +127,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
|
|||||||
xtype: 'radiofield',
|
xtype: 'radiofield',
|
||||||
name: 'mediaType',
|
name: 'mediaType',
|
||||||
inputValue: 'cdrom',
|
inputValue: 'cdrom',
|
||||||
boxLabel: 'Use physical CD/DVD Drive'
|
boxLabel: gettext('Use physical CD/DVD Drive')
|
||||||
});
|
});
|
||||||
|
|
||||||
items.push({
|
items.push({
|
||||||
|
@ -129,7 +129,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
|
|
||||||
me.targetSel = Ext.create('PVE.form.NodeSelector', {
|
me.targetSel = Ext.create('PVE.form.NodeSelector', {
|
||||||
name: 'target',
|
name: 'target',
|
||||||
fieldLabel: 'Target node',
|
fieldLabel: gettext('Target node'),
|
||||||
selectCurNode: true,
|
selectCurNode: true,
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
onlineValidator: true
|
onlineValidator: true
|
||||||
@ -143,7 +143,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
me.kv1 = Ext.create('PVE.form.KVComboBox', {
|
me.kv1 = Ext.create('PVE.form.KVComboBox', {
|
||||||
fieldLabel: 'Clone Mode',
|
fieldLabel: gettext('Clone Mode'),
|
||||||
name: 'clonemode',
|
name: 'clonemode',
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
value: me.isTemplate ? 'clone' : 'copy',
|
value: me.isTemplate ? 'clone' : 'copy',
|
||||||
@ -159,7 +159,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
|
|
||||||
me.snapshotSel = Ext.create('PVE.form.SnapshotSelector', {
|
me.snapshotSel = Ext.create('PVE.form.SnapshotSelector', {
|
||||||
name: 'snapname',
|
name: 'snapname',
|
||||||
fieldLabel: 'Snapshot',
|
fieldLabel: gettext('Snapshot'),
|
||||||
nodename: me.nodename,
|
nodename: me.nodename,
|
||||||
vmid: me.vmid,
|
vmid: me.vmid,
|
||||||
hidden: me.isTemplate ? true : false,
|
hidden: me.isTemplate ? true : false,
|
||||||
@ -194,7 +194,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
me.hdstoragesel = Ext.create('PVE.form.StorageSelector', {
|
me.hdstoragesel = Ext.create('PVE.form.StorageSelector', {
|
||||||
name: 'storage',
|
name: 'storage',
|
||||||
nodename: me.nodename,
|
nodename: me.nodename,
|
||||||
fieldLabel: 'Target Storage',
|
fieldLabel: gettext('Target Storage'),
|
||||||
storageContent: 'images',
|
storageContent: 'images',
|
||||||
autoSelect: me.insideWizard,
|
autoSelect: me.insideWizard,
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
|
@ -160,7 +160,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
xtype: 'PVE.qemu.Options'
|
xtype: 'PVE.qemu.Options'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Task History',
|
title: gettext('Task History'),
|
||||||
itemId: 'tasks',
|
itemId: 'tasks',
|
||||||
xtype: 'pveNodeTasks',
|
xtype: 'pveNodeTasks',
|
||||||
vmidFilter: vmid
|
vmidFilter: vmid
|
||||||
|
@ -17,7 +17,7 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var cdpanel = Ext.create('PVE.qemu.CDInputPanel', {
|
var cdpanel = Ext.create('PVE.qemu.CDInputPanel', {
|
||||||
title: 'CD/DVD',
|
title: gettext('CD/DVD'),
|
||||||
confid: 'ide2',
|
confid: 'ide2',
|
||||||
fieldDefaults: {
|
fieldDefaults: {
|
||||||
labelWidth: 160
|
labelWidth: 160
|
||||||
@ -94,14 +94,14 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'OS',
|
title: gettext('OS'),
|
||||||
xtype: 'PVE.qemu.OSTypeInputPanel'
|
xtype: 'PVE.qemu.OSTypeInputPanel'
|
||||||
},
|
},
|
||||||
cdpanel,
|
cdpanel,
|
||||||
hdpanel,
|
hdpanel,
|
||||||
{
|
{
|
||||||
xtype: 'PVE.qemu.ProcessorInputPanel',
|
xtype: 'PVE.qemu.ProcessorInputPanel',
|
||||||
title: 'CPU'
|
title: gettext('CPU')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'PVE.qemu.MemoryInputPanel',
|
xtype: 'PVE.qemu.MemoryInputPanel',
|
||||||
|
@ -229,7 +229,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
|
|||||||
xtype: 'CacheTypeSelector',
|
xtype: 'CacheTypeSelector',
|
||||||
name: 'cache',
|
name: 'cache',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'Cache'
|
fieldLabel: gettext('Cache')
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!me.insideWizard) {
|
if (!me.insideWizard) {
|
||||||
@ -330,7 +330,7 @@ Ext.define('PVE.qemu.HDEdit', {
|
|||||||
var value = response.result.data[me.confid];
|
var value = response.result.data[me.confid];
|
||||||
var drive = PVE.Parser.parseQemuDrive(me.confid, value);
|
var drive = PVE.Parser.parseQemuDrive(me.confid, value);
|
||||||
if (!drive) {
|
if (!drive) {
|
||||||
Ext.Msg.alert('Error', 'Unable to parse drive options');
|
Ext.Msg.alert(gettext('Error'), gettext('Unable to parse drive options'));
|
||||||
me.close();
|
me.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ Ext.define('PVE.window.HDMove', {
|
|||||||
xtype: 'displayfield',
|
xtype: 'displayfield',
|
||||||
name: 'disk',
|
name: 'disk',
|
||||||
value: me.disk,
|
value: me.disk,
|
||||||
fieldLabel: 'Disk',
|
fieldLabel: gettext('Disk'),
|
||||||
vtype: 'StorageId',
|
vtype: 'StorageId',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
@ -62,7 +62,7 @@ Ext.define('PVE.window.HDMove', {
|
|||||||
me.hdstoragesel = Ext.create('PVE.form.StorageSelector', {
|
me.hdstoragesel = Ext.create('PVE.form.StorageSelector', {
|
||||||
name: 'hdstorage',
|
name: 'hdstorage',
|
||||||
nodename: me.nodename,
|
nodename: me.nodename,
|
||||||
fieldLabel: 'Target Storage',
|
fieldLabel: gettext('Target Storage'),
|
||||||
storageContent: 'images',
|
storageContent: 'images',
|
||||||
autoSelect: me.insideWizard,
|
autoSelect: me.insideWizard,
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
|
@ -13,7 +13,7 @@ Ext.define('PVE.window.HDResize', {
|
|||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
me.close();
|
me.close();
|
||||||
@ -37,7 +37,7 @@ Ext.define('PVE.window.HDResize', {
|
|||||||
xtype: 'displayfield',
|
xtype: 'displayfield',
|
||||||
name: 'disk',
|
name: 'disk',
|
||||||
value: me.disk,
|
value: me.disk,
|
||||||
fieldLabel: 'Disk',
|
fieldLabel: gettext('Disk'),
|
||||||
vtype: 'StorageId',
|
vtype: 'StorageId',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
|
|
||||||
me.bridgesel = Ext.create('PVE.form.BridgeSelector', {
|
me.bridgesel = Ext.create('PVE.form.BridgeSelector', {
|
||||||
name: 'bridge',
|
name: 'bridge',
|
||||||
fieldLabel: 'Bridge',
|
fieldLabel: gettext('Bridge'),
|
||||||
nodename: me.nodename,
|
nodename: me.nodename,
|
||||||
labelAlign: 'right',
|
labelAlign: 'right',
|
||||||
autoSelect: true,
|
autoSelect: true,
|
||||||
@ -74,7 +74,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
name: 'networkmode',
|
name: 'networkmode',
|
||||||
height: 22, // hack: set same height as text fields
|
height: 22, // hack: set same height as text fields
|
||||||
inputValue: 'bridge',
|
inputValue: 'bridge',
|
||||||
boxLabel: 'Bridged mode',
|
boxLabel: gettext('Bridged mode'),
|
||||||
checked: true,
|
checked: true,
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
@ -95,7 +95,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
maxValue: 4094,
|
maxValue: 4094,
|
||||||
value: '',
|
value: '',
|
||||||
emptyText: 'no VLAN',
|
emptyText: 'no VLAN',
|
||||||
fieldLabel: 'VLAN Tag',
|
fieldLabel: gettext('VLAN Tag'),
|
||||||
labelAlign: 'right',
|
labelAlign: 'right',
|
||||||
allowBlank: true
|
allowBlank: true
|
||||||
},
|
},
|
||||||
@ -104,7 +104,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
name: 'networkmode',
|
name: 'networkmode',
|
||||||
height: 22, // hack: set same height as text fields
|
height: 22, // hack: set same height as text fields
|
||||||
inputValue: 'nat',
|
inputValue: 'nat',
|
||||||
boxLabel: 'NAT mode'
|
boxLabel: gettext('NAT mode')
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
name: 'networkmode',
|
name: 'networkmode',
|
||||||
height: 22, // hack: set same height as text fields
|
height: 22, // hack: set same height as text fields
|
||||||
inputValue: 'none',
|
inputValue: 'none',
|
||||||
boxLabel: 'No network device'
|
boxLabel: gettext('No network device')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,14 +122,14 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
{
|
{
|
||||||
xtype: 'PVE.form.NetworkCardSelector',
|
xtype: 'PVE.form.NetworkCardSelector',
|
||||||
name: 'model',
|
name: 'model',
|
||||||
fieldLabel: 'Model',
|
fieldLabel: gettext('Model'),
|
||||||
value: 'e1000',
|
value: 'e1000',
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'macaddr',
|
name: 'macaddr',
|
||||||
fieldLabel: 'MAC address',
|
fieldLabel: gettext('MAC address'),
|
||||||
vtype: 'MacAddress',
|
vtype: 'MacAddress',
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
emptyText: 'auto'
|
emptyText: 'auto'
|
||||||
@ -137,7 +137,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
{
|
{
|
||||||
xtype: 'numberfield',
|
xtype: 'numberfield',
|
||||||
name: 'rate',
|
name: 'rate',
|
||||||
fieldLabel: 'Rate limit (MB/s)',
|
fieldLabel: gettext('Rate limit (MB/s)'),
|
||||||
minValue: 0,
|
minValue: 0,
|
||||||
maxValue: 10*1024,
|
maxValue: 10*1024,
|
||||||
value: '',
|
value: '',
|
||||||
@ -187,7 +187,7 @@ Ext.define('PVE.qemu.NetworkEdit', {
|
|||||||
var value = me.vmconfig[me.confid];
|
var value = me.vmconfig[me.confid];
|
||||||
var network = PVE.Parser.parseQemuNetwork(me.confid, value);
|
var network = PVE.Parser.parseQemuNetwork(me.confid, value);
|
||||||
if (!network) {
|
if (!network) {
|
||||||
Ext.Msg.alert('Error', 'Unable to parse network options');
|
Ext.Msg.alert(gettext('Error'), gettext('Unable to parse network options'));
|
||||||
me.close();
|
me.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ Ext.define('PVE.qemu.OSTypeInputPanel', {
|
|||||||
me.column2 = [
|
me.column2 = [
|
||||||
{
|
{
|
||||||
xtype: 'component',
|
xtype: 'component',
|
||||||
html: 'Linux/Other',
|
html: 'Linux/' + gettext('Other'),
|
||||||
cls:'x-form-check-group-label'
|
cls:'x-form-check-group-label'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -62,7 +62,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
'PVE.qemu.StartupEdit' : undefined
|
'PVE.qemu.StartupEdit' : undefined
|
||||||
},
|
},
|
||||||
ostype: {
|
ostype: {
|
||||||
header: 'OS Type',
|
header: gettext('OS Type'),
|
||||||
editor: caps.vms['VM.Config.Options'] ? 'PVE.qemu.OSTypeEdit' : undefined,
|
editor: caps.vms['VM.Config.Options'] ? 'PVE.qemu.OSTypeEdit' : undefined,
|
||||||
renderer: PVE.Utils.render_kvm_ostype,
|
renderer: PVE.Utils.render_kvm_ostype,
|
||||||
defaultValue: 'other'
|
defaultValue: 'other'
|
||||||
@ -104,12 +104,12 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
tablet: {
|
tablet: {
|
||||||
header: 'Use tablet for pointer',
|
header: gettext('Use tablet for pointer'),
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: PVE.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.HWType'] ? {
|
editor: caps.vms['VM.Config.HWType'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'Use tablet for pointer',
|
subject: gettext('Use tablet for pointer'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
name: 'tablet',
|
name: 'tablet',
|
||||||
@ -122,12 +122,12 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
acpi: {
|
acpi: {
|
||||||
header: 'ACPI support',
|
header: gettext('ACPI support'),
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: PVE.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.HWType'] ? {
|
editor: caps.vms['VM.Config.HWType'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'ACPI support',
|
subject: gettext('ACPI support'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
name: 'acpi',
|
name: 'acpi',
|
||||||
@ -140,18 +140,18 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
scsihw: {
|
scsihw: {
|
||||||
header: 'SCSI Controller Type',
|
header: gettext('SCSI Controller Type'),
|
||||||
editor: caps.vms['VM.Config.Options'] ? 'PVE.qemu.ScsiHwEdit' : undefined,
|
editor: caps.vms['VM.Config.Options'] ? 'PVE.qemu.ScsiHwEdit' : undefined,
|
||||||
renderer: PVE.Utils.render_scsihw,
|
renderer: PVE.Utils.render_scsihw,
|
||||||
defaultValue: ''
|
defaultValue: ''
|
||||||
},
|
},
|
||||||
kvm: {
|
kvm: {
|
||||||
header: 'KVM hardware virtualization',
|
header: gettext('KVM hardware virtualization'),
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: PVE.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.HWType'] ? {
|
editor: caps.vms['VM.Config.HWType'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'KVM hardware virtualization',
|
subject: gettext('KVM hardware virtualization'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
name: 'kvm',
|
name: 'kvm',
|
||||||
@ -164,15 +164,15 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
cpuunits: {
|
cpuunits: {
|
||||||
header: 'CPU units',
|
header: gettext('CPU units'),
|
||||||
defaultValue: '1000',
|
defaultValue: '1000',
|
||||||
editor: caps.vms['VM.Config.CPU'] ? {
|
editor: caps.vms['VM.Config.CPU'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'CPU units',
|
subject: gettext('CPU units'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'numberfield',
|
xtype: 'numberfield',
|
||||||
name: 'cpuunits',
|
name: 'cpuunits',
|
||||||
fieldLabel: 'CPU units',
|
fieldLabel: gettext('CPU units'),
|
||||||
minValue: 8,
|
minValue: 8,
|
||||||
maxValue: 500000,
|
maxValue: 500000,
|
||||||
defaultValue: 1000,
|
defaultValue: 1000,
|
||||||
@ -181,12 +181,12 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
freeze: {
|
freeze: {
|
||||||
header: 'Freeze CPU at startup',
|
header: gettext('Freeze CPU at startup'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: PVE.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.PowerMgmt'] ? {
|
editor: caps.vms['VM.PowerMgmt'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'Freeze CPU at startup',
|
subject: gettext('Freeze CPU at startup'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
name: 'freeze',
|
name: 'freeze',
|
||||||
@ -194,17 +194,17 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
defaultValue: 0,
|
defaultValue: 0,
|
||||||
deleteDefaultValue: true,
|
deleteDefaultValue: true,
|
||||||
labelWidth: 140,
|
labelWidth: 140,
|
||||||
fieldLabel: 'Freeze CPU at startup'
|
fieldLabel: gettext('Freeze CPU at startup')
|
||||||
}
|
}
|
||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
localtime: {
|
localtime: {
|
||||||
header: 'Use local time for RTC',
|
header: gettext('Use local time for RTC'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: PVE.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'Use local time for RTC',
|
subject: gettext('Use local time for RTC'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvecheckbox',
|
xtype: 'pvecheckbox',
|
||||||
name: 'localtime',
|
name: 'localtime',
|
||||||
@ -212,22 +212,22 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
defaultValue: 0,
|
defaultValue: 0,
|
||||||
deleteDefaultValue: true,
|
deleteDefaultValue: true,
|
||||||
labelWidth: 140,
|
labelWidth: 140,
|
||||||
fieldLabel: 'Use local time for RTC'
|
fieldLabel: gettext('Use local time for RTC')
|
||||||
}
|
}
|
||||||
} : undefined
|
} : undefined
|
||||||
},
|
},
|
||||||
startdate: {
|
startdate: {
|
||||||
header: 'RTC start date',
|
header: gettext('RTC start date'),
|
||||||
defaultValue: 'now',
|
defaultValue: 'now',
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: 'RTC start date',
|
subject: gettext('RTC start date'),
|
||||||
items: {
|
items: {
|
||||||
xtype: 'pvetextfield',
|
xtype: 'pvetextfield',
|
||||||
name: 'startdate',
|
name: 'startdate',
|
||||||
deleteEmpty: true,
|
deleteEmpty: true,
|
||||||
value: 'now',
|
value: 'now',
|
||||||
fieldLabel: 'RTC start date',
|
fieldLabel: gettext('RTC start date'),
|
||||||
vtype: 'QemuStartDate',
|
vtype: 'QemuStartDate',
|
||||||
allowBlank: true
|
allowBlank: true
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
|
|||||||
minValue: 1,
|
minValue: 1,
|
||||||
maxValue: 4,
|
maxValue: 4,
|
||||||
value: '1',
|
value: '1',
|
||||||
fieldLabel: 'Sockets',
|
fieldLabel: gettext('Sockets'),
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
@ -28,7 +28,7 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
|
|||||||
minValue: 1,
|
minValue: 1,
|
||||||
maxValue: 32,
|
maxValue: 32,
|
||||||
value: '1',
|
value: '1',
|
||||||
fieldLabel: 'Cores',
|
fieldLabel: gettext('Cores'),
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
@ -46,11 +46,11 @@ Ext.define('PVE.qemu.ProcessorInputPanel', {
|
|||||||
xtype: 'CPUModelSelector',
|
xtype: 'CPUModelSelector',
|
||||||
name: 'cpu',
|
name: 'cpu',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'CPU type'
|
fieldLabel: gettext('CPU type')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'displayfield',
|
xtype: 'displayfield',
|
||||||
fieldLabel: 'Total cores',
|
fieldLabel: gettext('Total cores'),
|
||||||
name: 'totalcores',
|
name: 'totalcores',
|
||||||
value: '1'
|
value: '1'
|
||||||
}
|
}
|
||||||
@ -76,4 +76,4 @@ Ext.define('PVE.qemu.ProcessorEdit', {
|
|||||||
|
|
||||||
me.load();
|
me.load();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -16,7 +16,7 @@ Ext.define('PVE.window.Snapshot', {
|
|||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
var upid = response.result.data;
|
var upid = response.result.data;
|
||||||
@ -36,7 +36,7 @@ Ext.define('PVE.window.Snapshot', {
|
|||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
me.close();
|
me.close();
|
||||||
@ -180,7 +180,7 @@ Ext.define('PVE.window.Snapshot', {
|
|||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
me.close();
|
me.close();
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
|
@ -246,7 +246,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: 'RAM',
|
text: gettext('RAM'),
|
||||||
align: 'center',
|
align: 'center',
|
||||||
resizable: false,
|
resizable: false,
|
||||||
dataIndex: 'vmstate',
|
dataIndex: 'vmstate',
|
||||||
|
@ -34,20 +34,20 @@ Ext.define('PVE.qemu.StatusView', {
|
|||||||
var render_mem = function(value, metaData, record, rowIndex, colIndex, store) {
|
var render_mem = function(value, metaData, record, rowIndex, colIndex, store) {
|
||||||
var maxmem = me.getObjectValue('maxmem', 0);
|
var maxmem = me.getObjectValue('maxmem', 0);
|
||||||
var per = (value / maxmem)*100;
|
var per = (value / maxmem)*100;
|
||||||
var text = "<div>Total: " + PVE.Utils.format_size(maxmem) + "</div>" +
|
var text = "<div>" + gettext('Total') + ": " + PVE.Utils.format_size(maxmem) + "</div>" +
|
||||||
"<div>Used: " + PVE.Utils.format_size(value) + "</div>";
|
"<div>" + gettext('Used') + ": " + PVE.Utils.format_size(value) + "</div>";
|
||||||
return text;
|
return text;
|
||||||
};
|
};
|
||||||
|
|
||||||
var rows = {
|
var rows = {
|
||||||
name: { header: gettext('Name'), defaultValue: 'no name specified' },
|
name: { header: gettext('Name'), defaultValue: 'no name specified' },
|
||||||
qmpstatus: { header: gettext('Status'), defaultValue: 'unknown' },
|
qmpstatus: { header: gettext('Status'), defaultValue: 'unknown' },
|
||||||
cpu: { header: 'CPU usage', required: true, renderer: render_cpu },
|
cpu: { header: gettext('CPU usage'), required: true, renderer: render_cpu },
|
||||||
cpus: { visible: false },
|
cpus: { visible: false },
|
||||||
mem: { header: 'Memory usage', required: true, renderer: render_mem },
|
mem: { header: gettext('Memory usage'), required: true, renderer: render_mem },
|
||||||
maxmem: { visible: false },
|
maxmem: { visible: false },
|
||||||
uptime: { header: gettext('Uptime'), required: true, renderer: PVE.Utils.render_uptime },
|
uptime: { header: gettext('Uptime'), required: true, renderer: PVE.Utils.render_uptime },
|
||||||
ha: { header: 'Managed by HA', required: true, renderer: PVE.Utils.format_boolean }
|
ha: { header: gettext('Managed by HA'), required: true, renderer: PVE.Utils.format_boolean }
|
||||||
};
|
};
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
Ext.applyIf(me, {
|
||||||
|
@ -26,7 +26,7 @@ Ext.define('PVE.qemu.Summary', {
|
|||||||
var rstore = me.statusStore;
|
var rstore = me.statusStore;
|
||||||
|
|
||||||
var statusview = Ext.create('PVE.qemu.StatusView', {
|
var statusview = Ext.create('PVE.qemu.StatusView', {
|
||||||
title: 'Status',
|
title: gettext('Status'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
width: 400,
|
width: 400,
|
||||||
rstore: rstore
|
rstore: rstore
|
||||||
@ -59,28 +59,28 @@ Ext.define('PVE.qemu.Summary', {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "CPU usage %",
|
title: gettext('CPU usage %'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'cpu',
|
datasource: 'cpu',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Memory usage",
|
title: gettext('Memory usage'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'mem,maxmem',
|
datasource: 'mem,maxmem',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Network traffic",
|
title: gettext('Network traffic'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'netin,netout',
|
datasource: 'netin,netout',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Disk IO",
|
title: gettext('Disk IO'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'diskread,diskwrite',
|
datasource: 'diskread,diskwrite',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
|
@ -24,7 +24,7 @@ Ext.define('PVE.qemu.TemplateMenu', {
|
|||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
|
url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -114,7 +114,7 @@ Ext.define('PVE.storage.TemplateDownload', {
|
|||||||
},
|
},
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function (response, opts) {
|
failure: function (response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
var upid = response.result.data;
|
var upid = response.result.data;
|
||||||
@ -185,9 +185,9 @@ Ext.define('PVE.storage.Upload', {
|
|||||||
{
|
{
|
||||||
xtype: 'pveKVComboBox',
|
xtype: 'pveKVComboBox',
|
||||||
data: [
|
data: [
|
||||||
['iso', 'ISO image'],
|
['iso', gettext('ISO image')],
|
||||||
['backup', 'VZDump backup file'],
|
['backup', gettext('VZDump backup file')],
|
||||||
['vztmpl', 'OpenVZ template']
|
['vztmpl', gettext('OpenVZ template')]
|
||||||
],
|
],
|
||||||
fieldLabel: gettext('Content'),
|
fieldLabel: gettext('Content'),
|
||||||
name: 'content',
|
name: 'content',
|
||||||
@ -268,7 +268,7 @@ Ext.define('PVE.storage.Upload', {
|
|||||||
if (xhr.status == 200) {
|
if (xhr.status == 200) {
|
||||||
me.close();
|
me.close();
|
||||||
} else {
|
} else {
|
||||||
var msg = "Error " + xhr.status.toString() + ": " + Ext.htmlEncode(xhr.statusText);
|
var msg = gettext('Error') + " " + xhr.status.toString() + ": " + Ext.htmlEncode(xhr.statusText);
|
||||||
var result = Ext.decode(xhr.responseText);
|
var result = Ext.decode(xhr.responseText);
|
||||||
result.message = msg;
|
result.message = msg;
|
||||||
var htmlStatus = PVE.Utils.extractRequestError(result, true);
|
var htmlStatus = PVE.Utils.extractRequestError(result, true);
|
||||||
@ -496,4 +496,4 @@ Ext.define('PVE.storage.ContentView', {
|
|||||||
idProperty: 'volid'
|
idProperty: 'volid'
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -46,7 +46,7 @@ Ext.define('PVE.storage.IScsiScan', {
|
|||||||
displayField: 'target',
|
displayField: 'target',
|
||||||
matchFieldWidth: false,
|
matchFieldWidth: false,
|
||||||
listConfig: {
|
listConfig: {
|
||||||
loadingText: 'Scanning...',
|
loadingText: gettext('Scanning...'),
|
||||||
listeners: {
|
listeners: {
|
||||||
// hack: call setHeight to show scroll bars correctly
|
// hack: call setHeight to show scroll bars correctly
|
||||||
refresh: function(list) {
|
refresh: function(list) {
|
||||||
@ -103,7 +103,7 @@ Ext.define('PVE.storage.IScsiInputPanel', {
|
|||||||
height: 22, // hack: set same height as text fields
|
height: 22, // hack: set same height as text fields
|
||||||
name: 'portal',
|
name: 'portal',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'Portal',
|
fieldLabel: gettext('Portal'),
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
@ -120,7 +120,7 @@ Ext.define('PVE.storage.IScsiInputPanel', {
|
|||||||
xtype: me.create ? 'pveIScsiScan' : 'displayfield',
|
xtype: me.create ? 'pveIScsiScan' : 'displayfield',
|
||||||
name: 'target',
|
name: 'target',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'Target',
|
fieldLabel: gettext('Target'),
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -176,7 +176,7 @@ Ext.define('PVE.storage.IScsiEdit', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
subject: 'iSCSI target',
|
subject: gettext('iSCSI target'),
|
||||||
isAdd: true,
|
isAdd: true,
|
||||||
items: [ ipanel ]
|
items: [ ipanel ]
|
||||||
});
|
});
|
||||||
|
@ -25,7 +25,7 @@ Ext.define('PVE.storage.VgSelector', {
|
|||||||
queryMode: 'local',
|
queryMode: 'local',
|
||||||
editable: false,
|
editable: false,
|
||||||
listConfig: {
|
listConfig: {
|
||||||
loadingText: 'Scanning...',
|
loadingText: gettext('Scanning...'),
|
||||||
listeners: {
|
listeners: {
|
||||||
// hack: call setHeight to show scroll bars correctly
|
// hack: call setHeight to show scroll bars correctly
|
||||||
refresh: function(list) {
|
refresh: function(list) {
|
||||||
@ -236,7 +236,7 @@ Ext.define('PVE.storage.LVMEdit', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
subject: 'LVM group',
|
subject: gettext('LVM group'),
|
||||||
isAdd: true,
|
isAdd: true,
|
||||||
items: [ ipanel ]
|
items: [ ipanel ]
|
||||||
});
|
});
|
||||||
|
@ -46,7 +46,7 @@ Ext.define('PVE.storage.NFSScan', {
|
|||||||
displayField: 'path',
|
displayField: 'path',
|
||||||
matchFieldWidth: false,
|
matchFieldWidth: false,
|
||||||
listConfig: {
|
listConfig: {
|
||||||
loadingText: 'Scanning...',
|
loadingText: gettext('Scanning...'),
|
||||||
listeners: {
|
listeners: {
|
||||||
// hack: call setHeight to show scroll bars correctly
|
// hack: call setHeight to show scroll bars correctly
|
||||||
refresh: function(list) {
|
refresh: function(list) {
|
||||||
@ -120,7 +120,7 @@ Ext.define('PVE.storage.NFSInputPanel', {
|
|||||||
height: 22, // hack: set same height as text fields
|
height: 22, // hack: set same height as text fields
|
||||||
name: 'export',
|
name: 'export',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: 'Export',
|
fieldLabel: gettext('Export'),
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -187,7 +187,7 @@ Ext.define('PVE.storage.NFSEdit', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
subject: 'NFS share',
|
subject: gettext('NFS share'),
|
||||||
isAdd: true,
|
isAdd: true,
|
||||||
items: [ ipanel ]
|
items: [ ipanel ]
|
||||||
});
|
});
|
||||||
|
@ -140,7 +140,7 @@ Ext.define('PVE.storage.NexentaEdit', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
subject: 'Nexenta Storage',
|
subject: gettext('Nexenta Storage'),
|
||||||
isAdd: true,
|
isAdd: true,
|
||||||
items: [ ipanel ]
|
items: [ ipanel ]
|
||||||
});
|
});
|
||||||
|
@ -106,7 +106,7 @@ Ext.define('PVE.storage.RBDEdit', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
subject: 'RBD Storage',
|
subject: gettext('RBD Storage'),
|
||||||
isAdd: true,
|
isAdd: true,
|
||||||
items: [ ipanel ]
|
items: [ ipanel ]
|
||||||
});
|
});
|
||||||
|
@ -90,7 +90,7 @@ Ext.define('PVE.storage.SheepdogEdit', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
subject: 'Sheepdog Storage',
|
subject: gettext('Sheepdog Storage'),
|
||||||
isAdd: true,
|
isAdd: true,
|
||||||
items: [ ipanel ]
|
items: [ ipanel ]
|
||||||
});
|
});
|
||||||
|
@ -41,7 +41,7 @@ Ext.define('PVE.storage.Summary', {
|
|||||||
statusview,
|
statusview,
|
||||||
{
|
{
|
||||||
xtype: 'pveRRDView',
|
xtype: 'pveRRDView',
|
||||||
title: "Usage",
|
title: gettext('Usage'),
|
||||||
pveSelNode: me.pveSelNode,
|
pveSelNode: me.pveSelNode,
|
||||||
datasource: 'total,used',
|
datasource: 'total,used',
|
||||||
rrdurl: rrdurl
|
rrdurl: rrdurl
|
||||||
|
@ -11,7 +11,7 @@ Ext.define('PVE.window.Migrate', {
|
|||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
var upid = response.result.data;
|
var upid = response.result.data;
|
||||||
@ -58,7 +58,7 @@ Ext.define('PVE.window.Migrate', {
|
|||||||
{
|
{
|
||||||
xtype: 'PVE.form.NodeSelector',
|
xtype: 'PVE.form.NodeSelector',
|
||||||
name: 'target',
|
name: 'target',
|
||||||
fieldLabel: 'Target node',
|
fieldLabel: gettext('Target node'),
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
onlineValidator: true
|
onlineValidator: true
|
||||||
},
|
},
|
||||||
@ -68,7 +68,7 @@ Ext.define('PVE.window.Migrate', {
|
|||||||
uncheckedValue: 0,
|
uncheckedValue: 0,
|
||||||
defaultValue: 0,
|
defaultValue: 0,
|
||||||
checked: running,
|
checked: running,
|
||||||
fieldLabel: 'Online'
|
fieldLabel: gettext('Online')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -76,7 +76,7 @@ Ext.define('PVE.window.Migrate', {
|
|||||||
var form = me.formPanel.getForm();
|
var form = me.formPanel.getForm();
|
||||||
|
|
||||||
var submitBtn = Ext.create('Ext.Button', {
|
var submitBtn = Ext.create('Ext.Button', {
|
||||||
text: 'Migrate',
|
text: gettext('Migrate'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var values = form.getValues();
|
var values = form.getValues();
|
||||||
me.migrate(values.target, values.online);
|
me.migrate(values.target, values.online);
|
||||||
@ -84,7 +84,7 @@ Ext.define('PVE.window.Migrate', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
title: "Migrate VM " + me.vmid,
|
title: gettext('Migrate VM') + " " + me.vmid,
|
||||||
width: 350,
|
width: 350,
|
||||||
modal: true,
|
modal: true,
|
||||||
layout: 'auto',
|
layout: 'auto',
|
||||||
|
@ -61,7 +61,7 @@ Ext.define('PVE.window.Restore', {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function (response, opts) {
|
failure: function (response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, options) {
|
success: function(response, options) {
|
||||||
var upid = response.result.data;
|
var upid = response.result.data;
|
||||||
@ -102,7 +102,7 @@ Ext.define('PVE.window.Restore', {
|
|||||||
if (me.vmid) {
|
if (me.vmid) {
|
||||||
var msg = gettext('Are you sure you want to restore this VM?') + ' ' +
|
var msg = gettext('Are you sure you want to restore this VM?') + ' ' +
|
||||||
gettext('This will permanently erase current VM data.');
|
gettext('This will permanently erase current VM data.');
|
||||||
Ext.Msg.confirm('Confirmation', msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirmation'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -118,7 +118,7 @@ Ext.define('PVE.window.Restore', {
|
|||||||
submitBtn.setDisabled(!valid);
|
submitBtn.setDisabled(!valid);
|
||||||
});
|
});
|
||||||
|
|
||||||
var title = (me.vmtype === 'openvz') ? "Restore CT" : "Restore VM";
|
var title = (me.vmtype === 'openvz') ? gettext('Restore CT') : gettext('Restore VM');
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
title: title,
|
title: title,
|
||||||
|
@ -114,7 +114,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
visible: false
|
visible: false
|
||||||
},
|
},
|
||||||
type: {
|
type: {
|
||||||
header: 'Task type',
|
header: gettext('Task type'),
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
@ -126,7 +126,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
pid: {
|
pid: {
|
||||||
header: 'Process ID',
|
header: gettext('Process ID'),
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
starttime: {
|
starttime: {
|
||||||
@ -135,7 +135,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
renderer: PVE.Utils.render_timestamp
|
renderer: PVE.Utils.render_timestamp
|
||||||
},
|
},
|
||||||
upid: {
|
upid: {
|
||||||
header: 'Unique task ID'
|
header: gettext('Unique task ID')
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user