'Accept': 'application/json'
};
-/*jslint confusion: true */
Ext.define('PVE.Utils', { utilities: {
// this singleton contains miscellaneous utilities
return fa.join(', ');
},
+ render_localtime: function(value) {
+ if (value === '__default__') {
+ return Proxmox.Utils.defaultText + ' (' + gettext('Enabled for Windows') + ')';
+ }
+ return Proxmox.Utils.format_boolean(value);
+ },
+
render_qga_features: function(value) {
if (!value) {
return Proxmox.Utils.defaultText + ' (' + Proxmox.Utils.disabledText + ')';
return msg;
},
- format_duration_short: function(ut) {
-
- if (ut < 60) {
- return ut.toFixed(1) + 's';
- }
-
- if (ut < 3600) {
- var mins = ut / 60;
- return mins.toFixed(1) + 'm';
- }
-
- if (ut < 86400) {
- var hours = ut / 3600;
- return hours.toFixed(1) + 'h';
- }
-
- var days = ut / 86400;
- return days.toFixed(1) + 'd';
- },
-
contentTypes: {
'images': gettext('Disk image'),
'backup': gettext('VZDump backup file'),
return format === 'pbs-ct' || volid.match(':backup/vzdump-(lxc|openvz)-');
},
+ authSchema: {
+ ad: {
+ name: gettext('Active Directory Server'),
+ ipanel: 'pveAuthADPanel',
+ syncipanel: 'pveAuthLDAPSyncPanel',
+ add: true,
+ },
+ ldap: {
+ name: gettext('LDAP Server'),
+ ipanel: 'pveAuthLDAPPanel',
+ syncipanel: 'pveAuthLDAPSyncPanel',
+ add: true,
+ },
+ pam: {
+ name: 'Linux PAM',
+ ipanel: 'pveAuthBasePanel',
+ add: false,
+ },
+ pve: {
+ name: 'Proxmox VE authentication server',
+ ipanel: 'pveAuthBasePanel',
+ add: false,
+ },
+ },
+
storageSchema: {
dir: {
name: Proxmox.Utils.directoryText,
},
pbs: {
name: 'Proxmox Backup Server',
- //ipanel: '', // TODO
- hideAdd: true,
- faIcon: 'database',
+ ipanel: 'PBSInputPanel',
+ faIcon: 'floppy-o',
},
drbd: {
name: 'DRBD',
hideAdd: true
},
vlan: {
- name: 'vlan',
+ name: 'VLAN',
ipanel: 'VlanInputPanel',
- faIcon: 'folder'
+ faIcon: 'th'
},
qinq: {
- name: 'qinq',
+ name: 'QinQ',
ipanel: 'QinQInputPanel',
- faIcon: 'folder'
+ faIcon: 'th'
},
vxlan: {
- name: 'vxlan',
+ name: 'VXLAN',
ipanel: 'VxlanInputPanel',
- faIcon: 'folder'
+ faIcon: 'th'
},
evpn: {
- name: 'evpn',
+ name: 'EVPN',
ipanel: 'EvpnInputPanel',
- faIcon: 'folder'
+ faIcon: 'th'
},
},
evpn: {
name: 'evpn',
ipanel: 'EvpnInputPanel',
- faIcon: 'folder'
+ faIcon: 'crosshairs'
},
},
format_sdnzone_type: function(value, md, record) {
var schema = PVE.Utils.sdnzoneSchema[value];
if (schema) {
- return schema.name.toUpperCase();
+ return schema.name;
}
return Proxmox.Utils.unknownText;
},
},
render_size: function(value, metaData, record, rowIndex, colIndex, store) {
- /*jslint confusion: true */
if (!Ext.isNumeric(value)) {
return '';
return Ext.Date.format(new Date(value * 1000), 'l d F Y H:i:s');
},
- render_duration: function(value) {
- if (value === undefined) {
- return '-';
- }
- return PVE.Utils.format_duration_short(value);
- },
-
calculate_mem_usage: function(data) {
if (!Ext.isNumeric(data.mem) ||
data.maxmem === 0 ||
function(m, addr, offset, original) { return addr; });
},
- openDefaultConsoleWindow: function(consoles, vmtype, vmid, nodename, vmname, cmd) {
+ openDefaultConsoleWindow: function(consoles, consoleType, vmid, nodename, vmname, cmd) {
var dv = PVE.Utils.defaultViewer(consoles);
- PVE.Utils.openConsoleWindow(dv, vmtype, vmid, nodename, vmname, cmd);
+ PVE.Utils.openConsoleWindow(dv, consoleType, vmid, nodename, vmname, cmd);
},
- openConsoleWindow: function(viewer, vmtype, vmid, nodename, vmname, cmd) {
- // kvm, lxc, shell, upgrade
-
- if (vmid == undefined && (vmtype === 'kvm' || vmtype === 'lxc')) {
+ openConsoleWindow: function(viewer, consoleType, vmid, nodename, vmname, cmd) {
+ if (vmid == undefined && (consoleType === 'kvm' || consoleType === 'lxc')) {
throw "missing vmid";
}
-
if (!nodename) {
throw "no nodename specified";
}
if (viewer === 'html5') {
- PVE.Utils.openVNCViewer(vmtype, vmid, nodename, vmname, cmd);
+ PVE.Utils.openVNCViewer(consoleType, vmid, nodename, vmname, cmd);
} else if (viewer === 'xtermjs') {
- Proxmox.Utils.openXtermJsViewer(vmtype, vmid, nodename, vmname, cmd);
+ Proxmox.Utils.openXtermJsViewer(consoleType, vmid, nodename, vmname, cmd);
} else if (viewer === 'vv') {
- var url;
- var params = { proxy: PVE.Utils.windowHostname() };
- if (vmtype === 'kvm') {
+ let url = '/nodes/' + nodename + '/spiceshell';
+ let params = {
+ proxy: PVE.Utils.windowHostname(),
+ };
+ if (consoleType === 'kvm') {
url = '/nodes/' + nodename + '/qemu/' + vmid.toString() + '/spiceproxy';
- PVE.Utils.openSpiceViewer(url, params);
- } else if (vmtype === 'lxc') {
+ } else if (consoleType === 'lxc') {
url = '/nodes/' + nodename + '/lxc/' + vmid.toString() + '/spiceproxy';
- PVE.Utils.openSpiceViewer(url, params);
- } else if (vmtype === 'shell') {
- url = '/nodes/' + nodename + '/spiceshell';
- PVE.Utils.openSpiceViewer(url, params);
- } else if (vmtype === 'upgrade') {
- url = '/nodes/' + nodename + '/spiceshell';
- params.upgrade = 1;
- PVE.Utils.openSpiceViewer(url, params);
- } else if (vmtype === 'cmd') {
- url = '/nodes/' + nodename + '/spiceshell';
+ } else if (consoleType === 'upgrade') {
+ params.cmd = 'upgrade';
+ } else if (consoleType === 'cmd') {
params.cmd = cmd;
- PVE.Utils.openSpiceViewer(url, params);
+ } else if (consoleType !== 'shell') {
+ throw `unknown spice viewer type '${consoleType}'`;
}
+ PVE.Utils.openSpiceViewer(url, params);
} else {
- throw "unknown viewer type";
+ throw `unknown viewer type '${viewer}'`;
}
},
if (link.fireEvent) {
link.fireEvent('onclick');
} else {
- var evt = document.createEvent("MouseEvents");
- evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
+ let evt = document.createEvent("MouseEvents");
+ evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
link.dispatchEvent(evt);
}
};
if (values[fieldname] === '' || values[fieldname] === default_val) {
if (!create) {
if (values['delete']) {
- values['delete'] += ',' + fieldname;
+ if (Ext.isArray(values['delete'])) {
+ values['delete'].push(fieldname);
+ } else {
+ values['delete'] += ',' + fieldname;
+ }
} else {
values['delete'] = fieldname;
}
}
},
+ acmedomain_count: 5,
+
+ add_domain_to_acme: function(acme, domain) {
+ if (acme.domains === undefined) {
+ acme.domains = [domain];
+ } else {
+ acme.domains.push(domain);
+ acme.domains = acme.domains.filter((value, index, self) => {
+ return self.indexOf(value) === index;
+ });
+ }
+ return acme;
+ },
+
+ remove_domain_from_acme: function(acme, domain) {
+ if (acme.domains !== undefined) {
+ acme.domains = acme.domains.filter((value, index, self) => {
+ return self.indexOf(value) === index && value !== domain;
+ });
+ }
+ return acme;
+ },
+
handleStoreErrorOrMask: function(me, store, regex, callback) {
me.mon(store, 'load', function (proxy, response, success, operation) {
}
});
},
+
+ cpu_vendor_map: {
+ 'default': 'QEMU',
+ 'AuthenticAMD': 'AMD',
+ 'GenuineIntel': 'Intel'
+ },
+
+ cpu_vendor_order: {
+ "AMD": 1,
+ "Intel": 2,
+ "QEMU": 3,
+ "Host": 4,
+ "_default_": 5, // includes custom models
+ },
},
singleton: true,