mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-14 09:01:32 +00:00
use Proxmox.Utils instead of PVE.Utils
some function are now in Proxmox.Utils instead, so we have to use that Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
5720fafabc
commit
e7ade592e3
@ -1,6 +1,6 @@
|
|||||||
// ExtJS related things
|
// ExtJS related things
|
||||||
|
|
||||||
PVE.Utils.toolkit = 'extjs';
|
Proxmox.Utils.toolkit = 'extjs';
|
||||||
|
|
||||||
// do not send '_dc' parameter
|
// do not send '_dc' parameter
|
||||||
Ext.Ajax.disableCaching = false;
|
Ext.Ajax.disableCaching = false;
|
||||||
@ -8,13 +8,13 @@ Ext.Ajax.disableCaching = false;
|
|||||||
// custom Vtypes
|
// custom Vtypes
|
||||||
Ext.apply(Ext.form.field.VTypes, {
|
Ext.apply(Ext.form.field.VTypes, {
|
||||||
IPAddress: function(v) {
|
IPAddress: function(v) {
|
||||||
return PVE.Utils.IP4_match.test(v);
|
return Proxmox.Utils.IP4_match.test(v);
|
||||||
},
|
},
|
||||||
IPAddressText: gettext('Example') + ': 192.168.1.1',
|
IPAddressText: gettext('Example') + ': 192.168.1.1',
|
||||||
IPAddressMask: /[\d\.]/i,
|
IPAddressMask: /[\d\.]/i,
|
||||||
|
|
||||||
IPCIDRAddress: function(v) {
|
IPCIDRAddress: function(v) {
|
||||||
var result = PVE.Utils.IP4_cidr_match.exec(v);
|
var result = Proxmox.Utils.IP4_cidr_match.exec(v);
|
||||||
// limits according to JSON Schema see
|
// limits according to JSON Schema see
|
||||||
// pve-common/src/PVE/JSONSchema.pm
|
// pve-common/src/PVE/JSONSchema.pm
|
||||||
return (result !== null && result[1] >= 8 && result[1] <= 32);
|
return (result !== null && result[1] >= 8 && result[1] <= 32);
|
||||||
@ -23,13 +23,13 @@ Ext.apply(Ext.form.field.VTypes, {
|
|||||||
IPCIDRAddressMask: /[\d\.\/]/i,
|
IPCIDRAddressMask: /[\d\.\/]/i,
|
||||||
|
|
||||||
IP6Address: function(v) {
|
IP6Address: function(v) {
|
||||||
return PVE.Utils.IP6_match.test(v);
|
return Proxmox.Utils.IP6_match.test(v);
|
||||||
},
|
},
|
||||||
IP6AddressText: gettext('Example') + ': 2001:DB8::42',
|
IP6AddressText: gettext('Example') + ': 2001:DB8::42',
|
||||||
IP6AddressMask: /[A-Fa-f0-9:]/,
|
IP6AddressMask: /[A-Fa-f0-9:]/,
|
||||||
|
|
||||||
IP6CIDRAddress: function(v) {
|
IP6CIDRAddress: function(v) {
|
||||||
var result = PVE.Utils.IP6_cidr_match.exec(v);
|
var result = Proxmox.Utils.IP6_cidr_match.exec(v);
|
||||||
// limits according to JSON Schema see
|
// limits according to JSON Schema see
|
||||||
// pve-common/src/PVE/JSONSchema.pm
|
// pve-common/src/PVE/JSONSchema.pm
|
||||||
return (result !== null && result[1] >= 8 && result[1] <= 120);
|
return (result !== null && result[1] >= 8 && result[1] <= 120);
|
||||||
@ -44,7 +44,7 @@ Ext.apply(Ext.form.field.VTypes, {
|
|||||||
IP6PrefixLengthMask: /[0-9]/,
|
IP6PrefixLengthMask: /[0-9]/,
|
||||||
|
|
||||||
IP64Address: function(v) {
|
IP64Address: function(v) {
|
||||||
return PVE.Utils.IP64_match.test(v);
|
return Proxmox.Utils.IP64_match.test(v);
|
||||||
},
|
},
|
||||||
IP64AddressText: gettext('Example') + ': 192.168.1.1 2001:DB8::42',
|
IP64AddressText: gettext('Example') + ': 192.168.1.1 2001:DB8::42',
|
||||||
IP64AddressMask: /[A-Fa-f0-9\.:]/,
|
IP64AddressMask: /[A-Fa-f0-9\.:]/,
|
||||||
@ -99,7 +99,7 @@ Ext.apply(Ext.form.field.VTypes, {
|
|||||||
HttpProxyText: gettext('Example') + ": http://username:password@host:port/",
|
HttpProxyText: gettext('Example') + ": http://username:password@host:port/",
|
||||||
|
|
||||||
DnsName: function(v) {
|
DnsName: function(v) {
|
||||||
return PVE.Utils.DnsName_match.test(v);
|
return Proxmox.Utils.DnsName_match.test(v);
|
||||||
},
|
},
|
||||||
DnsNameText: gettext('This is not a valid DNS name'),
|
DnsNameText: gettext('This is not a valid DNS name'),
|
||||||
|
|
||||||
@ -117,9 +117,9 @@ Ext.apply(Ext.form.field.VTypes, {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!PVE.Utils.HostPort_match.test(list[i]) &&
|
if (!Proxmox.Utils.HostPort_match.test(list[i]) &&
|
||||||
!PVE.Utils.HostPortBrackets_match.test(list[i]) &&
|
!Proxmox.Utils.HostPortBrackets_match.test(list[i]) &&
|
||||||
!PVE.Utils.IP6_dotnotation_match.test(list[i])) {
|
!Proxmox.Utils.IP6_dotnotation_match.test(list[i])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -185,24 +185,9 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return fa.join(', ');
|
return fa.join(', ');
|
||||||
},
|
},
|
||||||
|
|
||||||
network_iface_types: {
|
|
||||||
eth: gettext("Network Device"),
|
|
||||||
bridge: 'Linux Bridge',
|
|
||||||
bond: 'Linux Bond',
|
|
||||||
OVSBridge: 'OVS Bridge',
|
|
||||||
OVSBond: 'OVS Bond',
|
|
||||||
OVSPort: 'OVS Port',
|
|
||||||
OVSIntPort: 'OVS IntPort'
|
|
||||||
},
|
|
||||||
|
|
||||||
render_network_iface_type: function(value) {
|
|
||||||
return PVE.Utils.network_iface_types[value] ||
|
|
||||||
PVE.Utils.unknownText;
|
|
||||||
},
|
|
||||||
|
|
||||||
render_qemu_bios: function(value) {
|
render_qemu_bios: function(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return PVE.Utils.defaultText + ' (SeaBIOS)';
|
return Proxmox.Utils.defaultText + ' (SeaBIOS)';
|
||||||
} else if (value === 'seabios') {
|
} else if (value === 'seabios') {
|
||||||
return "SeaBIOS";
|
return "SeaBIOS";
|
||||||
} else if (value === 'ovmf') {
|
} else if (value === 'ovmf') {
|
||||||
@ -214,7 +199,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
|
|
||||||
render_scsihw: function(value) {
|
render_scsihw: function(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return PVE.Utils.defaultText + ' (LSI 53C895A)';
|
return Proxmox.Utils.defaultText + ' (LSI 53C895A)';
|
||||||
} else if (value === 'lsi') {
|
} else if (value === 'lsi') {
|
||||||
return 'LSI 53C895A';
|
return 'LSI 53C895A';
|
||||||
} else if (value === 'lsi53c810') {
|
} else if (value === 'lsi53c810') {
|
||||||
@ -284,8 +269,8 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
},
|
},
|
||||||
|
|
||||||
render_kvm_language: function (value) {
|
render_kvm_language: function (value) {
|
||||||
if (!value) {
|
if (!value || value === '__default__') {
|
||||||
return PVE.Utils.defaultText;
|
return Proxmox.Utils.defaultText;
|
||||||
}
|
}
|
||||||
var text = PVE.Utils.kvm_keymaps[value];
|
var text = PVE.Utils.kvm_keymaps[value];
|
||||||
if (text) {
|
if (text) {
|
||||||
@ -305,7 +290,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
|
|
||||||
render_console_viewer: function(value) {
|
render_console_viewer: function(value) {
|
||||||
if (!value || value === '__default__') {
|
if (!value || value === '__default__') {
|
||||||
return PVE.Utils.defaultText + ' (HTML5)';
|
return Proxmox.Utils.defaultText + ' (HTML5)';
|
||||||
} else if (value === 'vv') {
|
} else if (value === 'vv') {
|
||||||
return 'SPICE (remote-viewer)';
|
return 'SPICE (remote-viewer)';
|
||||||
} else if (value === 'html5') {
|
} else if (value === 'html5') {
|
||||||
@ -315,51 +300,9 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
language_map: {
|
|
||||||
zh_CN: 'Chinese',
|
|
||||||
ca: 'Catalan',
|
|
||||||
da: 'Danish',
|
|
||||||
en: 'English',
|
|
||||||
eu: 'Euskera (Basque)',
|
|
||||||
fr: 'French',
|
|
||||||
de: 'German',
|
|
||||||
it: 'Italian',
|
|
||||||
ja: 'Japanese',
|
|
||||||
nb: 'Norwegian (Bokmal)',
|
|
||||||
nn: 'Norwegian (Nynorsk)',
|
|
||||||
fa: 'Persian (Farsi)',
|
|
||||||
pl: 'Polish',
|
|
||||||
pt_BR: 'Portuguese (Brazil)',
|
|
||||||
ru: 'Russian',
|
|
||||||
sl: 'Slovenian',
|
|
||||||
es: 'Spanish',
|
|
||||||
sv: 'Swedish',
|
|
||||||
tr: 'Turkish'
|
|
||||||
},
|
|
||||||
|
|
||||||
render_language: function (value) {
|
|
||||||
if (!value) {
|
|
||||||
return PVE.Utils.defaultText + ' (English)';
|
|
||||||
}
|
|
||||||
var text = PVE.Utils.language_map[value];
|
|
||||||
if (text) {
|
|
||||||
return text + ' (' + value + ')';
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
},
|
|
||||||
|
|
||||||
language_array: function() {
|
|
||||||
var data = [['__default__', PVE.Utils.render_language('')]];
|
|
||||||
Ext.Object.each(PVE.Utils.language_map, function(key, value) {
|
|
||||||
data.push([key, PVE.Utils.render_language(value)]);
|
|
||||||
});
|
|
||||||
|
|
||||||
return data;
|
|
||||||
},
|
|
||||||
|
|
||||||
render_kvm_vga_driver: function (value) {
|
render_kvm_vga_driver: function (value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return PVE.Utils.defaultText;
|
return Proxmox.Utils.defaultText;
|
||||||
}
|
}
|
||||||
var text = PVE.Utils.kvm_vga_drivers[value];
|
var text = PVE.Utils.kvm_vga_drivers[value];
|
||||||
if (text) {
|
if (text) {
|
||||||
@ -396,46 +339,6 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return res;
|
return res;
|
||||||
},
|
},
|
||||||
|
|
||||||
authOK: function() {
|
|
||||||
return Ext.util.Cookies.get('PVEAuthCookie');
|
|
||||||
},
|
|
||||||
|
|
||||||
authClear: function() {
|
|
||||||
Ext.util.Cookies.clear("PVEAuthCookie");
|
|
||||||
},
|
|
||||||
|
|
||||||
// fixme: remove - not needed?
|
|
||||||
gridLineHeigh: function() {
|
|
||||||
return 21;
|
|
||||||
|
|
||||||
//if (Ext.isGecko)
|
|
||||||
//return 23;
|
|
||||||
//return 21;
|
|
||||||
},
|
|
||||||
|
|
||||||
extractRequestError: function(result, verbose) {
|
|
||||||
var msg = gettext('Successful');
|
|
||||||
|
|
||||||
if (!result.success) {
|
|
||||||
msg = gettext("Unknown error");
|
|
||||||
if (result.message) {
|
|
||||||
msg = result.message;
|
|
||||||
if (result.status) {
|
|
||||||
msg += ' (' + result.status + ')';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (verbose && Ext.isObject(result.errors)) {
|
|
||||||
msg += "<br>";
|
|
||||||
Ext.Object.each(result.errors, function(prop, desc) {
|
|
||||||
msg += "<br><b>" + Ext.htmlEncode(prop) + "</b>: " +
|
|
||||||
Ext.htmlEncode(desc);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg;
|
|
||||||
},
|
|
||||||
|
|
||||||
extractFormActionError: function(action) {
|
extractFormActionError: function(action) {
|
||||||
var msg;
|
var msg;
|
||||||
switch (action.failureType) {
|
switch (action.failureType) {
|
||||||
@ -451,299 +354,12 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
break;
|
break;
|
||||||
case Ext.form.action.Action.LOAD_FAILURE:
|
case Ext.form.action.Action.LOAD_FAILURE:
|
||||||
case Ext.form.action.Action.SERVER_INVALID:
|
case Ext.form.action.Action.SERVER_INVALID:
|
||||||
msg = PVE.Utils.extractRequestError(action.result, true);
|
msg = Proxmox.Utils.extractRequestError(action.result, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return msg;
|
return msg;
|
||||||
},
|
},
|
||||||
|
|
||||||
// Ext.Ajax.request
|
|
||||||
API2Request: function(reqOpts) {
|
|
||||||
|
|
||||||
var newopts = Ext.apply({
|
|
||||||
waitMsg: gettext('Please wait...')
|
|
||||||
}, reqOpts);
|
|
||||||
|
|
||||||
if (!newopts.url.match(/^\/api2/)) {
|
|
||||||
newopts.url = '/api2/extjs' + newopts.url;
|
|
||||||
}
|
|
||||||
delete newopts.callback;
|
|
||||||
|
|
||||||
var createWrapper = function(successFn, callbackFn, failureFn) {
|
|
||||||
Ext.apply(newopts, {
|
|
||||||
success: function(response, options) {
|
|
||||||
if (options.waitMsgTarget) {
|
|
||||||
if (PVE.Utils.toolkit === 'touch') {
|
|
||||||
options.waitMsgTarget.setMasked(false);
|
|
||||||
} else {
|
|
||||||
options.waitMsgTarget.setLoading(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var result = Ext.decode(response.responseText);
|
|
||||||
response.result = result;
|
|
||||||
if (!result.success) {
|
|
||||||
response.htmlStatus = PVE.Utils.extractRequestError(result, true);
|
|
||||||
Ext.callback(callbackFn, options.scope, [options, false, response]);
|
|
||||||
Ext.callback(failureFn, options.scope, [response, options]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Ext.callback(callbackFn, options.scope, [options, true, response]);
|
|
||||||
Ext.callback(successFn, options.scope, [response, options]);
|
|
||||||
},
|
|
||||||
failure: function(response, options) {
|
|
||||||
if (options.waitMsgTarget) {
|
|
||||||
if (PVE.Utils.toolkit === 'touch') {
|
|
||||||
options.waitMsgTarget.setMasked(false);
|
|
||||||
} else {
|
|
||||||
options.waitMsgTarget.setLoading(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
response.result = {};
|
|
||||||
try {
|
|
||||||
response.result = Ext.decode(response.responseText);
|
|
||||||
} catch(e) {}
|
|
||||||
var msg = gettext('Connection error') + ' - server offline?';
|
|
||||||
if (response.aborted) {
|
|
||||||
msg = gettext('Connection error') + ' - aborted.';
|
|
||||||
} else if (response.timedout) {
|
|
||||||
msg = gettext('Connection error') + ' - Timeout.';
|
|
||||||
} else if (response.status && response.statusText) {
|
|
||||||
msg = gettext('Connection error') + ' ' + response.status + ': ' + response.statusText;
|
|
||||||
}
|
|
||||||
response.htmlStatus = msg;
|
|
||||||
Ext.callback(callbackFn, options.scope, [options, false, response]);
|
|
||||||
Ext.callback(failureFn, options.scope, [response, options]);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
createWrapper(reqOpts.success, reqOpts.callback, reqOpts.failure);
|
|
||||||
|
|
||||||
var target = newopts.waitMsgTarget;
|
|
||||||
if (target) {
|
|
||||||
if (PVE.Utils.toolkit === 'touch') {
|
|
||||||
target.setMasked({ xtype: 'loadmask', message: newopts.waitMsg} );
|
|
||||||
} else {
|
|
||||||
// Note: ExtJS bug - this does not work when component is not rendered
|
|
||||||
target.setLoading(newopts.waitMsg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Ext.Ajax.request(newopts);
|
|
||||||
},
|
|
||||||
|
|
||||||
assemble_field_data: function(values, data) {
|
|
||||||
if (Ext.isObject(data)) {
|
|
||||||
Ext.Object.each(data, function(name, val) {
|
|
||||||
if (values.hasOwnProperty(name)) {
|
|
||||||
var bucket = values[name];
|
|
||||||
if (!Ext.isArray(bucket)) {
|
|
||||||
bucket = values[name] = [bucket];
|
|
||||||
}
|
|
||||||
if (Ext.isArray(val)) {
|
|
||||||
values[name] = bucket.concat(val);
|
|
||||||
} else {
|
|
||||||
bucket.push(val);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
values[name] = val;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
checked_command: function(orig_cmd) {
|
|
||||||
PVE.Utils.API2Request({
|
|
||||||
url: '/nodes/localhost/subscription',
|
|
||||||
method: 'GET',
|
|
||||||
//waitMsgTarget: me,
|
|
||||||
failure: function(response, opts) {
|
|
||||||
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
|
|
||||||
},
|
|
||||||
success: function(response, opts) {
|
|
||||||
var data = response.result.data;
|
|
||||||
|
|
||||||
if (data.status !== 'Active') {
|
|
||||||
Ext.Msg.show({
|
|
||||||
title: gettext('No valid subscription'),
|
|
||||||
icon: Ext.Msg.WARNING,
|
|
||||||
msg: PVE.Utils.noSubKeyHtml,
|
|
||||||
buttons: Ext.Msg.OK,
|
|
||||||
callback: function(btn) {
|
|
||||||
if (btn !== 'ok') {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
orig_cmd();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
orig_cmd();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
task_desc_table: {
|
|
||||||
diskinit: [ 'Disk', gettext('Initialize Disk with GPT') ],
|
|
||||||
vncproxy: [ 'VM/CT', gettext('Console') ],
|
|
||||||
spiceproxy: [ 'VM/CT', gettext('Console') + ' (Spice)' ],
|
|
||||||
vncshell: [ '', gettext('Shell') ],
|
|
||||||
spiceshell: [ '', gettext('Shell') + ' (Spice)' ],
|
|
||||||
qmsnapshot: [ 'VM', gettext('Snapshot') ],
|
|
||||||
qmrollback: [ 'VM', gettext('Rollback') ],
|
|
||||||
qmdelsnapshot: [ 'VM', gettext('Delete Snapshot') ],
|
|
||||||
qmcreate: [ 'VM', gettext('Create') ],
|
|
||||||
qmrestore: [ 'VM', gettext('Restore') ],
|
|
||||||
qmdestroy: [ 'VM', gettext('Destroy') ],
|
|
||||||
qmigrate: [ 'VM', gettext('Migrate') ],
|
|
||||||
qmclone: [ 'VM', gettext('Clone') ],
|
|
||||||
qmmove: [ 'VM', gettext('Move disk') ],
|
|
||||||
qmtemplate: [ 'VM', gettext('Convert to template') ],
|
|
||||||
qmstart: [ 'VM', gettext('Start') ],
|
|
||||||
qmstop: [ 'VM', gettext('Stop') ],
|
|
||||||
qmreset: [ 'VM', gettext('Reset') ],
|
|
||||||
qmshutdown: [ 'VM', gettext('Shutdown') ],
|
|
||||||
qmsuspend: [ 'VM', gettext('Suspend') ],
|
|
||||||
qmresume: [ 'VM', gettext('Resume') ],
|
|
||||||
qmconfig: [ 'VM', gettext('Configure') ],
|
|
||||||
vzsnapshot: [ 'CT', gettext('Snapshot') ],
|
|
||||||
vzrollback: [ 'CT', gettext('Rollback') ],
|
|
||||||
vzdelsnapshot: [ 'CT', gettext('Delete Snapshot') ],
|
|
||||||
vzcreate: ['CT', gettext('Create') ],
|
|
||||||
vzrestore: ['CT', gettext('Restore') ],
|
|
||||||
vzdestroy: ['CT', gettext('Destroy') ],
|
|
||||||
vzmigrate: [ 'CT', gettext('Migrate') ],
|
|
||||||
vzclone: [ 'CT', gettext('Clone') ],
|
|
||||||
vztemplate: [ 'CT', gettext('Convert to template') ],
|
|
||||||
vzstart: ['CT', gettext('Start') ],
|
|
||||||
vzstop: ['CT', gettext('Stop') ],
|
|
||||||
vzmount: ['CT', gettext('Mount') ],
|
|
||||||
vzumount: ['CT', gettext('Unmount') ],
|
|
||||||
vzshutdown: ['CT', gettext('Shutdown') ],
|
|
||||||
vzsuspend: [ 'CT', gettext('Suspend') ],
|
|
||||||
vzresume: [ 'CT', gettext('Resume') ],
|
|
||||||
hamigrate: [ 'HA', gettext('Migrate') ],
|
|
||||||
hastart: [ 'HA', gettext('Start') ],
|
|
||||||
hastop: [ 'HA', gettext('Stop') ],
|
|
||||||
srvstart: ['SRV', gettext('Start') ],
|
|
||||||
srvstop: ['SRV', gettext('Stop') ],
|
|
||||||
srvrestart: ['SRV', gettext('Restart') ],
|
|
||||||
srvreload: ['SRV', gettext('Reload') ],
|
|
||||||
cephcreatemon: ['Ceph Monitor', gettext('Create') ],
|
|
||||||
cephdestroymon: ['Ceph Monitor', gettext('Destroy') ],
|
|
||||||
cephcreateosd: ['Ceph OSD', gettext('Create') ],
|
|
||||||
cephdestroyosd: ['Ceph OSD', gettext('Destroy') ],
|
|
||||||
cephcreatepool: ['Ceph Pool', gettext('Create') ],
|
|
||||||
cephdestroypool: ['Ceph Pool', gettext('Destroy') ],
|
|
||||||
imgcopy: ['', gettext('Copy data') ],
|
|
||||||
imgdel: ['', gettext('Erase data') ],
|
|
||||||
download: ['', gettext('Download') ],
|
|
||||||
vzdump: ['', gettext('Backup') ],
|
|
||||||
aptupdate: ['', gettext('Update package database') ],
|
|
||||||
startall: [ '', gettext('Start all VMs and Containers') ],
|
|
||||||
stopall: [ '', gettext('Stop all VMs and Containers') ],
|
|
||||||
migrateall: [ '', gettext('Migrate all VMs and Containers') ]
|
|
||||||
},
|
|
||||||
|
|
||||||
format_task_description: function(type, id) {
|
|
||||||
var farray = PVE.Utils.task_desc_table[type];
|
|
||||||
if (!farray) {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
var prefix = farray[0];
|
|
||||||
var text = farray[1];
|
|
||||||
if (prefix) {
|
|
||||||
return prefix + ' ' + id + ' - ' + text;
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
},
|
|
||||||
|
|
||||||
parse_task_upid: function(upid) {
|
|
||||||
var task = {};
|
|
||||||
|
|
||||||
var res = upid.match(/^UPID:(\S+):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/);
|
|
||||||
if (!res) {
|
|
||||||
throw "unable to parse upid '" + upid + "'";
|
|
||||||
}
|
|
||||||
task.node = res[1];
|
|
||||||
task.pid = parseInt(res[2], 16);
|
|
||||||
task.pstart = parseInt(res[3], 16);
|
|
||||||
task.starttime = parseInt(res[4], 16);
|
|
||||||
task.type = res[5];
|
|
||||||
task.id = res[6];
|
|
||||||
task.user = res[7];
|
|
||||||
|
|
||||||
task.desc = PVE.Utils.format_task_description(task.type, task.id);
|
|
||||||
|
|
||||||
return task;
|
|
||||||
},
|
|
||||||
|
|
||||||
format_size: function(size) {
|
|
||||||
/*jslint confusion: true */
|
|
||||||
|
|
||||||
var units = ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi'];
|
|
||||||
var num = 0;
|
|
||||||
|
|
||||||
while (size >= 1024 && ((num++)+1) < units.length) {
|
|
||||||
size = size / 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
return size.toFixed((num > 0)?2:0) + " " + units[num] + "B";
|
|
||||||
},
|
|
||||||
|
|
||||||
format_html_bar: function(per, text) {
|
|
||||||
|
|
||||||
return "<div class='pve-bar-wrap'>" + text + "<div class='pve-bar-border'>" +
|
|
||||||
"<div class='pve-bar-inner' style='width:" + per + "%;'></div>" +
|
|
||||||
"</div></div>";
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
format_cpu_bar: function(per1, per2, text) {
|
|
||||||
|
|
||||||
return "<div class='pve-bar-border'>" +
|
|
||||||
"<div class='pve-bar-inner' style='width:" + per1 + "%;'></div>" +
|
|
||||||
"<div class='pve-bar-inner2' style='width:" + per2 + "%;'></div>" +
|
|
||||||
"<div class='pve-bar-text'>" + text + "</div>" +
|
|
||||||
"</div>";
|
|
||||||
},
|
|
||||||
|
|
||||||
format_large_bar: function(per, text) {
|
|
||||||
|
|
||||||
if (!text) {
|
|
||||||
text = per.toFixed(1) + "%";
|
|
||||||
}
|
|
||||||
|
|
||||||
return "<div class='pve-largebar-border'>" +
|
|
||||||
"<div class='pve-largebar-inner' style='width:" + per + "%;'></div>" +
|
|
||||||
"<div class='pve-largebar-text'>" + text + "</div>" +
|
|
||||||
"</div>";
|
|
||||||
},
|
|
||||||
|
|
||||||
format_duration_long: function(ut) {
|
|
||||||
|
|
||||||
var days = Math.floor(ut / 86400);
|
|
||||||
ut -= days*86400;
|
|
||||||
var hours = Math.floor(ut / 3600);
|
|
||||||
ut -= hours*3600;
|
|
||||||
var mins = Math.floor(ut / 60);
|
|
||||||
ut -= mins*60;
|
|
||||||
|
|
||||||
var hours_str = '00' + hours.toString();
|
|
||||||
hours_str = hours_str.substr(hours_str.length - 2);
|
|
||||||
var mins_str = "00" + mins.toString();
|
|
||||||
mins_str = mins_str.substr(mins_str.length - 2);
|
|
||||||
var ut_str = "00" + ut.toString();
|
|
||||||
ut_str = ut_str.substr(ut_str.length - 2);
|
|
||||||
|
|
||||||
if (days) {
|
|
||||||
var ds = days > 1 ? PVE.Utils.daysText : PVE.Utils.dayText;
|
|
||||||
return days.toString() + ' ' + ds + ' ' +
|
|
||||||
hours_str + ':' + mins_str + ':' + ut_str;
|
|
||||||
} else {
|
|
||||||
return hours_str + ':' + mins_str + ':' + ut_str;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
format_duration_short: function(ut) {
|
format_duration_short: function(ut) {
|
||||||
|
|
||||||
if (ut < 60) {
|
if (ut < 60) {
|
||||||
@ -764,43 +380,18 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return days.toFixed(1) + 'd';
|
return days.toFixed(1) + 'd';
|
||||||
},
|
},
|
||||||
|
|
||||||
yesText: gettext('Yes'),
|
|
||||||
noText: gettext('No'),
|
|
||||||
enabledText: gettext('Enabled'),
|
|
||||||
disabledText: gettext('Disabled'),
|
|
||||||
noneText: gettext('none'),
|
|
||||||
errorText: gettext('Error'),
|
|
||||||
unknownText: gettext('Unknown'),
|
|
||||||
defaultText: gettext('Default'),
|
|
||||||
daysText: gettext('days'),
|
|
||||||
dayText: gettext('day'),
|
|
||||||
runningText: gettext('running'),
|
|
||||||
stoppedText: gettext('stopped'),
|
|
||||||
neverText: gettext('never'),
|
|
||||||
totalText: gettext('Total'),
|
|
||||||
usedText: gettext('Used'),
|
|
||||||
directoryText: gettext('Directory'),
|
|
||||||
imagesText: gettext('Disk image'),
|
imagesText: gettext('Disk image'),
|
||||||
backupFileText: gettext('VZDump backup file'),
|
backupFileText: gettext('VZDump backup file'),
|
||||||
vztmplText: gettext('Container template'),
|
vztmplText: gettext('Container template'),
|
||||||
isoImageText: gettext('ISO image'),
|
isoImageText: gettext('ISO image'),
|
||||||
containersText: gettext('Container'),
|
containersText: gettext('Container'),
|
||||||
stateText: gettext('State'),
|
|
||||||
groupText: gettext('Group'),
|
|
||||||
|
|
||||||
format_expire: function(date) {
|
|
||||||
if (!date) {
|
|
||||||
return PVE.Utils.neverText;
|
|
||||||
}
|
|
||||||
return Ext.Date.format(date, "Y-m-d");
|
|
||||||
},
|
|
||||||
|
|
||||||
format_storage_type: function(value, md, record) {
|
format_storage_type: function(value, md, record) {
|
||||||
if (value === 'rbd' && record) {
|
if (value === 'rbd' && record) {
|
||||||
value = (record.get('monhost')?'rbd_ext':'pveceph');
|
value = (record.get('monhost')?'rbd_ext':'pveceph');
|
||||||
}
|
}
|
||||||
if (value === 'dir') {
|
if (value === 'dir') {
|
||||||
return PVE.Utils.directoryText;
|
return Proxmox.Utils.directoryText;
|
||||||
} else if (value === 'nfs') {
|
} else if (value === 'nfs') {
|
||||||
return 'NFS';
|
return 'NFS';
|
||||||
} else if (value === 'glusterfs') {
|
} else if (value === 'glusterfs') {
|
||||||
@ -828,37 +419,18 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
} else if (value === 'drbd') {
|
} else if (value === 'drbd') {
|
||||||
return 'DRBD';
|
return 'DRBD';
|
||||||
} else {
|
} else {
|
||||||
return PVE.Utils.unknownText;
|
return Proxmox.Utils.unknownText;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
format_boolean_with_default: function(value) {
|
|
||||||
if (Ext.isDefined(value) && value !== '__default__') {
|
|
||||||
return value ? PVE.Utils.yesText : PVE.Utils.noText;
|
|
||||||
}
|
|
||||||
return PVE.Utils.defaultText;
|
|
||||||
},
|
|
||||||
|
|
||||||
format_boolean: function(value) {
|
|
||||||
return value ? PVE.Utils.yesText : PVE.Utils.noText;
|
|
||||||
},
|
|
||||||
|
|
||||||
format_neg_boolean: function(value) {
|
|
||||||
return !value ? PVE.Utils.yesText : PVE.Utils.noText;
|
|
||||||
},
|
|
||||||
|
|
||||||
format_enabled_toggle: function(value) {
|
|
||||||
return value ? PVE.Utils.enabledText :PVE.Utils.disabledText;
|
|
||||||
},
|
|
||||||
|
|
||||||
format_ha: function(value) {
|
format_ha: function(value) {
|
||||||
var text = PVE.Utils.noneText;
|
var text = Proxmox.Utils.noneText;
|
||||||
|
|
||||||
if (value.managed) {
|
if (value.managed) {
|
||||||
text = value.state || PVE.Utils.noneText;
|
text = value.state || Proxmox.Utils.noneText;
|
||||||
|
|
||||||
text += ', ' + PVE.Utils.groupText + ': ';
|
text += ', ' + Proxmox.Utils.groupText + ': ';
|
||||||
text += value.group || PVE.Utils.noneText;
|
text += value.group || Proxmox.Utils.noneText;
|
||||||
}
|
}
|
||||||
|
|
||||||
return text;
|
return text;
|
||||||
@ -924,7 +496,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return PVE.Utils.format_size(value);
|
return Proxmox.Utils.format_size(value);
|
||||||
},
|
},
|
||||||
|
|
||||||
render_bandwidth: function(value) {
|
render_bandwidth: function(value) {
|
||||||
@ -932,12 +504,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return PVE.Utils.format_size(value) + '/s';
|
return Proxmox.Utils.format_size(value) + '/s';
|
||||||
},
|
|
||||||
|
|
||||||
render_timestamp: function(value, metaData, record, rowIndex, colIndex, store) {
|
|
||||||
var servertime = new Date(value * 1000);
|
|
||||||
return Ext.Date.format(servertime, 'Y-m-d H:i:s');
|
|
||||||
},
|
},
|
||||||
|
|
||||||
render_timestamp_human_readable: function(value) {
|
render_timestamp_human_readable: function(value) {
|
||||||
@ -1065,21 +632,6 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return fa + value;
|
return fa + value;
|
||||||
},
|
},
|
||||||
|
|
||||||
render_uptime: function(value, metaData, record, rowIndex, colIndex, store) {
|
|
||||||
|
|
||||||
var uptime = value;
|
|
||||||
|
|
||||||
if (uptime === undefined) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (uptime <= 0) {
|
|
||||||
return '-';
|
|
||||||
}
|
|
||||||
|
|
||||||
return PVE.Utils.format_duration_long(uptime);
|
|
||||||
},
|
|
||||||
|
|
||||||
render_support_level: function(value, metaData, record) {
|
render_support_level: function(value, metaData, record) {
|
||||||
return PVE.Utils.support_level_hash[value] || '-';
|
return PVE.Utils.support_level_hash[value] || '-';
|
||||||
},
|
},
|
||||||
@ -1088,7 +640,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
var type = record.data.type;
|
var type = record.data.type;
|
||||||
var id = record.data.id;
|
var id = record.data.id;
|
||||||
|
|
||||||
return PVE.Utils.format_task_description(type, id);
|
return Proxmox.Utils.format_task_description(type, id);
|
||||||
},
|
},
|
||||||
|
|
||||||
/* render functions for new status panel */
|
/* render functions for new status panel */
|
||||||
@ -1121,20 +673,8 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return PVE.Utils.render_size_usage(record.used, record.total);
|
return PVE.Utils.render_size_usage(record.used, record.total);
|
||||||
},
|
},
|
||||||
|
|
||||||
dialog_title: function(subject, create, isAdd) {
|
|
||||||
if (create) {
|
|
||||||
if (isAdd) {
|
|
||||||
return gettext('Add') + ': ' + subject;
|
|
||||||
} else {
|
|
||||||
return gettext('Create') + ': ' + subject;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return gettext('Edit') + ': ' + subject;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
windowHostname: function() {
|
windowHostname: function() {
|
||||||
return window.location.hostname.replace(PVE.Utils.IP6_bracket_match,
|
return window.location.hostname.replace(Proxmox.Utils.IP6_bracket_match,
|
||||||
function(m, addr, offset, original) { return addr; });
|
function(m, addr, offset, original) { return addr; });
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1157,7 +697,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
if (viewer === 'html5') {
|
if (viewer === 'html5') {
|
||||||
PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname);
|
PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname);
|
||||||
} else if (viewer === 'xtermjs') {
|
} else if (viewer === 'xtermjs') {
|
||||||
PVE.Utils.openXtermJSviewer(vmtype, vmid, nodename, vmname);
|
Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname);
|
||||||
} else if (viewer === 'vv') {
|
} else if (viewer === 'vv') {
|
||||||
var url;
|
var url;
|
||||||
var params = { proxy: PVE.Utils.windowHostname() };
|
var params = { proxy: PVE.Utils.windowHostname() };
|
||||||
@ -1190,18 +730,6 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
return dv;
|
return dv;
|
||||||
},
|
},
|
||||||
|
|
||||||
openXtermJSviewer: function(vmtype, vmid, nodename, vmname) {
|
|
||||||
var url = Ext.urlEncode({
|
|
||||||
console: vmtype, // kvm, lxc, upgrade or shell
|
|
||||||
xtermjs: 1,
|
|
||||||
vmid: vmid,
|
|
||||||
vmname: vmname,
|
|
||||||
node: nodename
|
|
||||||
});
|
|
||||||
var nw = window.open("?" + url, '_blank', 'toolbar=no,location=no,status=no,menubar=no,resizable=yes,width=800,height=420');
|
|
||||||
nw.focus();
|
|
||||||
},
|
|
||||||
|
|
||||||
openVNCViewer: function(vmtype, vmid, nodename, vmname) {
|
openVNCViewer: function(vmtype, vmid, nodename, vmname) {
|
||||||
var url = Ext.urlEncode({
|
var url = Ext.urlEncode({
|
||||||
console: vmtype, // kvm, lxc, upgrade or shell
|
console: vmtype, // kvm, lxc, upgrade or shell
|
||||||
@ -1240,7 +768,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: url,
|
url: url,
|
||||||
params: params,
|
params: params,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -1260,61 +788,13 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// comp.setLoading() is buggy in ExtJS 4.0.7, so we
|
|
||||||
// use el.mask() instead
|
|
||||||
setErrorMask: function(comp, msg) {
|
|
||||||
var el = comp.el;
|
|
||||||
if (!el) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!msg) {
|
|
||||||
el.unmask();
|
|
||||||
} else {
|
|
||||||
if (msg === true) {
|
|
||||||
el.mask(gettext("Loading..."));
|
|
||||||
} else {
|
|
||||||
el.mask(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
monStoreErrors: function(me, store) {
|
|
||||||
me.mon(store, 'beforeload', function(s, operation, eOpts) {
|
|
||||||
if (!me.loadCount) {
|
|
||||||
me.loadCount = 0; // make sure it is numeric
|
|
||||||
PVE.Utils.setErrorMask(me, true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// only works with 'pve' proxy
|
|
||||||
me.mon(store.proxy, 'afterload', function(proxy, request, success) {
|
|
||||||
me.loadCount++;
|
|
||||||
|
|
||||||
if (success) {
|
|
||||||
PVE.Utils.setErrorMask(me, false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var msg;
|
|
||||||
/*jslint nomen: true */
|
|
||||||
var operation = request._operation;
|
|
||||||
var error = operation.getError();
|
|
||||||
if (error.statusText) {
|
|
||||||
msg = error.statusText + ' (' + error.status + ')';
|
|
||||||
} else {
|
|
||||||
msg = gettext('Connection error');
|
|
||||||
}
|
|
||||||
PVE.Utils.setErrorMask(me, msg);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
openTreeConsole: function(tree, record, item, index, e) {
|
openTreeConsole: function(tree, record, item, index, e) {
|
||||||
e.stopEvent();
|
e.stopEvent();
|
||||||
var nodename = record.data.node;
|
var nodename = record.data.node;
|
||||||
var vmid = record.data.vmid;
|
var vmid = record.data.vmid;
|
||||||
var vmname = record.data.name;
|
var vmname = record.data.name;
|
||||||
if (record.data.type === 'qemu' && !record.data.template) {
|
if (record.data.type === 'qemu' && !record.data.template) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + '/status/current',
|
url: '/nodes/' + nodename + '/qemu/' + vmid + '/status/current',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert('Error', response.htmlStatus);
|
||||||
@ -1383,7 +863,7 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
menu.showAt(event.getXY());
|
menu.showAt(event.getXY());
|
||||||
}},
|
},
|
||||||
|
|
||||||
// helper for deleting field which are set to there default values
|
// helper for deleting field which are set to there default values
|
||||||
delete_if_default: function(values, fieldname, default_val, create) {
|
delete_if_default: function(values, fieldname, default_val, create) {
|
||||||
@ -1398,46 +878,14 @@ Ext.define('PVE.Utils', { utilities: {
|
|||||||
|
|
||||||
delete values[fieldname];
|
delete values[fieldname];
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
|
},
|
||||||
|
|
||||||
singleton: true,
|
singleton: true,
|
||||||
constructor: function() {
|
constructor: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
Ext.apply(me, me.utilities);
|
Ext.apply(me, me.utilities);
|
||||||
|
|
||||||
var IPV4_OCTET = "(?:25[0-5]|(?:[1-9]|1[0-9]|2[0-4])?[0-9])";
|
|
||||||
var IPV4_REGEXP = "(?:(?:" + IPV4_OCTET + "\\.){3}" + IPV4_OCTET + ")";
|
|
||||||
var IPV6_H16 = "(?:[0-9a-fA-F]{1,4})";
|
|
||||||
var IPV6_LS32 = "(?:(?:" + IPV6_H16 + ":" + IPV6_H16 + ")|" + IPV4_REGEXP + ")";
|
|
||||||
|
|
||||||
|
|
||||||
me.IP4_match = new RegExp("^(?:" + IPV4_REGEXP + ")$");
|
|
||||||
me.IP4_cidr_match = new RegExp("^(?:" + IPV4_REGEXP + ")\/([0-9]{1,2})$");
|
|
||||||
|
|
||||||
var IPV6_REGEXP = "(?:" +
|
|
||||||
"(?:(?:" + "(?:" + IPV6_H16 + ":){6})" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:" + "::" + "(?:" + IPV6_H16 + ":){5})" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:(?:" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){4})" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:(?:(?:" + IPV6_H16 + ":){0,1}" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){3})" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:(?:(?:" + IPV6_H16 + ":){0,2}" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){2})" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:(?:(?:" + IPV6_H16 + ":){0,3}" + IPV6_H16 + ")?::" + "(?:" + IPV6_H16 + ":){1})" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:(?:(?:" + IPV6_H16 + ":){0,4}" + IPV6_H16 + ")?::" + ")" + IPV6_LS32 + ")|" +
|
|
||||||
"(?:(?:(?:(?:" + IPV6_H16 + ":){0,5}" + IPV6_H16 + ")?::" + ")" + IPV6_H16 + ")|" +
|
|
||||||
"(?:(?:(?:(?:" + IPV6_H16 + ":){0,7}" + IPV6_H16 + ")?::" + ")" + ")" +
|
|
||||||
")";
|
|
||||||
|
|
||||||
me.IP6_match = new RegExp("^(?:" + IPV6_REGEXP + ")$");
|
|
||||||
me.IP6_cidr_match = new RegExp("^(?:" + IPV6_REGEXP + ")\/([0-9]{1,3})$");
|
|
||||||
me.IP6_bracket_match = new RegExp("^\\[(" + IPV6_REGEXP + ")\\]");
|
|
||||||
|
|
||||||
me.IP64_match = new RegExp("^(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + ")$");
|
|
||||||
|
|
||||||
var DnsName_REGEXP = "(?:(([a-zA-Z0-9]([a-zA-Z0-9\\-]*[a-zA-Z0-9])?)\\.)*([A-Za-z0-9]([A-Za-z0-9\\-]*[A-Za-z0-9])?))";
|
|
||||||
me.DnsName_match = new RegExp("^" + DnsName_REGEXP + "$");
|
|
||||||
|
|
||||||
me.HostPort_match = new RegExp("^(" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")(:\\d+)?$");
|
|
||||||
me.HostPortBrackets_match = new RegExp("^\\[(?:" + IPV6_REGEXP + "|" + IPV4_REGEXP + "|" + DnsName_REGEXP + ")\\](:\\d+)?$");
|
|
||||||
me.IP6_dotnotation_match = new RegExp("^" + IPV6_REGEXP + "(\\.\\d+)?$");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ Ext.define('PVE.Workspace', {
|
|||||||
showLogin: function() {
|
showLogin: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.authClear();
|
Proxmox.Utils.authClear();
|
||||||
PVE.UserName = null;
|
PVE.UserName = null;
|
||||||
me.loginData = null;
|
me.loginData = null;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ Ext.define('PVE.Workspace', {
|
|||||||
handler: function(data) {
|
handler: function(data) {
|
||||||
me.login = null;
|
me.login = null;
|
||||||
me.updateLoginData(data);
|
me.updateLoginData(data);
|
||||||
PVE.Utils.checked_command(function() {}); // display subscription status
|
Proxmox.Utils.checked_command(function() {}); // display subscription status
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -67,7 +67,7 @@ Ext.define('PVE.Workspace', {
|
|||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
|
||||||
if (!PVE.Utils.authOK()) {
|
if (!Proxmox.Utils.authOK()) {
|
||||||
me.showLogin();
|
me.showLogin();
|
||||||
} else {
|
} else {
|
||||||
if (me.loginData) {
|
if (me.loginData) {
|
||||||
@ -77,7 +77,7 @@ Ext.define('PVE.Workspace', {
|
|||||||
|
|
||||||
Ext.TaskManager.start({
|
Ext.TaskManager.start({
|
||||||
run: function() {
|
run: function() {
|
||||||
var ticket = PVE.Utils.authOK();
|
var ticket = Proxmox.Utils.authOK();
|
||||||
if (!ticket || !PVE.UserName) {
|
if (!ticket || !PVE.UserName) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -117,7 +117,7 @@ Ext.define('PVE.StdWorkspace', {
|
|||||||
var cur = lay.getActiveItem();
|
var cur = lay.getActiveItem();
|
||||||
|
|
||||||
if (comp) {
|
if (comp) {
|
||||||
PVE.Utils.setErrorMask(cont, false);
|
Proxmox.Utils.setErrorMask(cont, false);
|
||||||
comp.border = false;
|
comp.border = false;
|
||||||
cont.add(comp);
|
cont.add(comp);
|
||||||
if (cur !== null && lay.getNext()) {
|
if (cur !== null && lay.getNext()) {
|
||||||
@ -148,7 +148,7 @@ Ext.define('PVE.StdWorkspace', {
|
|||||||
if (loginData) {
|
if (loginData) {
|
||||||
PVE.data.ResourceStore.startUpdate();
|
PVE.data.ResourceStore.startUpdate();
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/version',
|
url: '/version',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
|
@ -9,7 +9,7 @@ Ext.define('PVE.node.CephConfig', {
|
|||||||
load: function() {
|
load: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.url,
|
url: me.url,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
|
@ -10,7 +10,7 @@ Ext.define('PVE.node.CephCrushMap', {
|
|||||||
load: function() {
|
load: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.url,
|
url: me.url,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
|
@ -82,7 +82,7 @@ Ext.define('PVE.node.CephMonList', {
|
|||||||
sorters: [{ property: 'name'}]
|
sorters: [{ property: 'name'}]
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, rstore);
|
Proxmox.Utils.monStoreErrors(me, rstore);
|
||||||
|
|
||||||
var service_cmd = function(cmd) {
|
var service_cmd = function(cmd) {
|
||||||
var rec = sm.getSelection()[0];
|
var rec = sm.getSelection()[0];
|
||||||
@ -90,7 +90,7 @@ Ext.define('PVE.node.CephMonList', {
|
|||||||
Ext.Msg.alert(gettext('Error'), "entry has no host");
|
Ext.Msg.alert(gettext('Error'), "entry has no host");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
|
url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
params: { service: "mon." + rec.data.name },
|
params: { service: "mon." + rec.data.name },
|
||||||
@ -145,7 +145,7 @@ Ext.define('PVE.node.CephMonList', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + rec.data.host + "/ceph/mon/" +
|
url: "/nodes/" + rec.data.host + "/ceph/mon/" +
|
||||||
rec.data.name,
|
rec.data.name,
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
@ -186,7 +186,7 @@ Ext.define('PVE.node.CephMonList', {
|
|||||||
header: gettext('Quorum'),
|
header: gettext('Quorum'),
|
||||||
width: 70,
|
width: 70,
|
||||||
sortable: false,
|
sortable: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
dataIndex: 'quorum'
|
dataIndex: 'quorum'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -19,7 +19,7 @@ Ext.define('PVE.form.CephDiskSelector', {
|
|||||||
header: gettext('Size'),
|
header: gettext('Size'),
|
||||||
width: 60,
|
width: 60,
|
||||||
sortable: false,
|
sortable: false,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
dataIndex: 'size'
|
dataIndex: 'size'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -351,12 +351,12 @@ Ext.define('PVE.node.CephOsdTree', {
|
|||||||
var set_button_status; // defined later
|
var set_button_status; // defined later
|
||||||
|
|
||||||
var reload = function() {
|
var reload = function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + nodename + "/ceph/osd",
|
url: "/nodes/" + nodename + "/ceph/osd",
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, response.htmlStatus);
|
Proxmox.Utils.setErrorMask(me, response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
sm.deselectAll();
|
sm.deselectAll();
|
||||||
@ -379,7 +379,7 @@ Ext.define('PVE.node.CephOsdTree', {
|
|||||||
if (!(rec && (rec.data.id >= 0) && rec.data.host)) {
|
if (!(rec && (rec.data.id >= 0) && rec.data.host)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + rec.data.host + "/ceph/osd/" +
|
url: "/nodes/" + rec.data.host + "/ceph/osd/" +
|
||||||
rec.data.id + '/' + cmd,
|
rec.data.id + '/' + cmd,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -396,7 +396,7 @@ Ext.define('PVE.node.CephOsdTree', {
|
|||||||
if (!(rec && rec.data.name && rec.data.host)) {
|
if (!(rec && rec.data.name && rec.data.host)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
|
url: "/nodes/" + rec.data.host + "/ceph/" + cmd,
|
||||||
params: { service: rec.data.name },
|
params: { service: rec.data.name },
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -471,7 +471,7 @@ Ext.define('PVE.node.CephOsdTree', {
|
|||||||
var noout_btn = new Ext.Button({
|
var noout_btn = new Ext.Button({
|
||||||
text: gettext('Set noout'),
|
text: gettext('Set noout'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + nodename + "/ceph/flags/noout",
|
url: "/nodes/" + nodename + "/ceph/flags/noout",
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: noout ? 'DELETE' : 'POST',
|
method: noout ? 'DELETE' : 'POST',
|
||||||
|
@ -164,7 +164,7 @@ Ext.define('PVE.node.CephPoolList', {
|
|||||||
|
|
||||||
var store = Ext.create('PVE.data.DiffStore', { rstore: rstore });
|
var store = Ext.create('PVE.data.DiffStore', { rstore: rstore });
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, rstore);
|
Proxmox.Utils.monStoreErrors(me, rstore);
|
||||||
|
|
||||||
var create_btn = new Ext.Button({
|
var create_btn = new Ext.Button({
|
||||||
text: gettext('Create'),
|
text: gettext('Create'),
|
||||||
|
@ -289,7 +289,7 @@ Ext.define('PVE.node.CephStatus', {
|
|||||||
me.version = me.sp.get('ceph-version');
|
me.version = me.sp.get('ceph-version');
|
||||||
me.change_version(me.version);
|
me.change_version(me.version);
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me,me.store);
|
Proxmox.Utils.monStoreErrors(me,me.store);
|
||||||
me.mon(me.store, 'load', me.updateAll, me);
|
me.mon(me.store, 'load', me.updateAll, me);
|
||||||
me.on('destroy', me.store.stopUpdate);
|
me.on('destroy', me.store.stopUpdate);
|
||||||
me.store.startUpdate();
|
me.store.startUpdate();
|
||||||
|
@ -49,7 +49,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
running: {
|
running: {
|
||||||
header: gettext('Online'),
|
header: gettext('Online'),
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
hidden: true,
|
hidden: true,
|
||||||
convert: function(value, record) {
|
convert: function(value, record) {
|
||||||
var info = record.data;
|
var info = record.data;
|
||||||
@ -166,7 +166,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
diskwrite: {
|
diskwrite: {
|
||||||
@ -174,7 +174,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
netin: {
|
netin: {
|
||||||
@ -182,7 +182,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
netout: {
|
netout: {
|
||||||
@ -190,7 +190,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
type: 'integer',
|
type: 'integer',
|
||||||
hidden: true,
|
hidden: true,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
width: 100
|
width: 100
|
||||||
},
|
},
|
||||||
template: {
|
template: {
|
||||||
@ -203,7 +203,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
uptime: {
|
uptime: {
|
||||||
header: gettext('Uptime'),
|
header: gettext('Uptime'),
|
||||||
type: 'integer',
|
type: 'integer',
|
||||||
renderer: PVE.Utils.render_uptime,
|
renderer: Proxmox.Utils.render_uptime,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
width: 110
|
width: 110
|
||||||
},
|
},
|
||||||
|
@ -170,7 +170,7 @@ Ext.define('PVE.dc.ACLView', {
|
|||||||
throw 'unknown data type';
|
throw 'unknown data type';
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/access/acl',
|
url: '/access/acl',
|
||||||
params: params,
|
params: params,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
@ -185,7 +185,7 @@ Ext.define('PVE.dc.ACLView', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
|
@ -131,7 +131,7 @@ Ext.define('PVE.dc.AuthEdit', {
|
|||||||
deleteEmpty: !me.isCreate,
|
deleteEmpty: !me.isCreate,
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('TFA'),
|
fieldLabel: gettext('TFA'),
|
||||||
comboItems: [ ['__default__', PVE.Utils.noneText], ['oath', 'OATH'], ['yubico', 'Yubico']],
|
comboItems: [ ['__default__', Proxmox.Utils.noneText], ['oath', 'OATH'], ['yubico', 'Yubico']],
|
||||||
listeners: {
|
listeners: {
|
||||||
change: function(f, value) {
|
change: function(f, value) {
|
||||||
if (!me.rendered) {
|
if (!me.rendered) {
|
||||||
@ -151,7 +151,7 @@ Ext.define('PVE.dc.AuthEdit', {
|
|||||||
name: 'oath_step',
|
name: 'oath_step',
|
||||||
value: '',
|
value: '',
|
||||||
minValue: 10,
|
minValue: 10,
|
||||||
emptyText: PVE.Utils.defaultText + ' (30)',
|
emptyText: Proxmox.Utils.defaultText + ' (30)',
|
||||||
submitEmptyText: false,
|
submitEmptyText: false,
|
||||||
hidden: true,
|
hidden: true,
|
||||||
fieldLabel: 'OATH time step'
|
fieldLabel: 'OATH time step'
|
||||||
@ -163,7 +163,7 @@ Ext.define('PVE.dc.AuthEdit', {
|
|||||||
value: '',
|
value: '',
|
||||||
minValue: 6,
|
minValue: 6,
|
||||||
maxValue: 8,
|
maxValue: 8,
|
||||||
emptyText: PVE.Utils.defaultText + ' (6)',
|
emptyText: Proxmox.Utils.defaultText + ' (6)',
|
||||||
submitEmptyText: false,
|
submitEmptyText: false,
|
||||||
hidden: true,
|
hidden: true,
|
||||||
fieldLabel: 'OATH password length'
|
fieldLabel: 'OATH password length'
|
||||||
@ -201,7 +201,7 @@ Ext.define('PVE.dc.AuthEdit', {
|
|||||||
onGetValues: function(values) {
|
onGetValues: function(values) {
|
||||||
if (!values.port) {
|
if (!values.port) {
|
||||||
if (!me.isCreate) {
|
if (!me.isCreate) {
|
||||||
PVE.Utils.assemble_field_data(values, { 'delete': 'port' });
|
Proxmox.Utils.assemble_field_data(values, { 'delete': 'port' });
|
||||||
}
|
}
|
||||||
delete values.port;
|
delete values.port;
|
||||||
}
|
}
|
||||||
|
@ -93,9 +93,9 @@ Ext.define('PVE.dc.BackupEdit', {
|
|||||||
dataIndex: 'uptime',
|
dataIndex: 'uptime',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
return PVE.Utils.runningText;
|
return Proxmox.Utils.runningText;
|
||||||
} else {
|
} else {
|
||||||
return PVE.Utils.stoppedText;
|
return Proxmox.Utils.stoppedText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -200,7 +200,7 @@ Ext.define('PVE.dc.BackupEdit', {
|
|||||||
onGetValues: function(values) {
|
onGetValues: function(values) {
|
||||||
if (!values.node) {
|
if (!values.node) {
|
||||||
if (!me.isCreate) {
|
if (!me.isCreate) {
|
||||||
PVE.Utils.assemble_field_data(values, { 'delete': 'node' });
|
Proxmox.Utils.assemble_field_data(values, { 'delete': 'node' });
|
||||||
}
|
}
|
||||||
delete values.node;
|
delete values.node;
|
||||||
}
|
}
|
||||||
@ -370,7 +370,7 @@ Ext.define('PVE.dc.BackupView', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
|
@ -65,7 +65,7 @@ Ext.define('PVE.dc.GroupView', {
|
|||||||
edit_btn, remove_btn
|
edit_btn, remove_btn
|
||||||
];
|
];
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
|
@ -49,7 +49,7 @@ Ext.define('PVE.dc.Health', {
|
|||||||
cluster.text = gettext("Cluster") + ": ";
|
cluster.text = gettext("Cluster") + ": ";
|
||||||
cluster.text += item.data.name + ", ";
|
cluster.text += item.data.name + ", ";
|
||||||
cluster.text += gettext("Quorate") + ": ";
|
cluster.text += gettext("Quorate") + ": ";
|
||||||
cluster.text += PVE.Utils.format_boolean(item.data.quorate);
|
cluster.text += Proxmox.Utils.format_boolean(item.data.quorate);
|
||||||
if (item.data.quorate != 1) {
|
if (item.data.quorate != 1) {
|
||||||
cluster.iconCls = PVE.Utils.get_health_icon('critical', true);
|
cluster.iconCls = PVE.Utils.get_health_icon('critical', true);
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ Ext.define('PVE.dc.NodeView', {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'uptime',
|
dataIndex: 'uptime',
|
||||||
align: 'right',
|
align: 'right',
|
||||||
renderer: PVE.Utils.render_uptime
|
renderer: Proxmox.Utils.render_uptime
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ Ext.define('PVE.dc.HttpProxyEdit', {
|
|||||||
xtype: 'proxmoxtextfield',
|
xtype: 'proxmoxtextfield',
|
||||||
name: 'http_proxy',
|
name: 'http_proxy',
|
||||||
vtype: 'HttpProxy',
|
vtype: 'HttpProxy',
|
||||||
emptyText: PVE.Utils.noneText,
|
emptyText: Proxmox.Utils.noneText,
|
||||||
deleteEmpty: true,
|
deleteEmpty: true,
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('HTTP proxy')
|
fieldLabel: gettext('HTTP proxy')
|
||||||
@ -112,7 +112,7 @@ Ext.define('PVE.dc.MacPrefixEdit', {
|
|||||||
name: 'mac_prefix',
|
name: 'mac_prefix',
|
||||||
regex: /^[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?$/i,
|
regex: /^[a-f0-9]{2}(?::[a-f0-9]{2}){0,2}:?$/i,
|
||||||
regexText: gettext('Example') + ': 02:8f',
|
regexText: gettext('Example') + ': 02:8f',
|
||||||
emptyText: PVE.Utils.noneText,
|
emptyText: Proxmox.Utils.noneText,
|
||||||
deleteEmpty: true,
|
deleteEmpty: true,
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('MAC address prefix')
|
fieldLabel: gettext('MAC address prefix')
|
||||||
@ -151,7 +151,7 @@ Ext.define('PVE.dc.OptionView', {
|
|||||||
required: true,
|
required: true,
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return PVE.Utils.noneText;
|
return Proxmox.Utils.noneText;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
@ -179,7 +179,7 @@ Ext.define('PVE.dc.OptionView', {
|
|||||||
required: true,
|
required: true,
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return PVE.Utils.noneText;
|
return Proxmox.Utils.noneText;
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,7 @@ Ext.define('PVE.dc.PoolView', {
|
|||||||
edit_btn, remove_btn
|
edit_btn, remove_btn
|
||||||
];
|
];
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
|
@ -31,7 +31,7 @@ Ext.define('PVE.dc.RoleView', {
|
|||||||
return value.replace(/\,/g, ' ');
|
return value.replace(/\,/g, ' ');
|
||||||
};
|
};
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
|
@ -246,14 +246,14 @@ Ext.define('PVE.dc.StorageView', {
|
|||||||
width: 80,
|
width: 80,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'shared',
|
dataIndex: 'shared',
|
||||||
renderer: PVE.Utils.format_boolean
|
renderer: Proxmox.Utils.format_boolean
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: gettext('Enabled'),
|
header: gettext('Enabled'),
|
||||||
width: 80,
|
width: 80,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'disable',
|
dataIndex: 'disable',
|
||||||
renderer: PVE.Utils.format_neg_boolean
|
renderer: Proxmox.Utils.format_neg_boolean
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
listeners: {
|
listeners: {
|
||||||
|
@ -51,7 +51,7 @@ Ext.define('PVE.dc.Support', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
var reload = function() {
|
var reload = function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/localhost/subscription',
|
url: '/nodes/localhost/subscription',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -107,7 +107,7 @@ Ext.define('PVE.dc.Tasks', {
|
|||||||
header: gettext("Description"),
|
header: gettext("Description"),
|
||||||
dataIndex: 'upid',
|
dataIndex: 'upid',
|
||||||
flex: 1,
|
flex: 1,
|
||||||
renderer: PVE.Utils.render_upid
|
renderer: Proxmox.Utils.render_upid
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: gettext("Status"),
|
header: gettext("Status"),
|
||||||
@ -124,7 +124,7 @@ Ext.define('PVE.dc.Tasks', {
|
|||||||
return 'OK';
|
return 'OK';
|
||||||
}
|
}
|
||||||
// metaData.attr = 'style="color:red;"';
|
// metaData.attr = 'style="color:red;"';
|
||||||
return PVE.Utils.errorText + ': ' + value;
|
return Proxmox.Utils.errorText + ': ' + value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -186,14 +186,14 @@ Ext.define('PVE.dc.UserView', {
|
|||||||
header: gettext('Enabled'),
|
header: gettext('Enabled'),
|
||||||
width: 80,
|
width: 80,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
dataIndex: 'enable'
|
dataIndex: 'enable'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: gettext('Expire'),
|
header: gettext('Expire'),
|
||||||
width: 80,
|
width: 80,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_expire,
|
renderer: Proxmox.Utils.format_expire,
|
||||||
dataIndex: 'expire'
|
dataIndex: 'expire'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@ Ext.define('PVE.form.BridgeSelector', {
|
|||||||
header: gettext('Active'),
|
header: gettext('Active'),
|
||||||
width: 60,
|
width: 60,
|
||||||
dataIndex: 'active',
|
dataIndex: 'active',
|
||||||
renderer: PVE.Utils.format_boolean
|
renderer: Proxmox.Utils.format_boolean
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: gettext('Comment'),
|
header: gettext('Comment'),
|
||||||
|
@ -2,7 +2,7 @@ Ext.define('PVE.form.CPUModelSelector', {
|
|||||||
extend: 'PVE.form.KVComboBox',
|
extend: 'PVE.form.KVComboBox',
|
||||||
alias: ['widget.CPUModelSelector'],
|
alias: ['widget.CPUModelSelector'],
|
||||||
comboItems: [
|
comboItems: [
|
||||||
['__default__', PVE.Utils.defaultText + ' (kvm64)'],
|
['__default__', Proxmox.Utils.defaultText + ' (kvm64)'],
|
||||||
['486', '486'],
|
['486', '486'],
|
||||||
['athlon', 'athlon'],
|
['athlon', 'athlon'],
|
||||||
['core2duo', 'core2duo'],
|
['core2duo', 'core2duo'],
|
||||||
|
@ -2,7 +2,7 @@ Ext.define('PVE.form.CacheTypeSelector', {
|
|||||||
extend: 'PVE.form.KVComboBox',
|
extend: 'PVE.form.KVComboBox',
|
||||||
alias: ['widget.CacheTypeSelector'],
|
alias: ['widget.CacheTypeSelector'],
|
||||||
comboItems: [
|
comboItems: [
|
||||||
['__default__', PVE.Utils.defaultText + " (" + gettext('No cache') + ")"],
|
['__default__', Proxmox.Utils.defaultText + " (" + gettext('No cache') + ")"],
|
||||||
['directsync', 'Direct sync'],
|
['directsync', 'Direct sync'],
|
||||||
['writethrough', 'Write through'],
|
['writethrough', 'Write through'],
|
||||||
['writeback', 'Write back'],
|
['writeback', 'Write back'],
|
||||||
|
@ -2,7 +2,7 @@ Ext.define('PVE.form.CompressionSelector', {
|
|||||||
extend: 'PVE.form.KVComboBox',
|
extend: 'PVE.form.KVComboBox',
|
||||||
alias: ['widget.pveCompressionSelector'],
|
alias: ['widget.pveCompressionSelector'],
|
||||||
comboItems: [
|
comboItems: [
|
||||||
['0', PVE.Utils.noneText],
|
['0', Proxmox.Utils.noneText],
|
||||||
['lzo', 'LZO (' + gettext('fast') + ')'],
|
['lzo', 'LZO (' + gettext('fast') + ')'],
|
||||||
['gzip', 'GZIP (' + gettext('good') + ')']
|
['gzip', 'GZIP (' + gettext('good') + ')']
|
||||||
]
|
]
|
||||||
|
@ -69,7 +69,7 @@ Ext.define('PVE.form.FileSelector', {
|
|||||||
header: gettext('Size'),
|
header: gettext('Size'),
|
||||||
width: 100,
|
width: 100,
|
||||||
dataIndex: 'size',
|
dataIndex: 'size',
|
||||||
renderer: PVE.Utils.format_size
|
renderer: Proxmox.Utils.format_size
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ Ext.define('PVE.form.GlobalSearchField', {
|
|||||||
xtype: 'gridpanel',
|
xtype: 'gridpanel',
|
||||||
focusOnToFront: false,
|
focusOnToFront: false,
|
||||||
floating: true,
|
floating: true,
|
||||||
emptyText: PVE.Utils.noneText,
|
emptyText: Proxmox.Utils.noneText,
|
||||||
width: 600,
|
width: 600,
|
||||||
height: 400,
|
height: 400,
|
||||||
scrollable: {
|
scrollable: {
|
||||||
|
@ -59,7 +59,7 @@ Ext.define('PVE.form.GuestIDSelector', {
|
|||||||
if (!Ext.isDefined(me.validateExists)) {
|
if (!Ext.isDefined(me.validateExists)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: { vmid: newValue },
|
params: { vmid: newValue },
|
||||||
url: '/cluster/nextid',
|
url: '/cluster/nextid',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
@ -79,7 +79,7 @@ Ext.define('PVE.form.GuestIDSelector', {
|
|||||||
me.callParent();
|
me.callParent();
|
||||||
|
|
||||||
if (me.loadNextFreeID) {
|
if (me.loadNextFreeID) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/cluster/nextid',
|
url: '/cluster/nextid',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Ext.define('PVE.form.LanguageSelector', {
|
Ext.define('PVE.form.LanguageSelector', {
|
||||||
extend: 'PVE.form.KVComboBox',
|
extend: 'PVE.form.KVComboBox',
|
||||||
alias: ['widget.pveLanguageSelector'],
|
alias: ['widget.pveLanguageSelector'],
|
||||||
comboItems: PVE.Utils.language_array()
|
comboItems: Proxmox.Utils.language_array()
|
||||||
});
|
});
|
||||||
|
@ -22,13 +22,13 @@ Ext.define('PVE.form.StorageSelector', {
|
|||||||
header: gettext('Avail'),
|
header: gettext('Avail'),
|
||||||
width: 80,
|
width: 80,
|
||||||
dataIndex: 'avail',
|
dataIndex: 'avail',
|
||||||
renderer: PVE.Utils.format_size
|
renderer: Proxmox.Utils.format_size
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: gettext('Capacity'),
|
header: gettext('Capacity'),
|
||||||
width: 80,
|
width: 80,
|
||||||
dataIndex: 'total',
|
dataIndex: 'total',
|
||||||
renderer: PVE.Utils.format_size
|
renderer: Proxmox.Utils.format_size
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -216,7 +216,7 @@ Ext.define('PVE.grid.BackupView', {
|
|||||||
{
|
{
|
||||||
header: gettext('Size'),
|
header: gettext('Size'),
|
||||||
width: 100,
|
width: 100,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
dataIndex: 'size'
|
dataIndex: 'size'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -30,7 +30,7 @@ Ext.define('PVE.FirewallOptions', {
|
|||||||
header: text,
|
header: text,
|
||||||
required: true,
|
required: true,
|
||||||
defaultValue: defaultValue || 0,
|
defaultValue: defaultValue || 0,
|
||||||
renderer: PVE.Utils.format_enabled_toggle,
|
renderer: Proxmox.Utils.format_enabled_toggle,
|
||||||
editor: {
|
editor: {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: text,
|
subject: text,
|
||||||
@ -52,7 +52,7 @@ Ext.define('PVE.FirewallOptions', {
|
|||||||
header: text,
|
header: text,
|
||||||
required: true,
|
required: true,
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
return value || PVE.Utils.defaultText;
|
return value || Proxmox.Utils.defaultText;
|
||||||
},
|
},
|
||||||
editor: {
|
editor: {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
|
@ -428,7 +428,7 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.base_url + "/" + from,
|
url: me.base_url + "/" + from,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
params: { moveto: to },
|
params: { moveto: to },
|
||||||
@ -455,7 +455,7 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
delete rule.pos;
|
delete rule.pos;
|
||||||
delete rule.errors;
|
delete rule.errors;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.base_url + '/' + pos.toString(),
|
url: me.base_url + '/' + pos.toString(),
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
params: rule,
|
params: rule,
|
||||||
|
@ -106,7 +106,7 @@ Ext.define('PVE.grid.ObjectGrid', {
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, rstore);
|
Proxmox.Utils.monStoreErrors(me, rstore);
|
||||||
|
|
||||||
Ext.applyIf(me, {
|
Ext.applyIf(me, {
|
||||||
store: store,
|
store: store,
|
||||||
|
@ -69,9 +69,9 @@ Ext.define('PVE.pool.AddVM', {
|
|||||||
dataIndex: 'uptime',
|
dataIndex: 'uptime',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
return PVE.Utils.runningText;
|
return Proxmox.Utils.runningText;
|
||||||
} else {
|
} else {
|
||||||
return PVE.Utils.stoppedText;
|
return Proxmox.Utils.stoppedText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -188,7 +188,7 @@ Ext.define('PVE.grid.PoolMembers', {
|
|||||||
throw "unknown resource type";
|
throw "unknown resource type";
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/pools/' + me.pool,
|
url: '/pools/' + me.pool,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
params: params,
|
params: params,
|
||||||
|
@ -172,7 +172,7 @@ Ext.define('PVE.grid.ReplicaView', {
|
|||||||
var me = this.getView();
|
var me = this.getView();
|
||||||
var controller = this;
|
var controller = this;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/api2/extjs/nodes/" + me.nodename + "/replication/" + rec.data.id + "/schedule_now",
|
url: "/api2/extjs/nodes/" + me.nodename + "/replication/" + rec.data.id + "/schedule_now",
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -375,7 +375,7 @@ Ext.define('PVE.grid.ReplicaView', {
|
|||||||
return gettext('syncing');
|
return gettext('syncing');
|
||||||
}
|
}
|
||||||
|
|
||||||
return PVE.Utils.render_timestamp(value);
|
return Proxmox.Utils.render_timestamp(value);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -400,7 +400,7 @@ Ext.define('PVE.grid.ReplicaView', {
|
|||||||
return gettext('pending');
|
return gettext('pending');
|
||||||
}
|
}
|
||||||
|
|
||||||
return PVE.Utils.render_timestamp(value);
|
return Proxmox.Utils.render_timestamp(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@ -469,7 +469,7 @@ Ext.define('PVE.grid.ReplicaView', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, me.rstore);
|
Proxmox.Utils.monStoreErrors(me, me.rstore);
|
||||||
|
|
||||||
me.on('destroy', me.rstore.stopUpdate);
|
me.on('destroy', me.rstore.stopUpdate);
|
||||||
me.rstore.startUpdate();
|
me.rstore.startUpdate();
|
||||||
|
@ -80,14 +80,14 @@ Ext.define('PVE.ha.GroupsView', {
|
|||||||
header: 'restricted',
|
header: 'restricted',
|
||||||
width: 100,
|
width: 100,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
dataIndex: 'restricted'
|
dataIndex: 'restricted'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: 'nofailback',
|
header: 'nofailback',
|
||||||
width: 100,
|
width: 100,
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
dataIndex: 'nofailback'
|
dataIndex: 'nofailback'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -38,7 +38,7 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
|
|||||||
hidden: true
|
hidden: true
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/cluster/config/nodes',
|
url: '/cluster/config/nodes',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response) {
|
failure: function(response) {
|
||||||
|
@ -16,7 +16,7 @@ Ext.define('PVE.ha.ResourcesView', {
|
|||||||
throw "no store given";
|
throw "no store given";
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, me.rstore);
|
Proxmox.Utils.monStoreErrors(me, me.rstore);
|
||||||
|
|
||||||
var store = Ext.create('PVE.data.DiffStore', {
|
var store = Ext.create('PVE.data.DiffStore', {
|
||||||
rstore: me.rstore,
|
rstore: me.rstore,
|
||||||
|
@ -18,7 +18,7 @@ Ext.define('PVE.ha.StatusView', {
|
|||||||
throw "no rstore given";
|
throw "no rstore given";
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, me.rstore);
|
Proxmox.Utils.monStoreErrors(me, me.rstore);
|
||||||
|
|
||||||
var store = Ext.create('PVE.data.DiffStore', {
|
var store = Ext.create('PVE.data.DiffStore', {
|
||||||
rstore: me.rstore,
|
rstore: me.rstore,
|
||||||
|
@ -17,7 +17,7 @@ Ext.define('PVE.lxc.CmdMenu', {
|
|||||||
var vmname = me.pveSelNode.data.name;
|
var vmname = me.pveSelNode.data.name;
|
||||||
|
|
||||||
var vm_command = function(cmd, params) {
|
var vm_command = function(cmd, params) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + nodename + '/lxc/' + vmid + "/status/" + cmd,
|
url: '/nodes/' + nodename + '/lxc/' + vmid + "/status/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -63,7 +63,7 @@ Ext.define('PVE.lxc.CmdMenu', {
|
|||||||
// hidde: suspended,
|
// hidde: suspended,
|
||||||
// disabled: stopped || suspended,
|
// disabled: stopped || suspended,
|
||||||
// handler: function() {
|
// handler: function() {
|
||||||
// var msg = PVE.Utils.format_task_description('vzsuspend', vmid);
|
// var msg = Proxmox.Utils.format_task_description('vzsuspend', vmid);
|
||||||
// Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
// Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
// if (btn !== 'yes') {
|
// if (btn !== 'yes') {
|
||||||
// return;
|
// return;
|
||||||
@ -86,7 +86,7 @@ Ext.define('PVE.lxc.CmdMenu', {
|
|||||||
iconCls: 'fa fa-fw fa-power-off',
|
iconCls: 'fa fa-fw fa-power-off',
|
||||||
disabled: stopped || suspended,
|
disabled: stopped || suspended,
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var msg = PVE.Utils.format_task_description('vzshutdown', vmid);
|
var msg = Proxmox.Utils.format_task_description('vzshutdown', vmid);
|
||||||
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
@ -101,7 +101,7 @@ Ext.define('PVE.lxc.CmdMenu', {
|
|||||||
iconCls: 'fa fa-fw fa-stop',
|
iconCls: 'fa fa-fw fa-stop',
|
||||||
disabled: stopped,
|
disabled: stopped,
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var msg = PVE.Utils.format_task_description('vzstop', vmid);
|
var msg = Proxmox.Utils.format_task_description('vzstop', vmid);
|
||||||
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
@ -132,13 +132,13 @@ Ext.define('PVE.lxc.CmdMenu', {
|
|||||||
// text: gettext('Convert to template'),
|
// text: gettext('Convert to template'),
|
||||||
// icon: '/pve2/images/forward.png',
|
// icon: '/pve2/images/forward.png',
|
||||||
// handler: function() {
|
// handler: function() {
|
||||||
// var msg = PVE.Utils.format_task_description('vztemplate', vmid);
|
// var msg = Proxmox.Utils.format_task_description('vztemplate', vmid);
|
||||||
// Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
// Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
// if (btn !== 'yes') {
|
// if (btn !== 'yes') {
|
||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// PVE.Utils.API2Request({
|
// Proxmox.Utils.API2Request({
|
||||||
// url: '/nodes/' + nodename + '/lxc/' + vmid + '/template',
|
// url: '/nodes/' + nodename + '/lxc/' + vmid + '/template',
|
||||||
// method: 'POST',
|
// method: 'POST',
|
||||||
// failure: function(response, opts) {
|
// failure: function(response, opts) {
|
||||||
|
@ -31,7 +31,7 @@ Ext.define('PVE.lxc.Config', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var vm_command = function(cmd, params) {
|
var vm_command = function(cmd, params) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: base_url + "/status/" + cmd,
|
url: base_url + "/status/" + cmd,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -54,7 +54,7 @@ Ext.define('PVE.lxc.Config', {
|
|||||||
var stopBtn = Ext.create('Ext.menu.Item',{
|
var stopBtn = Ext.create('Ext.menu.Item',{
|
||||||
text: gettext('Stop'),
|
text: gettext('Stop'),
|
||||||
disabled: !caps.vms['VM.PowerMgmt'],
|
disabled: !caps.vms['VM.PowerMgmt'],
|
||||||
confirmMsg: PVE.Utils.format_task_description('vzstop', vmid),
|
confirmMsg: Proxmox.Utils.format_task_description('vzstop', vmid),
|
||||||
dangerous: true,
|
dangerous: true,
|
||||||
handler: function() {
|
handler: function() {
|
||||||
vm_command("stop");
|
vm_command("stop");
|
||||||
@ -65,7 +65,7 @@ Ext.define('PVE.lxc.Config', {
|
|||||||
var shutdownBtn = Ext.create('PVE.button.Split', {
|
var shutdownBtn = Ext.create('PVE.button.Split', {
|
||||||
text: gettext('Shutdown'),
|
text: gettext('Shutdown'),
|
||||||
disabled: !caps.vms['VM.PowerMgmt'] || !running,
|
disabled: !caps.vms['VM.PowerMgmt'] || !running,
|
||||||
confirmMsg: PVE.Utils.format_task_description('vzshutdown', vmid),
|
confirmMsg: Proxmox.Utils.format_task_description('vzshutdown', vmid),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
vm_command('shutdown');
|
vm_command('shutdown');
|
||||||
},
|
},
|
||||||
|
@ -312,7 +312,7 @@ Ext.define('PVE.lxc.CreateWizard', {
|
|||||||
delete kv.password;
|
delete kv.password;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/lxc',
|
url: '/nodes/' + nodename + '/lxc',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -7,7 +7,7 @@ Ext.define('PVE.window.MPResize', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
var params = { disk: disk, size: '+' + size + 'G' };
|
var params = { disk: disk, size: '+' + size + 'G' };
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/resize',
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/resize',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -339,15 +339,15 @@ Ext.define('PVE.lxc.NetworkView', {
|
|||||||
load: function() {
|
load: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.setErrorMask(me, true);
|
Proxmox.Utils.setErrorMask(me, true);
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.url,
|
url: me.url,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, gettext('Error') + ': ' + response.htmlStatus);
|
Proxmox.Utils.setErrorMask(me, gettext('Error') + ': ' + response.htmlStatus);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, false);
|
Proxmox.Utils.setErrorMask(me, false);
|
||||||
var result = Ext.decode(response.responseText);
|
var result = Ext.decode(response.responseText);
|
||||||
var data = result.data || {};
|
var data = result.data || {};
|
||||||
me.dataCache = data;
|
me.dataCache = data;
|
||||||
@ -407,7 +407,7 @@ Ext.define('PVE.lxc.NetworkView', {
|
|||||||
"'" + rec.data.id + "'");
|
"'" + rec.data.id + "'");
|
||||||
},
|
},
|
||||||
handler: function(btn, event, rec) {
|
handler: function(btn, event, rec) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.url,
|
url: me.url,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
@ -497,7 +497,7 @@ Ext.define('PVE.lxc.NetworkView', {
|
|||||||
header: gettext('Firewall'),
|
header: gettext('Firewall'),
|
||||||
width: 80,
|
width: 80,
|
||||||
dataIndex: 'firewall',
|
dataIndex: 'firewall',
|
||||||
renderer: PVE.Utils.format_boolean
|
renderer: Proxmox.Utils.format_boolean
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: gettext('VLAN Tag'),
|
header: gettext('VLAN Tag'),
|
||||||
|
@ -25,7 +25,7 @@ Ext.define('PVE.lxc.Options', {
|
|||||||
onboot: {
|
onboot: {
|
||||||
header: gettext('Start at boot'),
|
header: gettext('Start at boot'),
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Start at boot'),
|
subject: gettext('Start at boot'),
|
||||||
@ -50,16 +50,16 @@ Ext.define('PVE.lxc.Options', {
|
|||||||
},
|
},
|
||||||
ostype: {
|
ostype: {
|
||||||
header: gettext('OS Type'),
|
header: gettext('OS Type'),
|
||||||
defaultValue: PVE.Utils.unknownText
|
defaultValue: Proxmox.Utils.unknownText
|
||||||
},
|
},
|
||||||
arch: {
|
arch: {
|
||||||
header: gettext('Architecture'),
|
header: gettext('Architecture'),
|
||||||
defaultValue: PVE.Utils.unknownText
|
defaultValue: Proxmox.Utils.unknownText
|
||||||
},
|
},
|
||||||
console: {
|
console: {
|
||||||
header: '/dev/console',
|
header: '/dev/console',
|
||||||
defaultValue: 1,
|
defaultValue: 1,
|
||||||
renderer: PVE.Utils.format_enabled_toggle,
|
renderer: Proxmox.Utils.format_enabled_toggle,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: '/dev/console',
|
subject: '/dev/console',
|
||||||
@ -104,7 +104,7 @@ Ext.define('PVE.lxc.Options', {
|
|||||||
deleteEmpty: true,
|
deleteEmpty: true,
|
||||||
value: '__default__',
|
value: '__default__',
|
||||||
comboItems: [
|
comboItems: [
|
||||||
['__default__', PVE.Utils.defaultText + " (tty)"],
|
['__default__', Proxmox.Utils.defaultText + " (tty)"],
|
||||||
['tty', "/dev/tty[X]"],
|
['tty', "/dev/tty[X]"],
|
||||||
['console', "/dev/console"],
|
['console', "/dev/console"],
|
||||||
['shell', "shell"]
|
['shell', "shell"]
|
||||||
@ -116,7 +116,7 @@ Ext.define('PVE.lxc.Options', {
|
|||||||
protection: {
|
protection: {
|
||||||
header: gettext('Protection'),
|
header: gettext('Protection'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Protection'),
|
subject: gettext('Protection'),
|
||||||
@ -132,7 +132,7 @@ Ext.define('PVE.lxc.Options', {
|
|||||||
},
|
},
|
||||||
unprivileged: {
|
unprivileged: {
|
||||||
header: gettext('Unprivileged container'),
|
header: gettext('Unprivileged container'),
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
defaultValue: 0
|
defaultValue: 0
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -47,7 +47,7 @@ Ext.define('PVE.lxc.RessourceView', {
|
|||||||
defaultValue: 512,
|
defaultValue: 512,
|
||||||
tdCls: 'pve-itype-icon-memory',
|
tdCls: 'pve-itype-icon-memory',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
return PVE.Utils.format_size(value*1024*1024);
|
return Proxmox.Utils.format_size(value*1024*1024);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
swap: {
|
swap: {
|
||||||
@ -57,7 +57,7 @@ Ext.define('PVE.lxc.RessourceView', {
|
|||||||
defaultValue: 512,
|
defaultValue: 512,
|
||||||
tdCls: 'pve-itype-icon-swap',
|
tdCls: 'pve-itype-icon-swap',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
return PVE.Utils.format_size(value*1024*1024);
|
return Proxmox.Utils.format_size(value*1024*1024);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
cores: {
|
cores: {
|
||||||
@ -91,7 +91,7 @@ Ext.define('PVE.lxc.RessourceView', {
|
|||||||
},
|
},
|
||||||
rootfs: {
|
rootfs: {
|
||||||
header: gettext('Root Disk'),
|
header: gettext('Root Disk'),
|
||||||
defaultValue: PVE.Utils.noneText,
|
defaultValue: Proxmox.Utils.noneText,
|
||||||
editor: mpeditor,
|
editor: mpeditor,
|
||||||
tdCls: 'pve-itype-icon-storage'
|
tdCls: 'pve-itype-icon-storage'
|
||||||
},
|
},
|
||||||
@ -170,7 +170,7 @@ Ext.define('PVE.lxc.RessourceView', {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var run_remove = function(b, e, rec) {
|
var run_remove = function(b, e, rec) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/api2/extjs/' + baseurl,
|
url: '/api2/extjs/' + baseurl,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
|
@ -16,7 +16,7 @@ Ext.define('PVE.window.LxcSnapshot', {
|
|||||||
params.description = descr;
|
params.description = descr;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot",
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot",
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -35,7 +35,7 @@ Ext.define('PVE.window.LxcSnapshot', {
|
|||||||
|
|
||||||
update_snapshot: function(snapname, descr) {
|
update_snapshot: function(snapname, descr) {
|
||||||
var me = this;
|
var me = this;
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: { description: descr },
|
params: { description: descr },
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot/" +
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot/" +
|
||||||
snapname + '/config',
|
snapname + '/config',
|
||||||
@ -173,7 +173,7 @@ Ext.define('PVE.window.LxcSnapshot', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// else load data
|
// else load data
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot/" +
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + "/snapshot/" +
|
||||||
me.snapname + '/config',
|
me.snapname + '/config',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -28,15 +28,15 @@ Ext.define('PVE.lxc.SnapshotTree', {
|
|||||||
reload: function(repeat) {
|
reload: function(repeat) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot',
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, response.htmlStatus);
|
Proxmox.Utils.setErrorMask(me, response.htmlStatus);
|
||||||
me.load_task.delay(me.load_delay);
|
me.load_task.delay(me.load_delay);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, false);
|
Proxmox.Utils.setErrorMask(me, false);
|
||||||
var digest = 'invalid';
|
var digest = 'invalid';
|
||||||
var idhash = {};
|
var idhash = {};
|
||||||
var root = { name: '__root', expanded: true, children: [] };
|
var root = { name: '__root', expanded: true, children: [] };
|
||||||
@ -78,7 +78,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/feature',
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/feature',
|
||||||
params: { feature: 'snapshot' },
|
params: { feature: 'snapshot' },
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
@ -159,7 +159,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
|
|||||||
selModel: sm,
|
selModel: sm,
|
||||||
enableFn: valid_snapshot_rollback,
|
enableFn: valid_snapshot_rollback,
|
||||||
confirmMsg: function(rec) {
|
confirmMsg: function(rec) {
|
||||||
return PVE.Utils.format_task_description('vzrollback', me.vmid) +
|
return Proxmox.Utils.format_task_description('vzrollback', me.vmid) +
|
||||||
" '" + rec.data.name + "'";
|
" '" + rec.data.name + "'";
|
||||||
},
|
},
|
||||||
handler: function(btn, event) {
|
handler: function(btn, event) {
|
||||||
@ -169,7 +169,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
var snapname = rec.data.name;
|
var snapname = rec.data.name;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot/' + snapname + '/rollback',
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot/' + snapname + '/rollback',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -205,7 +205,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
var snapname = rec.data.name;
|
var snapname = rec.data.name;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot/' + snapname,
|
url: '/nodes/' + me.nodename + '/lxc/' + me.vmid + '/snapshot/' + snapname,
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -270,7 +270,7 @@ Ext.define('PVE.lxc.SnapshotTree', {
|
|||||||
// width: 50,
|
// width: 50,
|
||||||
// renderer: function(value, metaData, record) {
|
// renderer: function(value, metaData, record) {
|
||||||
// if (record.data.name !== 'current') {
|
// if (record.data.name !== 'current') {
|
||||||
// return PVE.Utils.format_boolean(value);
|
// return Proxmox.Utils.format_boolean(value);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
|
@ -20,7 +20,7 @@ Ext.define('PVE.node.Config', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var node_command = function(cmd) {
|
var node_command = function(cmd) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: { command: cmd },
|
params: { command: cmd },
|
||||||
url: '/nodes/' + nodename + '/status',
|
url: '/nodes/' + nodename + '/status',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -60,7 +60,7 @@ Ext.define('PVE.node.DiskList', {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return v || PVE.Utils.noText;
|
return v || Proxmox.Utils.noText;
|
||||||
},
|
},
|
||||||
dataIndex: 'used'
|
dataIndex: 'used'
|
||||||
},
|
},
|
||||||
@ -69,7 +69,7 @@ Ext.define('PVE.node.DiskList', {
|
|||||||
width: 100,
|
width: 100,
|
||||||
align: 'right',
|
align: 'right',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
dataIndex: 'size'
|
dataIndex: 'size'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -78,9 +78,9 @@ Ext.define('PVE.node.DiskList', {
|
|||||||
align: 'right',
|
align: 'right',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
return PVE.Utils.yesText;
|
return Proxmox.Utils.yesText;
|
||||||
} else {
|
} else {
|
||||||
return PVE.Utils.noText;
|
return Proxmox.Utils.noText;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dataIndex: 'gpt'
|
dataIndex: 'gpt'
|
||||||
@ -194,7 +194,7 @@ Ext.define('PVE.node.DiskList', {
|
|||||||
|
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var rec = sm.getSelection()[0];
|
var rec = sm.getSelection()[0];
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/api2/extjs/nodes/' + nodename + '/disks/initgpt',
|
url: '/api2/extjs/nodes/' + nodename + '/disks/initgpt',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -214,7 +214,7 @@ Ext.define('PVE.node.DiskList', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
me.loadCount = 1; // avoid duplicate loadmask
|
me.loadCount = 1; // avoid duplicate loadmask
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
@ -346,7 +346,7 @@ Ext.define('PVE.DiskSmartWindow', {
|
|||||||
var grid = me.down('#smarts');
|
var grid = me.down('#smarts');
|
||||||
var text = me.down('#text');
|
var text = me.down('#text');
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(grid, me.store);
|
Proxmox.Utils.monStoreErrors(grid, me.store);
|
||||||
me.mon(me.store, 'load', function(s, records, success) {
|
me.mon(me.store, 'load', function(s, records, success) {
|
||||||
if (success && records.length > 0) {
|
if (success && records.length > 0) {
|
||||||
var rec = records[0];
|
var rec = records[0];
|
||||||
|
@ -118,7 +118,7 @@ Ext.define('PVE.node.StatusView', {
|
|||||||
|
|
||||||
updateTitle: function() {
|
updateTitle: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
var uptime = PVE.Utils.render_uptime(me.getRecordValue('uptime'));
|
var uptime = Proxmox.Utils.render_uptime(me.getRecordValue('uptime'));
|
||||||
me.setTitle(me.pveSelNode.data.node + ' (' + gettext('Uptime') + ': ' + uptime + ')');
|
me.setTitle(me.pveSelNode.data.node + ' (' + gettext('Uptime') + ': ' + uptime + ')');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ Ext.define('PVE.node.Subscription', {
|
|||||||
items: view
|
items: view
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/api2/extjs/nodes/' + me.nodename + '/report',
|
url: '/api2/extjs/nodes/' + me.nodename + '/report',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -142,7 +142,7 @@ Ext.define('PVE.node.Subscription', {
|
|||||||
},
|
},
|
||||||
checktime: {
|
checktime: {
|
||||||
header: gettext('Last checked'),
|
header: gettext('Last checked'),
|
||||||
renderer: PVE.Utils.render_timestamp
|
renderer: Proxmox.Utils.render_timestamp
|
||||||
},
|
},
|
||||||
nextduedate: {
|
nextduedate: {
|
||||||
header: gettext('Next due date')
|
header: gettext('Next due date')
|
||||||
@ -166,7 +166,7 @@ Ext.define('PVE.node.Subscription', {
|
|||||||
{
|
{
|
||||||
text: gettext('Check'),
|
text: gettext('Check'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: { force: 1 },
|
params: { force: 1 },
|
||||||
url: baseurl,
|
url: baseurl,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -181,7 +181,7 @@ Ext.define('PVE.node.Subscription', {
|
|||||||
{
|
{
|
||||||
text: gettext('System Report'),
|
text: gettext('System Report'),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
PVE.Utils.checked_command(function (){ me.showReport(); });
|
Proxmox.Utils.checked_command(function (){ me.showReport(); });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -32,7 +32,7 @@ Ext.define('PVE.node.Summary', {
|
|||||||
items: [ view ]
|
items: [ view ]
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
url: "/nodes/" + nodename + "/apt/versions",
|
url: "/nodes/" + nodename + "/apt/versions",
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
@ -83,7 +83,7 @@ Ext.define('PVE.node.Summary', {
|
|||||||
var version_btn = new Ext.Button({
|
var version_btn = new Ext.Button({
|
||||||
text: gettext('Package versions'),
|
text: gettext('Package versions'),
|
||||||
handler: function(){
|
handler: function(){
|
||||||
PVE.Utils.checked_command(function() { me.showVersions(); });
|
Proxmox.Utils.checked_command(function() { me.showVersions(); });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ Ext.define('PVE.panel.GuestStatusView', {
|
|||||||
|
|
||||||
var text = "";
|
var text = "";
|
||||||
if (Number(uptime) > 0) {
|
if (Number(uptime) > 0) {
|
||||||
text = " (" + gettext('Uptime') + ': ' + PVE.Utils.format_duration_long(uptime)
|
text = " (" + gettext('Uptime') + ': ' + Proxmox.Utils.format_duration_long(uptime)
|
||||||
+ ')';
|
+ ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ Ext.define('PVE.panel.InputPanel', {
|
|||||||
|
|
||||||
Ext.Array.each(me.query('[isFormField]'), function(field) {
|
Ext.Array.each(me.query('[isFormField]'), function(field) {
|
||||||
if (!dirtyOnly || field.isDirty()) {
|
if (!dirtyOnly || field.isDirty()) {
|
||||||
PVE.Utils.assemble_field_data(values, field.getSubmitData());
|
Proxmox.Utils.assemble_field_data(values, field.getSubmitData());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -85,12 +85,12 @@ Ext.define('PVE.panel.LogView', {
|
|||||||
req_params.since = Ext.Date.format(me.since_date, 'Y-m-d');
|
req_params.since = Ext.Date.format(me.since_date, 'Y-m-d');
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.url,
|
url: me.url,
|
||||||
params: req_params,
|
params: req_params,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
PVE.Utils.setErrorMask(me, false);
|
Proxmox.Utils.setErrorMask(me, false);
|
||||||
var list = response.result.data;
|
var list = response.result.data;
|
||||||
var total = response.result.total;
|
var total = response.result.total;
|
||||||
var first = 0, last = 0;
|
var first = 0, last = 0;
|
||||||
@ -113,7 +113,7 @@ Ext.define('PVE.panel.LogView', {
|
|||||||
},
|
},
|
||||||
failure: function(response) {
|
failure: function(response) {
|
||||||
var msg = response.htmlStatus;
|
var msg = response.htmlStatus;
|
||||||
PVE.Utils.setErrorMask(me, msg);
|
Proxmox.Utils.setErrorMask(me, msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -9,7 +9,7 @@ Ext.define('PVE.panel.NotesView', {
|
|||||||
load: function() {
|
load: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: me.url,
|
url: me.url,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
|
@ -115,7 +115,7 @@ Ext.define('PVE.panel.StatusView', {
|
|||||||
throw "no title given";
|
throw "no title given";
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, me.rstore);
|
Proxmox.Utils.monStoreErrors(me, me.rstore);
|
||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Ext.define('PVE.qemu.BootOrderPanel', {
|
|||||||
|
|
||||||
me.list.push(['d', 'CD-ROM']);
|
me.list.push(['d', 'CD-ROM']);
|
||||||
me.list.push(['n', gettext('Network')]);
|
me.list.push(['n', gettext('Network')]);
|
||||||
me.list.push(['__none__', PVE.Utils.noneText]);
|
me.list.push(['__none__', Proxmox.Utils.noneText]);
|
||||||
|
|
||||||
me.recomputeList();
|
me.recomputeList();
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
statics: {
|
statics: {
|
||||||
// display a snapshot selector only if needed
|
// display a snapshot selector only if needed
|
||||||
wrap: function(nodename, vmid, isTemplate) {
|
wrap: function(nodename, vmid, isTemplate) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid +'/snapshot',
|
url: '/nodes/' + nodename + '/qemu/' + vmid +'/snapshot',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert('Error', response.htmlStatus);
|
||||||
@ -74,7 +74,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/clone',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/clone',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -110,7 +110,7 @@ Ext.define('PVE.window.Clone', {
|
|||||||
params.snapname = snapname;
|
params.snapname = snapname;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/feature',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/feature',
|
||||||
params: params,
|
params: params,
|
||||||
|
@ -18,7 +18,7 @@ Ext.define('PVE.qemu.CmdMenu', {
|
|||||||
var vmname = me.pveSelNode.data.name;
|
var vmname = me.pveSelNode.data.name;
|
||||||
|
|
||||||
var vm_command = function(cmd, params) {
|
var vm_command = function(cmd, params) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
|
url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -64,7 +64,7 @@ Ext.define('PVE.qemu.CmdMenu', {
|
|||||||
hidden: suspended,
|
hidden: suspended,
|
||||||
disabled: stopped || suspended,
|
disabled: stopped || suspended,
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var msg = PVE.Utils.format_task_description('qmsuspend', vmid);
|
var msg = Proxmox.Utils.format_task_description('qmsuspend', vmid);
|
||||||
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
@ -86,7 +86,7 @@ Ext.define('PVE.qemu.CmdMenu', {
|
|||||||
iconCls: 'fa fa-fw fa-power-off',
|
iconCls: 'fa fa-fw fa-power-off',
|
||||||
disabled: stopped || suspended,
|
disabled: stopped || suspended,
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var msg = PVE.Utils.format_task_description('qmshutdown', vmid);
|
var msg = Proxmox.Utils.format_task_description('qmshutdown', vmid);
|
||||||
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
@ -101,7 +101,7 @@ Ext.define('PVE.qemu.CmdMenu', {
|
|||||||
iconCls: 'fa fa-fw fa-stop',
|
iconCls: 'fa fa-fw fa-stop',
|
||||||
disabled: stopped,
|
disabled: stopped,
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var msg = PVE.Utils.format_task_description('qmstop', vmid);
|
var msg = Proxmox.Utils.format_task_description('qmstop', vmid);
|
||||||
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
@ -141,13 +141,13 @@ Ext.define('PVE.qemu.CmdMenu', {
|
|||||||
iconCls: 'fa fa-fw fa-file-o',
|
iconCls: 'fa fa-fw fa-file-o',
|
||||||
hidden: !caps.vms['VM.Allocate'],
|
hidden: !caps.vms['VM.Allocate'],
|
||||||
handler: function() {
|
handler: function() {
|
||||||
var msg = PVE.Utils.format_task_description('qmtemplate', vmid);
|
var msg = Proxmox.Utils.format_task_description('qmtemplate', vmid);
|
||||||
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
|
||||||
if (btn !== 'yes') {
|
if (btn !== 'yes') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + '/template',
|
url: '/nodes/' + nodename + '/qemu/' + vmid + '/template',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
@ -162,7 +162,7 @@ Ext.define('PVE.qemu.CmdMenu', {
|
|||||||
text: gettext('Console'),
|
text: gettext('Console'),
|
||||||
iconCls: 'fa fa-fw fa-terminal',
|
iconCls: 'fa fa-fw fa-terminal',
|
||||||
handler: function() {
|
handler: function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + '/status/current',
|
url: '/nodes/' + nodename + '/qemu/' + vmid + '/status/current',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
Ext.Msg.alert('Error', response.htmlStatus);
|
Ext.Msg.alert('Error', response.htmlStatus);
|
||||||
|
@ -31,7 +31,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var vm_command = function(cmd, params) {
|
var vm_command = function(cmd, params) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: base_url + '/status/' + cmd,
|
url: base_url + '/status/' + cmd,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -94,9 +94,9 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
xtype: 'pveMenuItem',
|
xtype: 'pveMenuItem',
|
||||||
iconCls: 'fa fa-fw fa-file-o',
|
iconCls: 'fa fa-fw fa-file-o',
|
||||||
hidden: caps.vms['VM.Allocate'] ? false : true,
|
hidden: caps.vms['VM.Allocate'] ? false : true,
|
||||||
confirmMsg: PVE.Utils.format_task_description('qmtemplate', vmid),
|
confirmMsg: Proxmox.Utils.format_task_description('qmtemplate', vmid),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: base_url + '/template',
|
url: base_url + '/template',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -137,7 +137,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
text: gettext('Shutdown'),
|
text: gettext('Shutdown'),
|
||||||
disabled: !caps.vms['VM.PowerMgmt'] || !running,
|
disabled: !caps.vms['VM.PowerMgmt'] || !running,
|
||||||
hidden: template,
|
hidden: template,
|
||||||
confirmMsg: PVE.Utils.format_task_description('qmshutdown', vmid),
|
confirmMsg: Proxmox.Utils.format_task_description('qmshutdown', vmid),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
vm_command('shutdown');
|
vm_command('shutdown');
|
||||||
},
|
},
|
||||||
@ -146,7 +146,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
text: gettext('Stop'),
|
text: gettext('Stop'),
|
||||||
disabled: !caps.vms['VM.PowerMgmt'],
|
disabled: !caps.vms['VM.PowerMgmt'],
|
||||||
dangerous: true,
|
dangerous: true,
|
||||||
confirmMsg: PVE.Utils.format_task_description('qmstop', vmid),
|
confirmMsg: Proxmox.Utils.format_task_description('qmstop', vmid),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
vm_command("stop", { timeout: 30 });
|
vm_command("stop", { timeout: 30 });
|
||||||
},
|
},
|
||||||
@ -154,7 +154,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
},{
|
},{
|
||||||
text: gettext('Reset'),
|
text: gettext('Reset'),
|
||||||
disabled: !caps.vms['VM.PowerMgmt'],
|
disabled: !caps.vms['VM.PowerMgmt'],
|
||||||
confirmMsg: PVE.Utils.format_task_description('qmreset', vmid),
|
confirmMsg: Proxmox.Utils.format_task_description('qmreset', vmid),
|
||||||
handler: function() {
|
handler: function() {
|
||||||
vm_command("reset");
|
vm_command("reset");
|
||||||
},
|
},
|
||||||
|
@ -167,7 +167,7 @@ Ext.define('PVE.qemu.CreateWizard', {
|
|||||||
var nodename = kv.nodename;
|
var nodename = kv.nodename;
|
||||||
delete kv.nodename;
|
delete kv.nodename;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + nodename + '/qemu',
|
url: '/nodes/' + nodename + '/qemu',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -17,7 +17,7 @@ Ext.define('PVE.window.HDMove', {
|
|||||||
params['delete'] = 1;
|
params['delete'] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/move_disk',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/move_disk',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -7,7 +7,7 @@ Ext.define('PVE.window.HDResize', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
var params = { disk: disk, size: '+' + size + 'G' };
|
var params = { disk: disk, size: '+' + size + 'G' };
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/resize',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/resize',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -50,11 +50,11 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
renderer: function(value, metaData, record) {
|
renderer: function(value, metaData, record) {
|
||||||
var balloon = me.getObjectValue('balloon');
|
var balloon = me.getObjectValue('balloon');
|
||||||
if (balloon) {
|
if (balloon) {
|
||||||
return PVE.Utils.format_size(balloon*1024*1024) + "/" +
|
return Proxmox.Utils.format_size(balloon*1024*1024) + "/" +
|
||||||
PVE.Utils.format_size(value*1024*1024);
|
Proxmox.Utils.format_size(value*1024*1024);
|
||||||
|
|
||||||
}
|
}
|
||||||
return PVE.Utils.format_size(value*1024*1024);
|
return Proxmox.Utils.format_size(value*1024*1024);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
sockets: {
|
sockets: {
|
||||||
@ -418,7 +418,7 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
return msg;
|
return msg;
|
||||||
},
|
},
|
||||||
handler: function(b, e, rec) {
|
handler: function(b, e, rec) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/api2/extjs/' + baseurl,
|
url: '/api2/extjs/' + baseurl,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
@ -459,7 +459,7 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
var rowdef = me.rows[rec.data.key] || {};
|
var rowdef = me.rows[rec.data.key] || {};
|
||||||
var keys = rowdef.multiKey || [ rec.data.key ];
|
var keys = rowdef.multiKey || [ rec.data.key ];
|
||||||
var revert = keys.join(',');
|
var revert = keys.join(',');
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/api2/extjs/' + baseurl,
|
url: '/api2/extjs/' + baseurl,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
|
@ -133,7 +133,7 @@ Ext.define('PVE.qemu.MemoryInputPanel', {
|
|||||||
labelAlign: 'right',
|
labelAlign: 'right',
|
||||||
labelWidth: labelWidth,
|
labelWidth: labelWidth,
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
emptyText: PVE.Utils.defaultText + ' (1000)',
|
emptyText: Proxmox.Utils.defaultText + ' (1000)',
|
||||||
submitEmptyText: false
|
submitEmptyText: false
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
@ -57,7 +57,7 @@ Ext.define('PVE.qemu.Monitor', {
|
|||||||
var executeCmd = function(cmd) {
|
var executeCmd = function(cmd) {
|
||||||
addLine("# " + Ext.htmlEncode(cmd));
|
addLine("# " + Ext.htmlEncode(cmd));
|
||||||
refresh();
|
refresh();
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: { command: cmd },
|
params: { command: cmd },
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + "/monitor",
|
url: '/nodes/' + nodename + '/qemu/' + vmid + "/monitor",
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -54,7 +54,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
onboot: {
|
onboot: {
|
||||||
header: gettext('Start at boot'),
|
header: gettext('Start at boot'),
|
||||||
defaultValue: '',
|
defaultValue: '',
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Start at boot'),
|
subject: gettext('Start at boot'),
|
||||||
@ -124,7 +124,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
tablet: {
|
tablet: {
|
||||||
header: gettext('Use tablet for pointer'),
|
header: gettext('Use tablet for pointer'),
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.HWType'] ? {
|
editor: caps.vms['VM.Config.HWType'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Use tablet for pointer'),
|
subject: gettext('Use tablet for pointer'),
|
||||||
@ -159,7 +159,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
acpi: {
|
acpi: {
|
||||||
header: gettext('ACPI support'),
|
header: gettext('ACPI support'),
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.HWType'] ? {
|
editor: caps.vms['VM.Config.HWType'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('ACPI support'),
|
subject: gettext('ACPI support'),
|
||||||
@ -189,7 +189,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
kvm: {
|
kvm: {
|
||||||
header: gettext('KVM hardware virtualization'),
|
header: gettext('KVM hardware virtualization'),
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.HWType'] ? {
|
editor: caps.vms['VM.Config.HWType'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('KVM hardware virtualization'),
|
subject: gettext('KVM hardware virtualization'),
|
||||||
@ -207,7 +207,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
freeze: {
|
freeze: {
|
||||||
header: gettext('Freeze CPU at startup'),
|
header: gettext('Freeze CPU at startup'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.PowerMgmt'] ? {
|
editor: caps.vms['VM.PowerMgmt'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Freeze CPU at startup'),
|
subject: gettext('Freeze CPU at startup'),
|
||||||
@ -225,7 +225,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
localtime: {
|
localtime: {
|
||||||
header: gettext('Use local time for RTC'),
|
header: gettext('Use local time for RTC'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Use local time for RTC'),
|
subject: gettext('Use local time for RTC'),
|
||||||
@ -266,7 +266,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
agent: {
|
agent: {
|
||||||
header: gettext('Qemu Agent'),
|
header: gettext('Qemu Agent'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Qemu Agent'),
|
subject: gettext('Qemu Agent'),
|
||||||
@ -283,7 +283,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
protection: {
|
protection: {
|
||||||
header: gettext('Protection'),
|
header: gettext('Protection'),
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
renderer: PVE.Utils.format_boolean,
|
renderer: Proxmox.Utils.format_boolean,
|
||||||
editor: caps.vms['VM.Config.Options'] ? {
|
editor: caps.vms['VM.Config.Options'] ? {
|
||||||
xtype: 'pveWindowEdit',
|
xtype: 'pveWindowEdit',
|
||||||
subject: gettext('Protection'),
|
subject: gettext('Protection'),
|
||||||
@ -358,7 +358,7 @@ Ext.define('PVE.qemu.Options', {
|
|||||||
var keys = rowdef.multiKey || [ rec.data.key ];
|
var keys = rowdef.multiKey || [ rec.data.key ];
|
||||||
var revert = keys.join(',');
|
var revert = keys.join(',');
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/api2/extjs/' + baseurl,
|
url: '/api2/extjs/' + baseurl,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
|
@ -24,7 +24,7 @@ Ext.define('PVE.qemu.BiosEdit', {
|
|||||||
listeners: {
|
listeners: {
|
||||||
'change' : function(field, newValue) {
|
'change' : function(field, newValue) {
|
||||||
if (newValue == 'ovmf') {
|
if (newValue == 'ovmf') {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url : me.url,
|
url : me.url,
|
||||||
method : 'GET',
|
method : 'GET',
|
||||||
failure : function(response, opts) {
|
failure : function(response, opts) {
|
||||||
|
@ -16,7 +16,7 @@ Ext.define('PVE.window.Snapshot', {
|
|||||||
params.description = descr;
|
params.description = descr;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot",
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot",
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -35,7 +35,7 @@ Ext.define('PVE.window.Snapshot', {
|
|||||||
|
|
||||||
update_snapshot: function(snapname, descr) {
|
update_snapshot: function(snapname, descr) {
|
||||||
var me = this;
|
var me = this;
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: { description: descr },
|
params: { description: descr },
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot/" +
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot/" +
|
||||||
snapname + '/config',
|
snapname + '/config',
|
||||||
@ -182,7 +182,7 @@ Ext.define('PVE.window.Snapshot', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// else load data
|
// else load data
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot/" +
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + "/snapshot/" +
|
||||||
me.snapname + '/config',
|
me.snapname + '/config',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -26,15 +26,15 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
reload: function(repeat) {
|
reload: function(repeat) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
failure: function(response, opts) {
|
failure: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, response.htmlStatus);
|
Proxmox.Utils.setErrorMask(me, response.htmlStatus);
|
||||||
me.load_task.delay(me.load_delay);
|
me.load_task.delay(me.load_delay);
|
||||||
},
|
},
|
||||||
success: function(response, opts) {
|
success: function(response, opts) {
|
||||||
PVE.Utils.setErrorMask(me, false);
|
Proxmox.Utils.setErrorMask(me, false);
|
||||||
var digest = 'invalid';
|
var digest = 'invalid';
|
||||||
var idhash = {};
|
var idhash = {};
|
||||||
var root = { name: '__root', expanded: true, children: [] };
|
var root = { name: '__root', expanded: true, children: [] };
|
||||||
@ -76,7 +76,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/feature',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/feature',
|
||||||
params: { feature: 'snapshot' },
|
params: { feature: 'snapshot' },
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
@ -157,7 +157,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
selModel: sm,
|
selModel: sm,
|
||||||
enableFn: valid_snapshot_rollback,
|
enableFn: valid_snapshot_rollback,
|
||||||
confirmMsg: function(rec) {
|
confirmMsg: function(rec) {
|
||||||
return PVE.Utils.format_task_description('qmrollback', me.vmid) +
|
return Proxmox.Utils.format_task_description('qmrollback', me.vmid) +
|
||||||
" '" + rec.data.name + "'";
|
" '" + rec.data.name + "'";
|
||||||
},
|
},
|
||||||
handler: function(btn, event) {
|
handler: function(btn, event) {
|
||||||
@ -167,7 +167,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
var snapname = rec.data.name;
|
var snapname = rec.data.name;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot/' + snapname + '/rollback',
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot/' + snapname + '/rollback',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -203,7 +203,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
}
|
}
|
||||||
var snapname = rec.data.name;
|
var snapname = rec.data.name;
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot/' + snapname,
|
url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/snapshot/' + snapname,
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
@ -268,7 +268,7 @@ Ext.define('PVE.qemu.SnapshotTree', {
|
|||||||
width: 50,
|
width: 50,
|
||||||
renderer: function(value, metaData, record) {
|
renderer: function(value, metaData, record) {
|
||||||
if (record.data.name !== 'current') {
|
if (record.data.name !== 'current') {
|
||||||
return PVE.Utils.format_boolean(value);
|
return Proxmox.Utils.format_boolean(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -19,7 +19,7 @@ Ext.define('PVE.qemu.TemplateMenu', {
|
|||||||
var template = me.pveSelNode.data.template;
|
var template = me.pveSelNode.data.template;
|
||||||
|
|
||||||
var vm_command = function(cmd, params) {
|
var vm_command = function(cmd, params) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
|
url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -35,7 +35,7 @@ Ext.define('PVE.grid.TemplateSelector', {
|
|||||||
store.load();
|
store.load();
|
||||||
};
|
};
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
store: store,
|
store: store,
|
||||||
@ -111,7 +111,7 @@ Ext.define('PVE.storage.TemplateDownload', {
|
|||||||
disabled: true,
|
disabled: true,
|
||||||
selModel: sm,
|
selModel: sm,
|
||||||
handler: function(button, event, rec) {
|
handler: function(button, event, rec) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/aplinfo',
|
url: '/nodes/' + me.nodename + '/aplinfo',
|
||||||
params: {
|
params: {
|
||||||
storage: me.storage,
|
storage: me.storage,
|
||||||
@ -223,7 +223,7 @@ Ext.define('PVE.storage.Upload', {
|
|||||||
var updateProgress = function(per, bytes) {
|
var updateProgress = function(per, bytes) {
|
||||||
var text = (per * 100).toFixed(2) + '%';
|
var text = (per * 100).toFixed(2) + '%';
|
||||||
if (bytes) {
|
if (bytes) {
|
||||||
text += " (" + PVE.Utils.format_size(bytes) + ')';
|
text += " (" + Proxmox.Utils.format_size(bytes) + ')';
|
||||||
}
|
}
|
||||||
pbar.updateProgress(per, text);
|
pbar.updateProgress(per, text);
|
||||||
};
|
};
|
||||||
@ -272,7 +272,7 @@ Ext.define('PVE.storage.Upload', {
|
|||||||
var msg = gettext('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 = Proxmox.Utils.extractRequestError(result, true);
|
||||||
Ext.Msg.alert(gettext('Error'), htmlStatus, function(btn) {
|
Ext.Msg.alert(gettext('Error'), htmlStatus, function(btn) {
|
||||||
me.close();
|
me.close();
|
||||||
});
|
});
|
||||||
@ -371,7 +371,7 @@ Ext.define('PVE.storage.ContentView', {
|
|||||||
me.statusStore.load();
|
me.statusStore.load();
|
||||||
};
|
};
|
||||||
|
|
||||||
PVE.Utils.monStoreErrors(me, store);
|
Proxmox.Utils.monStoreErrors(me, store);
|
||||||
|
|
||||||
var templateButton = Ext.create('Proxmox.button.Button',{
|
var templateButton = Ext.create('Proxmox.button.Button',{
|
||||||
itemId: 'tmpl-btn',
|
itemId: 'tmpl-btn',
|
||||||
@ -511,7 +511,7 @@ Ext.define('PVE.storage.ContentView', {
|
|||||||
{
|
{
|
||||||
header: gettext('Size'),
|
header: gettext('Size'),
|
||||||
width: 100,
|
width: 100,
|
||||||
renderer: PVE.Utils.format_size,
|
renderer: Proxmox.Utils.format_size,
|
||||||
dataIndex: 'size'
|
dataIndex: 'size'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -20,14 +20,14 @@ Ext.define('PVE.storage.StatusView', {
|
|||||||
title: gettext('Enabled'),
|
title: gettext('Enabled'),
|
||||||
printBar: false,
|
printBar: false,
|
||||||
textField: 'disabled',
|
textField: 'disabled',
|
||||||
renderer: PVE.Utils.format_neg_boolean
|
renderer: Proxmox.Utils.format_neg_boolean
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
itemId: 'active',
|
itemId: 'active',
|
||||||
title: gettext('Active'),
|
title: gettext('Active'),
|
||||||
printBar: false,
|
printBar: false,
|
||||||
textField: 'active',
|
textField: 'active',
|
||||||
renderer: PVE.Utils.format_boolean
|
renderer: Proxmox.Utils.format_boolean
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
itemId: 'content',
|
itemId: 'content',
|
||||||
|
@ -52,7 +52,7 @@ Ext.define('PVE.window.Backup', {
|
|||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
fieldLabel: gettext('Send email to'),
|
fieldLabel: gettext('Send email to'),
|
||||||
name: 'mailto',
|
name: 'mailto',
|
||||||
emptyText: PVE.Utils.noneText
|
emptyText: Proxmox.Utils.noneText
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -79,7 +79,7 @@ Ext.define('PVE.window.Backup', {
|
|||||||
params.compress = values.compress;
|
params.compress = values.compress;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: '/nodes/' + me.nodename + '/vzdump',
|
url: '/nodes/' + me.nodename + '/vzdump',
|
||||||
params: params,
|
params: params,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
|
@ -31,7 +31,7 @@ Ext.define('PVE.window.BackupConfig', {
|
|||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + nodename + "/vzdump/extractconfig",
|
url: "/nodes/" + nodename + "/vzdump/extractconfig",
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params: {
|
||||||
|
@ -18,7 +18,7 @@ Ext.define('PVE.window.BulkAction', {
|
|||||||
|
|
||||||
submit: function(params) {
|
submit: function(params) {
|
||||||
var me = this;
|
var me = this;
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + me.nodename + '/' + "/" + me.action,
|
url: '/nodes/' + me.nodename + '/' + "/" + me.action,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
|
@ -51,12 +51,12 @@ Ext.define('PVE.window.Edit', {
|
|||||||
|
|
||||||
form.getFields().each(function(field) {
|
form.getFields().each(function(field) {
|
||||||
if (!field.up('inputpanel') && (!dirtyOnly || field.isDirty())) {
|
if (!field.up('inputpanel') && (!dirtyOnly || field.isDirty())) {
|
||||||
PVE.Utils.assemble_field_data(values, field.getSubmitData());
|
Proxmox.Utils.assemble_field_data(values, field.getSubmitData());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Ext.Array.each(me.query('inputpanel'), function(panel) {
|
Ext.Array.each(me.query('inputpanel'), function(panel) {
|
||||||
PVE.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
|
Proxmox.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
|
||||||
});
|
});
|
||||||
|
|
||||||
return values;
|
return values;
|
||||||
@ -110,7 +110,7 @@ Ext.define('PVE.window.Edit', {
|
|||||||
values = undefined;
|
values = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: url,
|
url: url,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: me.method || (me.backgroundDelay ? 'POST' : 'PUT'),
|
method: me.method || (me.backgroundDelay ? 'POST' : 'PUT'),
|
||||||
@ -185,7 +185,7 @@ Ext.define('PVE.window.Edit', {
|
|||||||
|
|
||||||
createWrapper(options.success);
|
createWrapper(options.success);
|
||||||
|
|
||||||
PVE.Utils.API2Request(newopts);
|
Proxmox.Utils.API2Request(newopts);
|
||||||
},
|
},
|
||||||
|
|
||||||
initComponent : function() {
|
initComponent : function() {
|
||||||
@ -268,7 +268,7 @@ Ext.define('PVE.window.Edit', {
|
|||||||
var twoColumn = items[0].column1 || items[0].column2;
|
var twoColumn = items[0].column1 || items[0].column2;
|
||||||
|
|
||||||
if (me.subject && !me.title) {
|
if (me.subject && !me.title) {
|
||||||
me.title = PVE.Utils.dialog_title(me.subject, me.isCreate, me.isAdd);
|
me.title = Proxmox.Utils.dialog_title(me.subject, me.isCreate, me.isAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (me.isCreate) {
|
if (me.isCreate) {
|
||||||
|
@ -31,7 +31,7 @@ Ext.define('PVE.window.Migrate', {
|
|||||||
params[view.liveMode] = 1;
|
params[view.liveMode] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
params: params,
|
params: params,
|
||||||
url: '/nodes/' + view.nodename + '/' + view.vmtype + '/' + view.vmid + '/migrate',
|
url: '/nodes/' + view.nodename + '/' + view.vmtype + '/' + view.vmid + '/migrate',
|
||||||
waitMsgTarget: view,
|
waitMsgTarget: view,
|
||||||
|
@ -75,7 +75,7 @@ Ext.define('PVE.window.Restore', {
|
|||||||
var form = me.formPanel.getForm();
|
var form = me.formPanel.getForm();
|
||||||
|
|
||||||
var doRestore = function(url, params) {
|
var doRestore = function(url, params) {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: url,
|
url: url,
|
||||||
params: params,
|
params: params,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@ -114,11 +114,11 @@ Ext.define('PVE.window.Restore', {
|
|||||||
params.ostemplate = me.volid;
|
params.ostemplate = me.volid;
|
||||||
params.restore = 1;
|
params.restore = 1;
|
||||||
if (values.unprivileged) { params.unprivileged = 1; }
|
if (values.unprivileged) { params.unprivileged = 1; }
|
||||||
msg = PVE.Utils.format_task_description('vzrestore', params.vmid);
|
msg = Proxmox.Utils.format_task_description('vzrestore', params.vmid);
|
||||||
} else if (me.vmtype === 'qemu') {
|
} else if (me.vmtype === 'qemu') {
|
||||||
url = '/nodes/' + me.nodename + '/qemu';
|
url = '/nodes/' + me.nodename + '/qemu';
|
||||||
params.archive = me.volid;
|
params.archive = me.volid;
|
||||||
msg = PVE.Utils.format_task_description('qmrestore', params.vmid);
|
msg = Proxmox.Utils.format_task_description('qmrestore', params.vmid);
|
||||||
} else {
|
} else {
|
||||||
throw 'unknown VM type';
|
throw 'unknown VM type';
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ Ext.define('PVE.window.SafeDestroy', {
|
|||||||
'button[reference=removeButton]': {
|
'button[reference=removeButton]': {
|
||||||
click: function() {
|
click: function() {
|
||||||
var view = this.getView();
|
var view = this.getView();
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: view.getUrl() + view.getParams(),
|
url: view.getUrl() + view.getParams(),
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
waitMsgTarget: view,
|
waitMsgTarget: view,
|
||||||
@ -152,11 +152,11 @@ Ext.define('PVE.window.SafeDestroy', {
|
|||||||
var msg;
|
var msg;
|
||||||
|
|
||||||
if (item.type === 'VM') {
|
if (item.type === 'VM') {
|
||||||
msg = PVE.Utils.format_task_description('qmdestroy', item.id);
|
msg = Proxmox.Utils.format_task_description('qmdestroy', item.id);
|
||||||
} else if (item.type === 'CT') {
|
} else if (item.type === 'CT') {
|
||||||
msg = PVE.Utils.format_task_description('vzdestroy', item.id);
|
msg = Proxmox.Utils.format_task_description('vzdestroy', item.id);
|
||||||
} else if (item.type === 'CephPool') {
|
} else if (item.type === 'CephPool') {
|
||||||
msg = PVE.Utils.format_task_description('cephdestroypool', item.id);
|
msg = Proxmox.Utils.format_task_description('cephdestroypool', item.id);
|
||||||
} else {
|
} else {
|
||||||
throw "unknown item type specified";
|
throw "unknown item type specified";
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ Ext.define('PVE.window.Settings', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
var sp = Ext.state.Manager.getProvider();
|
var sp = Ext.state.Manager.getProvider();
|
||||||
|
|
||||||
var username = sp.get('login-username') || PVE.Utils.noneText;
|
var username = sp.get('login-username') || Proxmox.Utils.noneText;
|
||||||
me.lookupReference('savedUserName').setValue(username);
|
me.lookupReference('savedUserName').setValue(username);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -57,7 +57,7 @@ Ext.define('PVE.window.Settings', {
|
|||||||
var usernamefield = me.lookupReference('savedUserName');
|
var usernamefield = me.lookupReference('savedUserName');
|
||||||
var sp = Ext.state.Manager.getProvider();
|
var sp = Ext.state.Manager.getProvider();
|
||||||
|
|
||||||
usernamefield.setValue(PVE.Utils.noneText);
|
usernamefield.setValue(Proxmox.Utils.noneText);
|
||||||
sp.clear('login-username');
|
sp.clear('login-username');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -9,7 +9,7 @@ Ext.define('PVE.window.TaskProgress', {
|
|||||||
throw "no task specified";
|
throw "no task specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
var task = PVE.Utils.parse_task_upid(me.upid);
|
var task = Proxmox.Utils.parse_task_upid(me.upid);
|
||||||
|
|
||||||
var statstore = Ext.create('PVE.data.ObjectStore', {
|
var statstore = Ext.create('PVE.data.ObjectStore', {
|
||||||
url: "/api2/json/nodes/" + task.node + "/tasks/" + me.upid + "/status",
|
url: "/api2/json/nodes/" + task.node + "/tasks/" + me.upid + "/status",
|
||||||
@ -47,7 +47,7 @@ Ext.define('PVE.window.TaskProgress', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var descr = PVE.Utils.format_task_description(task.type, task.id);
|
var descr = Proxmox.Utils.format_task_description(task.type, task.id);
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
title: "Task: " + descr,
|
title: "Task: " + descr,
|
||||||
@ -93,7 +93,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
throw "no task specified";
|
throw "no task specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
var task = PVE.Utils.parse_task_upid(me.upid);
|
var task = Proxmox.Utils.parse_task_upid(me.upid);
|
||||||
|
|
||||||
var statgrid;
|
var statgrid;
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
starttime: {
|
starttime: {
|
||||||
header: gettext('Start Time'),
|
header: gettext('Start Time'),
|
||||||
required: true,
|
required: true,
|
||||||
renderer: PVE.Utils.render_timestamp
|
renderer: Proxmox.Utils.render_timestamp
|
||||||
},
|
},
|
||||||
upid: {
|
upid: {
|
||||||
header: gettext('Unique task ID')
|
header: gettext('Unique task ID')
|
||||||
@ -149,7 +149,7 @@ Ext.define('PVE.window.TaskViewer', {
|
|||||||
me.on('destroy', statstore.stopUpdate);
|
me.on('destroy', statstore.stopUpdate);
|
||||||
|
|
||||||
var stop_task = function() {
|
var stop_task = function() {
|
||||||
PVE.Utils.API2Request({
|
Proxmox.Utils.API2Request({
|
||||||
url: "/nodes/" + task.node + "/tasks/" + me.upid,
|
url: "/nodes/" + task.node + "/tasks/" + me.upid,
|
||||||
waitMsgTarget: me,
|
waitMsgTarget: me,
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
|
@ -12,12 +12,12 @@ Ext.define('PVE.window.Wizard', {
|
|||||||
|
|
||||||
form.getFields().each(function(field) {
|
form.getFields().each(function(field) {
|
||||||
if (!field.up('inputpanel') && (!dirtyOnly || field.isDirty())) {
|
if (!field.up('inputpanel') && (!dirtyOnly || field.isDirty())) {
|
||||||
PVE.Utils.assemble_field_data(values, field.getSubmitData());
|
Proxmox.Utils.assemble_field_data(values, field.getSubmitData());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Ext.Array.each(me.query('inputpanel'), function(panel) {
|
Ext.Array.each(me.query('inputpanel'), function(panel) {
|
||||||
PVE.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
|
Proxmox.Utils.assemble_field_data(values, panel.getValues(dirtyOnly));
|
||||||
});
|
});
|
||||||
|
|
||||||
return values;
|
return values;
|
||||||
@ -171,7 +171,7 @@ Ext.define('PVE.window.Wizard', {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (me.subject && !me.title) {
|
if (me.subject && !me.title) {
|
||||||
me.title = PVE.Utils.dialog_title(me.subject, true, false);
|
me.title = Proxmox.Utils.dialog_title(me.subject, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
|
@ -59,7 +59,7 @@ Ext.define('PVE.Datacenter', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
itemTpl: '{name}' +
|
itemTpl: '{name}' +
|
||||||
'<br><small>Online: {[PVE.Utils.format_boolean(values.online)]}</small>' +
|
'<br><small>Online: {[Proxmox.Utils.format_boolean(values.online)]}</small>' +
|
||||||
'<br><small>Support: {[PVE.Utils.render_support_level(values.level)]}</small>'
|
'<br><small>Support: {[PVE.Utils.render_support_level(values.level)]}</small>'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -100,7 +100,7 @@ Ext.define('PVE.Datacenter', {
|
|||||||
}
|
}
|
||||||
} else if (el.type === "cluster") {
|
} else if (el.type === "cluster") {
|
||||||
me.summary.nodes = el.nodes;
|
me.summary.nodes = el.nodes;
|
||||||
me.summary.quorate = PVE.Utils.format_boolean(el.quorate);
|
me.summary.quorate = Proxmox.Utils.format_boolean(el.quorate);
|
||||||
me.summary.cluster_name = el.name;
|
me.summary.cluster_name = el.name;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -11,7 +11,7 @@ Ext.define('PVE.NodeInfo', {
|
|||||||
'<tr><td>Version:</td><td>{pveversion}</td></tr>',
|
'<tr><td>Version:</td><td>{pveversion}</td></tr>',
|
||||||
'<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
|
'<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
|
||||||
'<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
|
'<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
|
||||||
'<tr><td>Uptime:</td><td>{[PVE.Utils.format_duration_long(values.uptime)]}</td></tr>',
|
'<tr><td>Uptime:</td><td>{[Proxmox.Utils.format_duration_long(values.uptime)]}</td></tr>',
|
||||||
'</table>',
|
'</table>',
|
||||||
{
|
{
|
||||||
meminfo: function(values) {
|
meminfo: function(values) {
|
||||||
@ -19,7 +19,7 @@ Ext.define('PVE.NodeInfo', {
|
|||||||
if (!d) {
|
if (!d) {
|
||||||
return '-';
|
return '-';
|
||||||
}
|
}
|
||||||
return PVE.Utils.format_size(d.used || 0) + " of " + PVE.Utils.format_size(d.total);
|
return Proxmox.Utils.format_size(d.used || 0) + " of " + Proxmox.Utils.format_size(d.total);
|
||||||
},
|
},
|
||||||
cpuinfo: function(values) {
|
cpuinfo: function(values) {
|
||||||
if (!values.cpuinfo) {
|
if (!values.cpuinfo) {
|
||||||
@ -84,7 +84,7 @@ Ext.define('PVE.NodeSummary', {
|
|||||||
if (!values.uptime) {
|
if (!values.uptime) {
|
||||||
return '-';
|
return '-';
|
||||||
}
|
}
|
||||||
return PVE.Utils.format_size(values.mem);
|
return Proxmox.Utils.format_size(values.mem);
|
||||||
},
|
},
|
||||||
cpuinfo: function(values) {
|
cpuinfo: function(values) {
|
||||||
if (!values.uptime) {
|
if (!values.uptime) {
|
||||||
|
@ -26,7 +26,7 @@ Ext.define('PVE.TaskListBase', {
|
|||||||
'<small>node: {node}<br /> Status: {[this.status(values)]}</small>',
|
'<small>node: {node}<br /> Status: {[this.status(values)]}</small>',
|
||||||
{
|
{
|
||||||
desc: function(values) {
|
desc: function(values) {
|
||||||
return PVE.Utils.format_task_description(values.type, values.id);
|
return Proxmox.Utils.format_task_description(values.type, values.id);
|
||||||
},
|
},
|
||||||
status: function(values) {
|
status: function(values) {
|
||||||
return Ext.String.ellipsis(values.status, 160);
|
return Ext.String.ellipsis(values.status, 160);
|
||||||
|
@ -92,7 +92,7 @@ Ext.define('PVE.TaskViewer', {
|
|||||||
kv.push({ key: gettext('Taskstatus'), value: d.status });
|
kv.push({ key: gettext('Taskstatus'), value: d.status });
|
||||||
kv.push({ key: gettext('Node'), value: d.node });
|
kv.push({ key: gettext('Node'), value: d.node });
|
||||||
kv.push({ key: gettext('User'), value: d.user });
|
kv.push({ key: gettext('User'), value: d.user });
|
||||||
kv.push({ key: gettext('Starttime'), value: PVE.Utils.render_timestamp(d.starttime) });
|
kv.push({ key: gettext('Starttime'), value: Proxmox.Utils.render_timestamp(d.starttime) });
|
||||||
|
|
||||||
me.setMasked(false);
|
me.setMasked(false);
|
||||||
statusCmp.setData(kv);
|
statusCmp.setData(kv);
|
||||||
@ -117,7 +117,7 @@ Ext.define('PVE.TaskViewer', {
|
|||||||
me.nodename = match[1];
|
me.nodename = match[1];
|
||||||
me.upid = match[2];
|
me.upid = match[2];
|
||||||
|
|
||||||
me.taskInfo = PVE.Utils.parse_task_upid(me.upid);
|
me.taskInfo = Proxmox.Utils.parse_task_upid(me.upid);
|
||||||
|
|
||||||
me.down('titlebar').setTitle(me.taskInfo.desc);
|
me.down('titlebar').setTitle(me.taskInfo.desc);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Sencha Touch related things
|
// Sencha Touch related things
|
||||||
|
|
||||||
PVE.Utils.toolkit = 'touch',
|
Proxmox.Utils.toolkit = 'touch',
|
||||||
|
|
||||||
Ext.Ajax.setDisableCaching(false);
|
Ext.Ajax.setDisableCaching(false);
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ Ext.define('PVE.VMSummaryBase', {
|
|||||||
'<tr><td>Status:</td><td>{[this.status(values)]}</td></tr>',
|
'<tr><td>Status:</td><td>{[this.status(values)]}</td></tr>',
|
||||||
'<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
|
'<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
|
||||||
'<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
|
'<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
|
||||||
'<tr><td>Uptime:</td><td>{[PVE.Utils.format_duration_long' +
|
'<tr><td>Uptime:</td><td>{[Proxmox.Utils.format_duration_long' +
|
||||||
'(values.uptime)]}</td></tr>',
|
'(values.uptime)]}</td></tr>',
|
||||||
'</table>',
|
'</table>',
|
||||||
{
|
{
|
||||||
@ -50,8 +50,8 @@ Ext.define('PVE.VMSummaryBase', {
|
|||||||
if (!Ext.isDefined(values.mem)) {
|
if (!Ext.isDefined(values.mem)) {
|
||||||
return '-';
|
return '-';
|
||||||
}
|
}
|
||||||
return PVE.Utils.format_size(values.mem || 0) + " of " +
|
return Proxmox.Utils.format_size(values.mem || 0) + " of " +
|
||||||
PVE.Utils.format_size(values.maxmem);
|
Proxmox.Utils.format_size(values.maxmem);
|
||||||
},
|
},
|
||||||
cpuinfo: function(values) {
|
cpuinfo: function(values) {
|
||||||
if (!Ext.isDefined(values.cpu)) {
|
if (!Ext.isDefined(values.cpu)) {
|
||||||
|
@ -118,7 +118,7 @@ Ext.define('PVE.Workspace', { statics: {
|
|||||||
},
|
},
|
||||||
|
|
||||||
showLogin: function() {
|
showLogin: function() {
|
||||||
PVE.Utils.authClear();
|
Proxmox.Utils.authClear();
|
||||||
PVE.UserName = null;
|
PVE.UserName = null;
|
||||||
PVE.Workspace.loginData = null;
|
PVE.Workspace.loginData = null;
|
||||||
|
|
||||||
@ -147,7 +147,7 @@ Ext.define('PVE.Workspace', { statics: {
|
|||||||
|
|
||||||
var comp;
|
var comp;
|
||||||
|
|
||||||
if (!PVE.Utils.authOK()) {
|
if (!Proxmox.Utils.authOK()) {
|
||||||
comp = Ext.create('PVE.Login', {});
|
comp = Ext.create('PVE.Login', {});
|
||||||
} else {
|
} else {
|
||||||
Ext.Array.each(PVE.Workspace.pages, function(p, index) {
|
Ext.Array.each(PVE.Workspace.pages, function(p, index) {
|
||||||
|
Loading…
Reference in New Issue
Block a user