mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-14 12:44:56 +00:00
ui: eslint: enforce "no-extra-parens" rule
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
ef725143c6
commit
53e3ea8488
@ -308,7 +308,7 @@ Ext.define('PVE.Utils', {
|
|||||||
selected.forEach(function(item) {
|
selected.forEach(function(item) {
|
||||||
cur++;
|
cur++;
|
||||||
if (item > 2) {
|
if (item > 2) {
|
||||||
days.push(Ext.Date.dayNames[(cur+1)] + '-' + Ext.Date.dayNames[(cur+item)%7]);
|
days.push(Ext.Date.dayNames[cur+1] + '-' + Ext.Date.dayNames[(cur+item)%7]);
|
||||||
cur += item-1;
|
cur += item-1;
|
||||||
} else if (item == 2) {
|
} else if (item == 2) {
|
||||||
days.push(Ext.Date.dayNames[cur+1]);
|
days.push(Ext.Date.dayNames[cur+1]);
|
||||||
@ -376,7 +376,7 @@ Ext.define('PVE.Utils', {
|
|||||||
render_hotplug_features: function(value) {
|
render_hotplug_features: function(value) {
|
||||||
var fa = [];
|
var fa = [];
|
||||||
|
|
||||||
if (!value || (value === '0')) {
|
if (!value || value === '0') {
|
||||||
return gettext('Disabled');
|
return gettext('Disabled');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -445,7 +445,7 @@ Ext.define('PVE.Utils', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
render_qemu_machine: function(value) {
|
render_qemu_machine: function(value) {
|
||||||
return value || (Proxmox.Utils.defaultText + ' (i440fx)');
|
return value || Proxmox.Utils.defaultText + ' (i440fx)';
|
||||||
},
|
},
|
||||||
|
|
||||||
render_qemu_bios: function(value) {
|
render_qemu_bios: function(value) {
|
||||||
@ -468,7 +468,7 @@ Ext.define('PVE.Utils', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
render_as_property_string: function(value) {
|
render_as_property_string: function(value) {
|
||||||
return (!value) ? Proxmox.Utils.defaultText
|
return !value ? Proxmox.Utils.defaultText
|
||||||
: PVE.Parser.printPropertyString(value);
|
: PVE.Parser.printPropertyString(value);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -879,9 +879,9 @@ Ext.define('PVE.Utils', {
|
|||||||
|
|
||||||
format_storage_type: function(value, md, record) {
|
format_storage_type: function(value, md, record) {
|
||||||
if (value === 'rbd') {
|
if (value === 'rbd') {
|
||||||
value = (!record || record.get('monhost') ? 'rbd' : 'pveceph');
|
value = !record || record.get('monhost') ? 'rbd' : 'pveceph';
|
||||||
} else if (value === 'cephfs') {
|
} else if (value === 'cephfs') {
|
||||||
value = (!record || record.get('monhost') ? 'cephfs' : 'pvecephfs');
|
value = !record || record.get('monhost') ? 'cephfs' : 'pvecephfs';
|
||||||
}
|
}
|
||||||
|
|
||||||
var schema = PVE.Utils.storageSchema[value];
|
var schema = PVE.Utils.storageSchema[value];
|
||||||
@ -933,7 +933,7 @@ Ext.define('PVE.Utils', {
|
|||||||
|
|
||||||
var maxcpu = record.data.maxcpu || 1;
|
var maxcpu = record.data.maxcpu || 1;
|
||||||
|
|
||||||
if (!Ext.isNumeric(maxcpu) && (maxcpu >= 1)) {
|
if (!Ext.isNumeric(maxcpu) && maxcpu >= 1) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -969,7 +969,7 @@ Ext.define('PVE.Utils', {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (data.mem / data.maxmem);
|
return data.mem / data.maxmem;
|
||||||
},
|
},
|
||||||
|
|
||||||
render_mem_usage_percent: function(value, metaData, record, rowIndex, colIndex, store) {
|
render_mem_usage_percent: function(value, metaData, record, rowIndex, colIndex, store) {
|
||||||
@ -986,7 +986,7 @@ Ext.define('PVE.Utils', {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return ((mem*100)/maxmem).toFixed(1) + " %";
|
return (mem*100/maxmem).toFixed(1) + " %";
|
||||||
}
|
}
|
||||||
return (value*100).toFixed(1) + " %";
|
return (value*100).toFixed(1) + " %";
|
||||||
},
|
},
|
||||||
@ -1009,12 +1009,12 @@ Ext.define('PVE.Utils', {
|
|||||||
calculate_disk_usage: function(data) {
|
calculate_disk_usage: function(data) {
|
||||||
if (!Ext.isNumeric(data.disk) ||
|
if (!Ext.isNumeric(data.disk) ||
|
||||||
data.type === 'qemu' ||
|
data.type === 'qemu' ||
|
||||||
(data.type === 'lxc' && data.uptime === 0) ||
|
data.type === 'lxc' && data.uptime === 0 ||
|
||||||
data.maxdisk === 0) {
|
data.maxdisk === 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (data.disk / data.maxdisk);
|
return data.disk / data.maxdisk;
|
||||||
},
|
},
|
||||||
|
|
||||||
render_disk_usage_percent: function(value, metaData, record, rowIndex, colIndex, store) {
|
render_disk_usage_percent: function(value, metaData, record, rowIndex, colIndex, store) {
|
||||||
@ -1033,7 +1033,7 @@ Ext.define('PVE.Utils', {
|
|||||||
if (!Ext.isNumeric(disk) ||
|
if (!Ext.isNumeric(disk) ||
|
||||||
type === 'qemu' ||
|
type === 'qemu' ||
|
||||||
maxdisk === 0 ||
|
maxdisk === 0 ||
|
||||||
(type === 'lxc' && record.data.uptime === 0)) {
|
type === 'lxc' && record.data.uptime === 0) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1211,9 +1211,9 @@ Ext.define('PVE.Utils', {
|
|||||||
}
|
}
|
||||||
var dv = PVE.VersionInfo.console || 'xtermjs';
|
var dv = PVE.VersionInfo.console || 'xtermjs';
|
||||||
if (dv === 'vv' && !allowSpice) {
|
if (dv === 'vv' && !allowSpice) {
|
||||||
dv = (allowXtermjs) ? 'xtermjs' : 'html5';
|
dv = allowXtermjs ? 'xtermjs' : 'html5';
|
||||||
} else if (dv === 'xtermjs' && !allowXtermjs) {
|
} else if (dv === 'xtermjs' && !allowXtermjs) {
|
||||||
dv = (allowSpice) ? 'vv' : 'html5';
|
dv = allowSpice ? 'vv' : 'html5';
|
||||||
}
|
}
|
||||||
|
|
||||||
return dv;
|
return dv;
|
||||||
|
@ -231,7 +231,7 @@ Ext.define('PVE.StdWorkspace', {
|
|||||||
var comp = {
|
var comp = {
|
||||||
xtype: tlckup[n.data.type || 'root'] ||
|
xtype: tlckup[n.data.type || 'root'] ||
|
||||||
'pvePanelConfig',
|
'pvePanelConfig',
|
||||||
showSearch: (n.data.id === 'root') ||
|
showSearch: n.data.id === 'root' ||
|
||||||
Ext.isDefined(n.data.groupbyid),
|
Ext.isDefined(n.data.groupbyid),
|
||||||
pveSelNode: n,
|
pveSelNode: n,
|
||||||
workspace: me,
|
workspace: me,
|
||||||
@ -455,7 +455,7 @@ Ext.define('PVE.StdWorkspace', {
|
|||||||
listeners: {
|
listeners: {
|
||||||
resize: function(panel, width, height) {
|
resize: function(panel, width, height) {
|
||||||
var viewHeight = me.getSize().height;
|
var viewHeight = me.getSize().height;
|
||||||
if (height > (viewHeight - 150)) {
|
if (height > viewHeight - 150) {
|
||||||
panel.setHeight(viewHeight - 150);
|
panel.setHeight(viewHeight - 150);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -25,7 +25,7 @@ Ext.define('PVE.button.Split', {
|
|||||||
var rec, msg;
|
var rec, msg;
|
||||||
if (me.selModel) {
|
if (me.selModel) {
|
||||||
rec = me.selModel.getSelection()[0];
|
rec = me.selModel.getSelection()[0];
|
||||||
if (!rec || (me.enableFn(rec) === false)) {
|
if (!rec || me.enableFn(rec) === false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -72,7 +72,7 @@ Ext.define('PVE.button.Split', {
|
|||||||
if (item.selModel) {
|
if (item.selModel) {
|
||||||
me.mon(item.selModel, "selectionchange", function() {
|
me.mon(item.selModel, "selectionchange", function() {
|
||||||
var rec = item.selModel.getSelection()[0];
|
var rec = item.selModel.getSelection()[0];
|
||||||
if (!rec || (item.enableFn(rec) === false)) {
|
if (!rec || item.enableFn(rec) === false) {
|
||||||
item.setDisabled(true);
|
item.setDisabled(true);
|
||||||
} else {
|
} else {
|
||||||
item.setDisabled(false);
|
item.setDisabled(false);
|
||||||
@ -87,7 +87,7 @@ Ext.define('PVE.button.Split', {
|
|||||||
if (me.selModel) {
|
if (me.selModel) {
|
||||||
me.mon(me.selModel, "selectionchange", function() {
|
me.mon(me.selModel, "selectionchange", function() {
|
||||||
var rec = me.selModel.getSelection()[0];
|
var rec = me.selModel.getSelection()[0];
|
||||||
if (!rec || (me.enableFn(rec) === false)) {
|
if (!rec || me.enableFn(rec) === false) {
|
||||||
me.setDisabled(true);
|
me.setDisabled(true);
|
||||||
} else {
|
} else {
|
||||||
me.setDisabled(false);
|
me.setDisabled(false);
|
||||||
|
@ -91,7 +91,7 @@ Ext.define('PVE.NodeCephFSPanel', {
|
|||||||
},
|
},
|
||||||
formulas: {
|
formulas: {
|
||||||
canCreateFS: function(get) {
|
canCreateFS: function(get) {
|
||||||
return (!get('cephfsConfigured') && get('mdsCount') > 0);
|
return !get('cephfsConfigured') && get('mdsCount') > 0;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -460,7 +460,7 @@ Ext.define('PVE.node.CephOsdTree', {
|
|||||||
let rec = selection[0];
|
let rec = selection[0];
|
||||||
let vm = this.getViewModel();
|
let vm = this.getViewModel();
|
||||||
|
|
||||||
let isOsd = rec.data.host && (rec.data.type === 'osd') && (rec.data.id >= 0);
|
let isOsd = rec.data.host && rec.data.type === 'osd' && rec.data.id >= 0;
|
||||||
|
|
||||||
vm.set('isOsd', isOsd);
|
vm.set('isOsd', isOsd);
|
||||||
vm.set('downOsd', isOsd && rec.data.status === 'down');
|
vm.set('downOsd', isOsd && rec.data.status === 'down');
|
||||||
|
@ -65,7 +65,7 @@ Ext.define('PVE.ceph.Services', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
var i;
|
var i;
|
||||||
var quorummap = (status && status.quorum_names) ? status.quorum_names : [];
|
var quorummap = status && status.quorum_names ? status.quorum_names : [];
|
||||||
var monmessages = {};
|
var monmessages = {};
|
||||||
var mgrmessages = {};
|
var mgrmessages = {};
|
||||||
var mdsmessages = {};
|
var mdsmessages = {};
|
||||||
|
@ -335,7 +335,7 @@ Ext.define('PVE.node.CephStatus', {
|
|||||||
if (pgmap.recovering_objects_per_sec !== undefined || unhealthy > 0) {
|
if (pgmap.recovering_objects_per_sec !== undefined || unhealthy > 0) {
|
||||||
let total = pgmap.misplaced_total || pgmap.unfound_total || pgmap.degraded_total || 0;
|
let total = pgmap.misplaced_total || pgmap.unfound_total || pgmap.degraded_total || 0;
|
||||||
if (total === 0) return;
|
if (total === 0) return;
|
||||||
let recovered = (total - unhealthy) || 0;
|
let recovered = total - unhealthy || 0;
|
||||||
let speed = pgmap.recovering_bytes_per_sec || 0;
|
let speed = pgmap.recovering_bytes_per_sec || 0;
|
||||||
let speedTxt = PVE.Utils.render_bandwidth(speed);
|
let speedTxt = PVE.Utils.render_bandwidth(speed);
|
||||||
let obj_per_sec = speed / (4*1024*1024); // 4MiB per Object
|
let obj_per_sec = speed / (4*1024*1024); // 4MiB per Object
|
||||||
@ -392,7 +392,7 @@ Ext.define('PVE.node.CephStatus', {
|
|||||||
var regex = new RegExp("not (installed|initialized)", "i");
|
var regex = new RegExp("not (installed|initialized)", "i");
|
||||||
PVE.Utils.handleStoreErrorOrMask(me, me.store, regex, function(me, error) {
|
PVE.Utils.handleStoreErrorOrMask(me, me.store, regex, function(me, error) {
|
||||||
me.store.stopUpdate();
|
me.store.stopUpdate();
|
||||||
PVE.Utils.showCephInstallOrMask(me, error.statusText, (nodename || 'localhost'),
|
PVE.Utils.showCephInstallOrMask(me, error.statusText, nodename || 'localhost',
|
||||||
function(win) {
|
function(win) {
|
||||||
me.mon(win, 'cephInstallWindowClosed', function() {
|
me.mon(win, 'cephInstallWindowClosed', function() {
|
||||||
me.store.startUpdate();
|
me.store.startUpdate();
|
||||||
|
@ -216,7 +216,7 @@ Ext.define('PVE.ceph.StatusDetail', {
|
|||||||
var pgmap = status.pgmap || {};
|
var pgmap = status.pgmap || {};
|
||||||
var pgs_by_state = pgmap.pgs_by_state || [];
|
var pgs_by_state = pgmap.pgs_by_state || [];
|
||||||
pgs_by_state.sort(function(a, b) {
|
pgs_by_state.sort(function(a, b) {
|
||||||
return (a.state_name < b.state_name)?-1:(a.state_name === b.state_name)?0:1;
|
return a.state_name < b.state_name?-1:a.state_name === b.state_name?0:1;
|
||||||
});
|
});
|
||||||
|
|
||||||
me.statecategories.forEach(function(cat) {
|
me.statecategories.forEach(function(cat) {
|
||||||
|
@ -5,7 +5,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
findVMID: function(vmid) {
|
findVMID: function(vmid) {
|
||||||
var me = this, i;
|
var me = this, i;
|
||||||
|
|
||||||
return (me.findExact('vmid', parseInt(vmid, 10)) >= 0);
|
return me.findExact('vmid', parseInt(vmid, 10)) >= 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
// returns the cached data from all nodes
|
// returns the cached data from all nodes
|
||||||
@ -81,7 +81,7 @@ Ext.define('PVE.data.ResourceStore', {
|
|||||||
hidden: true,
|
hidden: true,
|
||||||
convert: function(value, record) {
|
convert: function(value, record) {
|
||||||
var info = record.data;
|
var info = record.data;
|
||||||
return (Ext.isNumeric(info.uptime) && (info.uptime > 0));
|
return Ext.isNumeric(info.uptime) && info.uptime > 0;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
text: {
|
text: {
|
||||||
|
@ -165,7 +165,7 @@ Ext.define('PVE.dc.BackupEdit', {
|
|||||||
var mode = selModeField.getValue();
|
var mode = selModeField.getValue();
|
||||||
store.clearFilter();
|
store.clearFilter();
|
||||||
store.filterBy(function(rec) {
|
store.filterBy(function(rec) {
|
||||||
return (!value || rec.get('node') === value);
|
return !value || rec.get('node') === value;
|
||||||
});
|
});
|
||||||
if (mode === 'all') {
|
if (mode === 'all') {
|
||||||
sm.selectAll(true);
|
sm.selectAll(true);
|
||||||
@ -330,7 +330,7 @@ Ext.define('PVE.dc.BackupEdit', {
|
|||||||
var node = nodesel.getValue();
|
var node = nodesel.getValue();
|
||||||
store.clearFilter();
|
store.clearFilter();
|
||||||
store.filterBy(function(rec) {
|
store.filterBy(function(rec) {
|
||||||
return (!node || node.length === 0 || rec.get('node') === node);
|
return !node || node.length === 0 || rec.get('node') === node;
|
||||||
});
|
});
|
||||||
var list = vmidField.getValue();
|
var list = vmidField.getValue();
|
||||||
var mode = selModeField.getValue();
|
var mode = selModeField.getValue();
|
||||||
|
@ -262,7 +262,7 @@ Ext.define('PVE.form.CorosyncLinkSelector', {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (val === undefined || (val instanceof String && val.length === 0)) {
|
if (val === undefined || val instanceof String && val.length === 0) {
|
||||||
// let this be caught by allowBlank, if at all
|
// let this be caught by allowBlank, if at all
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ Ext.define('PVE.dc.Health', {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numNodes !== (nodes.online + nodes.offline)) {
|
if (numNodes !== nodes.online + nodes.offline) {
|
||||||
nodes.offline = numNodes - nodes.online;
|
nodes.offline = numNodes - nodes.online;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ Ext.define('PVE.dc.NodeView', {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'online',
|
dataIndex: 'online',
|
||||||
renderer: function(value) {
|
renderer: function(value) {
|
||||||
var cls = (value)?'good':'critical';
|
var cls = value?'good':'critical';
|
||||||
return '<i class="fa ' + PVE.Utils.get_health_icon(cls) + '"><i/>';
|
return '<i class="fa ' + PVE.Utils.get_health_icon(cls) + '"><i/>';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -12,7 +12,7 @@ Ext.define('PVE.dc.OptionView', {
|
|||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
me.rows = me.rows || {};
|
me.rows = me.rows || {};
|
||||||
|
|
||||||
let canEdit = (!opts.hasOwnProperty('caps') || opts.caps);
|
let canEdit = !opts.hasOwnProperty('caps') || opts.caps;
|
||||||
me.rows[name] = {
|
me.rows[name] = {
|
||||||
required: true,
|
required: true,
|
||||||
defaultValue: opts.defaultValue,
|
defaultValue: opts.defaultValue,
|
||||||
|
@ -15,7 +15,7 @@ Ext.define('PVE.SecurityGroupEdit', {
|
|||||||
initComponent: function() {
|
initComponent: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.isCreate = (me.group_name === undefined);
|
me.isCreate = me.group_name === undefined;
|
||||||
|
|
||||||
var subject;
|
var subject;
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ Ext.define('PVE.SecurityGroupList', {
|
|||||||
selModel: sm,
|
selModel: sm,
|
||||||
baseurl: me.base_url + '/',
|
baseurl: me.base_url + '/',
|
||||||
enableFn: function(rec) {
|
enableFn: function(rec) {
|
||||||
return (rec && me.base_url);
|
return rec && me.base_url;
|
||||||
},
|
},
|
||||||
callback: function() {
|
callback: function() {
|
||||||
reload();
|
reload();
|
||||||
|
@ -157,7 +157,7 @@ Ext.define('PVE.dc.Summary', {
|
|||||||
var item = results[i];
|
var item = results[i];
|
||||||
switch (item.data.type) {
|
switch (item.data.type) {
|
||||||
case 'node':
|
case 'node':
|
||||||
cpu += (item.data.cpu * item.data.maxcpu);
|
cpu += item.data.cpu * item.data.maxcpu;
|
||||||
maxcpu += item.data.maxcpu || 0;
|
maxcpu += item.data.maxcpu || 0;
|
||||||
memory += item.data.mem || 0;
|
memory += item.data.mem || 0;
|
||||||
maxmem += item.data.maxmem || 0;
|
maxmem += item.data.maxmem || 0;
|
||||||
@ -183,7 +183,7 @@ Ext.define('PVE.dc.Summary', {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!countedStorages[item.data.storage] ||
|
if (!countedStorages[item.data.storage] ||
|
||||||
(!item.data.shared && !countedStorages[item.data.id])) {
|
!item.data.shared && !countedStorages[item.data.id]) {
|
||||||
used += item.data.disk;
|
used += item.data.disk;
|
||||||
total += item.data.maxdisk;
|
total += item.data.maxdisk;
|
||||||
|
|
||||||
@ -207,13 +207,13 @@ Ext.define('PVE.dc.Summary', {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var text = Ext.String.format(gettext('of {0} CPU(s)'), maxcpu);
|
var text = Ext.String.format(gettext('of {0} CPU(s)'), maxcpu);
|
||||||
cpustat.updateValue((cpu/maxcpu), text);
|
cpustat.updateValue(cpu/maxcpu, text);
|
||||||
|
|
||||||
text = Ext.String.format(gettext('{0} of {1}'), PVE.Utils.render_size(memory), PVE.Utils.render_size(maxmem));
|
text = Ext.String.format(gettext('{0} of {1}'), PVE.Utils.render_size(memory), PVE.Utils.render_size(maxmem));
|
||||||
memorystat.updateValue((memory/maxmem), text);
|
memorystat.updateValue(memory/maxmem, text);
|
||||||
|
|
||||||
text = Ext.String.format(gettext('{0} of {1}'), PVE.Utils.render_size(used), PVE.Utils.render_size(total));
|
text = Ext.String.format(gettext('{0} of {1}'), PVE.Utils.render_size(used), PVE.Utils.render_size(total));
|
||||||
storagestat.updateValue((used/total), text);
|
storagestat.updateValue(used/total, text);
|
||||||
|
|
||||||
gueststatus.updateValues(qemu, lxc, error);
|
gueststatus.updateValues(qemu, lxc, error);
|
||||||
|
|
||||||
|
@ -112,15 +112,15 @@ Ext.define('PVE.window.TFAEdit', {
|
|||||||
return get('secret').length > 0 && get('canSetupTOTP');
|
return get('secret').length > 0 && get('canSetupTOTP');
|
||||||
},
|
},
|
||||||
canDeleteTFA: function(get) {
|
canDeleteTFA: function(get) {
|
||||||
return (get('tfa_type') !== null && !get('tfa_required'));
|
return get('tfa_type') !== null && !get('tfa_required');
|
||||||
},
|
},
|
||||||
canSetupTOTP: function(get) {
|
canSetupTOTP: function(get) {
|
||||||
var tfa = get('tfa_type');
|
var tfa = get('tfa_type');
|
||||||
return (tfa === null || tfa === 'totp' || tfa === 1);
|
return tfa === null || tfa === 'totp' || tfa === 1;
|
||||||
},
|
},
|
||||||
canSetupU2F: function(get) {
|
canSetupU2F: function(get) {
|
||||||
var tfa = get('tfa_type');
|
var tfa = get('tfa_type');
|
||||||
return (get('u2f_available') && (tfa === null || tfa === 'u2f' || tfa === 1));
|
return get('u2f_available') && (tfa === null || tfa === 'u2f' || tfa === 1);
|
||||||
},
|
},
|
||||||
secretEmpty: function(get) {
|
secretEmpty: function(get) {
|
||||||
return get('secret').length === 0;
|
return get('secret').length === 0;
|
||||||
|
@ -42,7 +42,7 @@ Ext.define('PVE.form.BridgeSelector', {
|
|||||||
setNodename: function(nodename) {
|
setNodename: function(nodename) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!nodename || (me.nodename === nodename)) {
|
if (!nodename || me.nodename === nodename) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ Ext.define('PVE.form.DiskStorageSelector', {
|
|||||||
if (rec.data.format) {
|
if (rec.data.format) {
|
||||||
var format = rec.data.format[0]; // 0 is the formats, 1 the default in the backend
|
var format = rec.data.format[0]; // 0 is the formats, 1 the default in the backend
|
||||||
delete format.subvol; // we never need subvol in the gui
|
delete format.subvol; // we never need subvol in the gui
|
||||||
selectformat = (Ext.Object.getSize(format) > 1);
|
selectformat = Ext.Object.getSize(format) > 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var select = !!rec.data.select_existing && !me.hideSelection;
|
var select = !!rec.data.select_existing && !me.hideSelection;
|
||||||
|
@ -19,12 +19,12 @@ Ext.define('PVE.form.FileSelector', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
var change = false;
|
var change = false;
|
||||||
if (storage && (me.storage !== storage)) {
|
if (storage && me.storage !== storage) {
|
||||||
me.storage = storage;
|
me.storage = storage;
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodename && (me.nodename !== nodename)) {
|
if (nodename && me.nodename !== nodename) {
|
||||||
me.nodename = nodename;
|
me.nodename = nodename;
|
||||||
change = true;
|
change = true;
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,7 @@ Ext.define('PVE.form.GlobalSearchField', {
|
|||||||
}
|
}
|
||||||
// give the row the 'relevance' value
|
// give the row the 'relevance' value
|
||||||
item.data.relevance = match;
|
item.data.relevance = match;
|
||||||
return (match > 0);
|
return match > 0;
|
||||||
},
|
},
|
||||||
|
|
||||||
updateFilter: function(field, newValue, oldValue) {
|
updateFilter: function(field, newValue, oldValue) {
|
||||||
|
@ -45,7 +45,7 @@ Ext.define('PVE.form.MDevSelector', {
|
|||||||
setPciID: function(pciid, force) {
|
setPciID: function(pciid, force) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!force && (!pciid || (me.pciid === pciid))) {
|
if (!force && (!pciid || me.pciid === pciid)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ Ext.define('PVE.form.MDevSelector', {
|
|||||||
setNodename: function(nodename) {
|
setNodename: function(nodename) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!nodename || (me.nodename === nodename)) {
|
if (!nodename || me.nodename === nodename) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,10 +36,10 @@ Ext.define('PVE.form.MemoryField', {
|
|||||||
var i, j;
|
var i, j;
|
||||||
for (j = 0; j < 9; j++) {
|
for (j = 0; j < 9; j++) {
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++) {
|
||||||
if ((value >= current_size) && (value < (current_size + dimm_size))) {
|
if (value >= current_size && value < current_size + dimm_size) {
|
||||||
value_start = current_size;
|
value_start = current_size;
|
||||||
value_up = current_size + dimm_size;
|
value_up = current_size + dimm_size;
|
||||||
value_down = current_size - ((i === 0) ? prev_dimm_size : dimm_size);
|
value_down = current_size - (i === 0 ? prev_dimm_size : dimm_size);
|
||||||
}
|
}
|
||||||
current_size += dimm_size;
|
current_size += dimm_size;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ Ext.define('PVE.form.NodeSelector', {
|
|||||||
|
|
||||||
validator: function(value) {
|
validator: function(value) {
|
||||||
var me = this;
|
var me = this;
|
||||||
if (!me.onlineValidator || (me.allowBlank && !value)) {
|
if (!me.onlineValidator || me.allowBlank && !value) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ Ext.define('PVE.form.PCISelector', {
|
|||||||
setNodename: function(nodename) {
|
setNodename: function(nodename) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!nodename || (me.nodename === nodename)) {
|
if (!nodename || me.nodename === nodename) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ Ext.define('PVE.form.StorageSelector', {
|
|||||||
setTargetNode: function(targetNode) {
|
setTargetNode: function(targetNode) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!targetNode || (me.targetNode === targetNode)) {
|
if (!targetNode || me.targetNode === targetNode) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ Ext.define('PVE.form.StorageSelector', {
|
|||||||
setNodename: function(nodename) {
|
setNodename: function(nodename) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!nodename || (me.nodename === nodename)) {
|
if (!nodename || me.nodename === nodename) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ Ext.define('PVE.form.USBSelector', {
|
|||||||
width: 520,
|
width: 520,
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
header: (me.type === 'device')?gettext('Device'):gettext('Port'),
|
header: me.type === 'device'?gettext('Device'):gettext('Port'),
|
||||||
sortable: true,
|
sortable: true,
|
||||||
dataIndex: 'usbid',
|
dataIndex: 'usbid',
|
||||||
width: 80,
|
width: 80,
|
||||||
|
@ -73,7 +73,7 @@ Ext.define('PVE.form.ViewSelector', {
|
|||||||
|
|
||||||
applyState: function(state, doSelect) {
|
applyState: function(state, doSelect) {
|
||||||
var view = me.getValue();
|
var view = me.getValue();
|
||||||
if (state && state.value && (view != state.value)) {
|
if (state && state.value && view != state.value) {
|
||||||
var record = store.findRecord('key', state.value, 0, false, true, true);
|
var record = store.findRecord('key', state.value, 0, false, true, true);
|
||||||
if (record) {
|
if (record) {
|
||||||
me.setValue(state.value, true);
|
me.setValue(state.value, true);
|
||||||
|
@ -10,7 +10,7 @@ Ext.define('PVE.FirewallAliasEdit', {
|
|||||||
initComponent: function() {
|
initComponent: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.isCreate = (me.alias_name === undefined);
|
me.isCreate = me.alias_name === undefined;
|
||||||
|
|
||||||
if (me.isCreate) {
|
if (me.isCreate) {
|
||||||
me.url = '/api2/extjs' + me.base_url;
|
me.url = '/api2/extjs' + me.base_url;
|
||||||
|
@ -245,7 +245,7 @@ Ext.define('PVE.FirewallRuleEdit', {
|
|||||||
throw "no list_refs_url specified";
|
throw "no list_refs_url specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
me.isCreate = (me.rule_pos === undefined);
|
me.isCreate = me.rule_pos === undefined;
|
||||||
|
|
||||||
if (me.isCreate) {
|
if (me.isCreate) {
|
||||||
me.url = '/api2/extjs' + me.base_url;
|
me.url = '/api2/extjs' + me.base_url;
|
||||||
@ -301,7 +301,7 @@ Ext.define('PVE.FirewallGroupRuleEdit', {
|
|||||||
initComponent: function() {
|
initComponent: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.isCreate = (me.rule_pos === undefined);
|
me.isCreate = me.rule_pos === undefined;
|
||||||
|
|
||||||
if (me.isCreate) {
|
if (me.isCreate) {
|
||||||
me.url = '/api2/extjs' + me.base_url;
|
me.url = '/api2/extjs' + me.base_url;
|
||||||
@ -568,7 +568,7 @@ Ext.define('PVE.FirewallRules', {
|
|||||||
text: gettext('Copy'),
|
text: gettext('Copy'),
|
||||||
selModel: sm,
|
selModel: sm,
|
||||||
enableFn: function(rec) {
|
enableFn: function(rec) {
|
||||||
return (rec.data.type === 'in' || rec.data.type === 'out');
|
return rec.data.type === 'in' || rec.data.type === 'out';
|
||||||
},
|
},
|
||||||
disabled: true,
|
disabled: true,
|
||||||
handler: run_copy_editor,
|
handler: run_copy_editor,
|
||||||
|
@ -30,7 +30,7 @@ Ext.define('PVE.pool.AddVM', {
|
|||||||
],
|
],
|
||||||
filters: [
|
filters: [
|
||||||
function(item) {
|
function(item) {
|
||||||
return ((item.data.type === 'lxc' || item.data.type === 'qemu') && item.data.pool === '');
|
return (item.data.type === 'lxc' || item.data.type === 'qemu') && item.data.pool === '';
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
@ -17,7 +17,7 @@ Ext.define('PVE.window.ReplicaEdit', {
|
|||||||
var items = [];
|
var items = [];
|
||||||
|
|
||||||
items.push({
|
items.push({
|
||||||
xtype: (me.isCreate && !vmid)?'pveGuestIDSelector':'displayfield',
|
xtype: me.isCreate && !vmid?'pveGuestIDSelector':'displayfield',
|
||||||
name: 'guest',
|
name: 'guest',
|
||||||
fieldLabel: 'CT/VM ID',
|
fieldLabel: 'CT/VM ID',
|
||||||
value: vmid || '',
|
value: vmid || '',
|
||||||
@ -430,7 +430,7 @@ Ext.define('PVE.grid.ReplicaView', {
|
|||||||
|
|
||||||
me.rstore = Ext.create('Proxmox.data.UpdateStore', {
|
me.rstore = Ext.create('Proxmox.data.UpdateStore', {
|
||||||
storeid: 'pve-replica-' + me.nodename + me.vmid,
|
storeid: 'pve-replica-' + me.nodename + me.vmid,
|
||||||
model: (mode === 'dc')? 'pve-replication' : 'pve-replication-state',
|
model: mode === 'dc'? 'pve-replication' : 'pve-replication-state',
|
||||||
interval: 3000,
|
interval: 3000,
|
||||||
proxy: {
|
proxy: {
|
||||||
type: 'proxmox',
|
type: 'proxmox',
|
||||||
|
@ -104,7 +104,7 @@ Ext.define('PVE.ha.GroupInputPanel', {
|
|||||||
},
|
},
|
||||||
isValid: function() {
|
isValid: function() {
|
||||||
var value = nodefield.getValue();
|
var value = nodefield.getValue();
|
||||||
return (value && 0 !== value.length);
|
return value && 0 !== value.length;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var vmidStore = (me.vmid) ? {} : {
|
var vmidStore = me.vmid ? {} : {
|
||||||
model: 'PVEResources',
|
model: 'PVEResources',
|
||||||
autoLoad: true,
|
autoLoad: true,
|
||||||
sorters: 'vmid',
|
sorters: 'vmid',
|
||||||
@ -80,7 +80,7 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
|
|||||||
xtype: me.vmid ? 'displayfield' : 'vmComboSelector',
|
xtype: me.vmid ? 'displayfield' : 'vmComboSelector',
|
||||||
submitValue: me.isCreate,
|
submitValue: me.isCreate,
|
||||||
name: 'vmid',
|
name: 'vmid',
|
||||||
fieldLabel: (me.vmid && me.guestType === 'ct') ? 'CT' : 'VM',
|
fieldLabel: me.vmid && me.guestType === 'ct' ? 'CT' : 'VM',
|
||||||
value: me.vmid,
|
value: me.vmid,
|
||||||
store: vmidStore,
|
store: vmidStore,
|
||||||
validateExists: true,
|
validateExists: true,
|
||||||
|
@ -14,7 +14,7 @@ Ext.define('PVE.ha.Status', {
|
|||||||
me.rstore = Ext.create('Proxmox.data.ObjectStore', {
|
me.rstore = Ext.create('Proxmox.data.ObjectStore', {
|
||||||
interval: me.interval,
|
interval: me.interval,
|
||||||
model: 'pve-ha-status',
|
model: 'pve-ha-status',
|
||||||
storeid: 'pve-store-' + (++Ext.idSeed),
|
storeid: 'pve-store-' + ++Ext.idSeed,
|
||||||
groupField: 'type',
|
groupField: 'type',
|
||||||
proxy: {
|
proxy: {
|
||||||
type: 'proxmox',
|
type: 'proxmox',
|
||||||
|
@ -27,7 +27,7 @@ Ext.define('PVE.ha.StatusView', {
|
|||||||
sorterFn: function(rec1, rec2) {
|
sorterFn: function(rec1, rec2) {
|
||||||
var p1 = me.sortPriority[rec1.data.type];
|
var p1 = me.sortPriority[rec1.data.type];
|
||||||
var p2 = me.sortPriority[rec2.data.type];
|
var p2 = me.sortPriority[rec2.data.type];
|
||||||
return (p1 !== p2) ? ((p1 > p2) ? 1 : -1) : 0;
|
return p1 !== p2 ? p1 > p2 ? 1 : -1 : 0;
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
filters: {
|
filters: {
|
||||||
|
@ -141,7 +141,7 @@ Ext.define('PVE.lxc.Config', {
|
|||||||
Ext.create('PVE.ha.VMResourceEdit', {
|
Ext.create('PVE.ha.VMResourceEdit', {
|
||||||
vmid: vmid,
|
vmid: vmid,
|
||||||
guestType: 'ct',
|
guestType: 'ct',
|
||||||
isCreate: (!ha || ha === 'unmanaged'),
|
isCreate: !ha || ha === 'unmanaged',
|
||||||
}).show();
|
}).show();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -14,10 +14,10 @@ Ext.define('PVE.lxc.FeaturesInputPanel', {
|
|||||||
},
|
},
|
||||||
formulas: {
|
formulas: {
|
||||||
privilegedOnly: function(get) {
|
privilegedOnly: function(get) {
|
||||||
return (get('unprivileged') ? gettext('privileged only') : '');
|
return get('unprivileged') ? gettext('privileged only') : '';
|
||||||
},
|
},
|
||||||
unprivilegedOnly: function(get) {
|
unprivilegedOnly: function(get) {
|
||||||
return (!get('unprivileged') ? gettext('unprivileged only') : '');
|
return !get('unprivileged') ? gettext('unprivileged only') : '';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -9,7 +9,7 @@ Ext.define('PVE.lxc.NetworkInputPanel', {
|
|||||||
setNodename: function(nodename) {
|
setNodename: function(nodename) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
if (!nodename || (me.nodename === nodename)) {
|
if (!nodename || me.nodename === nodename) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ Ext.define('PVE.lxc.NetworkInputPanel', {
|
|||||||
cdata.name = 'eth0';
|
cdata.name = 'eth0';
|
||||||
me.dataCache = {};
|
me.dataCache = {};
|
||||||
}
|
}
|
||||||
cdata.firewall = (me.insideWizard || me.isCreate);
|
cdata.firewall = me.insideWizard || me.isCreate;
|
||||||
|
|
||||||
if (!me.dataCache) {
|
if (!me.dataCache) {
|
||||||
throw "no dataCache specified";
|
throw "no dataCache specified";
|
||||||
@ -155,14 +155,14 @@ Ext.define('PVE.lxc.NetworkInputPanel', {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
var dhcp4 = (cdata.ip === 'dhcp');
|
var dhcp4 = cdata.ip === 'dhcp';
|
||||||
if (dhcp4) {
|
if (dhcp4) {
|
||||||
cdata.ip = '';
|
cdata.ip = '';
|
||||||
cdata.gw = '';
|
cdata.gw = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
var auto6 = (cdata.ip6 === 'auto');
|
var auto6 = cdata.ip6 === 'auto';
|
||||||
var dhcp6 = (cdata.ip6 === 'dhcp');
|
var dhcp6 = cdata.ip6 === 'dhcp';
|
||||||
if (auto6 || dhcp6) {
|
if (auto6 || dhcp6) {
|
||||||
cdata.ip6 = '';
|
cdata.ip6 = '';
|
||||||
cdata.gw6 = '';
|
cdata.gw6 = '';
|
||||||
@ -284,7 +284,7 @@ Ext.define('PVE.lxc.NetworkInputPanel', {
|
|||||||
value: cdata.ip6,
|
value: cdata.ip6,
|
||||||
emptyText: dhcp6 || auto6 ? '' : Proxmox.Utils.NoneText,
|
emptyText: dhcp6 || auto6 ? '' : Proxmox.Utils.NoneText,
|
||||||
vtype: 'IP6CIDRAddress',
|
vtype: 'IP6CIDRAddress',
|
||||||
disabled: (dhcp6 || auto6),
|
disabled: dhcp6 || auto6,
|
||||||
fieldLabel: 'IPv6/CIDR', // do not localize
|
fieldLabel: 'IPv6/CIDR', // do not localize
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -292,7 +292,7 @@ Ext.define('PVE.lxc.NetworkInputPanel', {
|
|||||||
name: 'gw6',
|
name: 'gw6',
|
||||||
vtype: 'IP6Address',
|
vtype: 'IP6Address',
|
||||||
value: cdata.gw6,
|
value: cdata.gw6,
|
||||||
disabled: (dhcp6 || auto6),
|
disabled: dhcp6 || auto6,
|
||||||
fieldLabel: gettext('Gateway') + ' (IPv6)',
|
fieldLabel: gettext('Gateway') + ' (IPv6)',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
@ -370,7 +370,7 @@ Ext.define('PVE.lxc.NetworkView', {
|
|||||||
records.push(net);
|
records.push(net);
|
||||||
});
|
});
|
||||||
me.store.loadData(records);
|
me.store.loadData(records);
|
||||||
me.down('button[name=addButton]').setDisabled((records.length >= 32));
|
me.down('button[name=addButton]').setDisabled(records.length >= 32);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -231,7 +231,7 @@ Ext.define('PVE.lxc.RessourceView', {
|
|||||||
var rowdef = rows[key];
|
var rowdef = rows[key];
|
||||||
|
|
||||||
var pending = rec.data['delete'] || me.hasPendingChanges(key);
|
var pending = rec.data['delete'] || me.hasPendingChanges(key);
|
||||||
var isDisk = (rowdef.tdCls == 'pve-itype-icon-storage');
|
var isDisk = rowdef.tdCls == 'pve-itype-icon-storage';
|
||||||
var isUnusedDisk = key.match(/^unused\d+/);
|
var isUnusedDisk = key.match(/^unused\d+/);
|
||||||
|
|
||||||
var noedit = rec.data['delete'] || !rowdef.editor;
|
var noedit = rec.data['delete'] || !rowdef.editor;
|
||||||
@ -257,11 +257,11 @@ Ext.define('PVE.lxc.RessourceView', {
|
|||||||
var order1 = rows[v1].order || 0;
|
var order1 = rows[v1].order || 0;
|
||||||
var order2 = rows[v2].order || 0;
|
var order2 = rows[v2].order || 0;
|
||||||
|
|
||||||
if ((g1 - g2) !== 0) {
|
if (g1 - g2 !== 0) {
|
||||||
return g1 - g2;
|
return g1 - g2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((order1 - order2) !== 0) {
|
if (order1 - order2 !== 0) {
|
||||||
return order1 - order2;
|
return order1 - order2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ Ext.define('PVE.node.LVMList', {
|
|||||||
name: 'iconCls',
|
name: 'iconCls',
|
||||||
calculate: function(data) {
|
calculate: function(data) {
|
||||||
var txt = 'fa x-fa-tree fa-';
|
var txt = 'fa x-fa-tree fa-';
|
||||||
txt += (data.leaf) ? 'hdd-o' : 'object-group';
|
txt += data.leaf ? 'hdd-o' : 'object-group';
|
||||||
return txt;
|
return txt;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -172,7 +172,7 @@ Ext.define('PVE.node.LVMList', {
|
|||||||
type: 'number',
|
type: 'number',
|
||||||
name: 'usage',
|
name: 'usage',
|
||||||
calculate: function(data) {
|
calculate: function(data) {
|
||||||
return ((data.size-data.free)/data.size);
|
return (data.size-data.free)/data.size;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -27,7 +27,7 @@ Ext.define('PVE.node.CreateZFS', {
|
|||||||
disks.sort(function(a, b) {
|
disks.sort(function(a, b) {
|
||||||
var aorder = a.get('order') || 0;
|
var aorder = a.get('order') || 0;
|
||||||
var border = b.get('order') || 0;
|
var border = b.get('order') || 0;
|
||||||
return (aorder - border);
|
return aorder - border;
|
||||||
});
|
});
|
||||||
|
|
||||||
disks.forEach(function(disk) {
|
disks.forEach(function(disk) {
|
||||||
|
@ -254,12 +254,12 @@ Ext.define('PVE.panel.Config', {
|
|||||||
// select the new item
|
// select the new item
|
||||||
var statechange = function(sp, key, state) {
|
var statechange = function(sp, key, state) {
|
||||||
// it the state change is for this panel
|
// it the state change is for this panel
|
||||||
if (stateid && (key === stateid) && state) {
|
if (stateid && key === stateid && state) {
|
||||||
// get active item
|
// get active item
|
||||||
var acard = me.getLayout().getActiveItem().itemId;
|
var acard = me.getLayout().getActiveItem().itemId;
|
||||||
// get the itemid of the new value
|
// get the itemid of the new value
|
||||||
var ncard = state.value || me.firstItem;
|
var ncard = state.value || me.firstItem;
|
||||||
if (ncard && (acard != ncard)) {
|
if (ncard && acard != ncard) {
|
||||||
// select the chosen item
|
// select the chosen item
|
||||||
menu.setSelection(root.findChild('id', ncard, true) || root.firstChild);
|
menu.setSelection(root.findChild('id', ncard, true) || root.firstChild);
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ Ext.define('PVE.IPSetCidrEdit', {
|
|||||||
initComponent: function() {
|
initComponent: function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
me.isCreate = (me.cidr === undefined);
|
me.isCreate = me.cidr === undefined;
|
||||||
|
|
||||||
|
|
||||||
if (me.isCreate) {
|
if (me.isCreate) {
|
||||||
|
@ -103,7 +103,7 @@ Ext.define('PVE.widget.RunningChart', {
|
|||||||
let me = this.chart;
|
let me = this.chart;
|
||||||
let panel = me.up();
|
let panel = me.up();
|
||||||
let now = new Date().getTime();
|
let now = new Date().getTime();
|
||||||
let begin = new Date(now - (1000 * panel.timeFrame)).getTime();
|
let begin = new Date(now - 1000 * panel.timeFrame).getTime();
|
||||||
|
|
||||||
me.store.add({
|
me.store.add({
|
||||||
time: time || now,
|
time: time || now,
|
||||||
|
@ -50,7 +50,7 @@ Ext.define('PVE.panel.StatusPanel', {
|
|||||||
if (key === stateid) {
|
if (key === stateid) {
|
||||||
var atab = me.getActiveTab().itemId;
|
var atab = me.getActiveTab().itemId;
|
||||||
var ntab = state.value;
|
var ntab = state.value;
|
||||||
if (state && ntab && (atab != ntab)) {
|
if (state && ntab && atab != ntab) {
|
||||||
me.setActiveTab(ntab);
|
me.setActiveTab(ntab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,8 +125,8 @@ Ext.define('PVE.qemu.AgentIPView', {
|
|||||||
let agentRec = store.getById('agent');
|
let agentRec = store.getById('agent');
|
||||||
let state = store.getById('status');
|
let state = store.getById('status');
|
||||||
|
|
||||||
me.agent = (agentRec && agentRec.data.value === 1);
|
me.agent = agentRec && agentRec.data.value === 1;
|
||||||
me.running = (state && state.data.value === 'running');
|
me.running = state && state.data.value === 'running';
|
||||||
|
|
||||||
var caps = Ext.state.Manager.get('GuiCap');
|
var caps = Ext.state.Manager.get('GuiCap');
|
||||||
|
|
||||||
|
@ -28,10 +28,10 @@ Ext.define('PVE.qemu.BootOrderPanel', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
isBootdev: function(dev, value) {
|
isBootdev: function(dev, value) {
|
||||||
return (this.isDisk(dev) && !this.isCloudinit(value)) ||
|
return this.isDisk(dev) && !this.isCloudinit(value) ||
|
||||||
(/^net\d+/).test(dev) ||
|
(/^net\d+/).test(dev) ||
|
||||||
(/^hostpci\d+/).test(dev) ||
|
(/^hostpci\d+/).test(dev) ||
|
||||||
((/^usb\d+/).test(dev) && !(/spice/).test(value));
|
(/^usb\d+/).test(dev) && !(/spice/).test(value);
|
||||||
},
|
},
|
||||||
|
|
||||||
setVMConfig: function(vmconfig) {
|
setVMConfig: function(vmconfig) {
|
||||||
|
@ -7,7 +7,7 @@ Ext.define('PVE.qemu.CDInputPanel', {
|
|||||||
onGetValues: function(values) {
|
onGetValues: function(values) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
var confid = me.confid || (values.controller + values.deviceid);
|
var confid = me.confid || values.controller + values.deviceid;
|
||||||
|
|
||||||
me.drive.media = 'cdrom';
|
me.drive.media = 'cdrom';
|
||||||
if (values.mediaType === 'iso') {
|
if (values.mediaType === 'iso') {
|
||||||
|
@ -116,7 +116,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
var ha = vm.hastate;
|
var ha = vm.hastate;
|
||||||
Ext.create('PVE.ha.VMResourceEdit', {
|
Ext.create('PVE.ha.VMResourceEdit', {
|
||||||
vmid: vmid,
|
vmid: vmid,
|
||||||
isCreate: (!ha || ha === 'unmanaged'),
|
isCreate: !ha || ha === 'unmanaged',
|
||||||
}).show();
|
}).show();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -397,7 +397,7 @@ Ext.define('PVE.qemu.Config', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var resume = (['prelaunch', 'paused', 'suspended'].indexOf(qmpstatus) !== -1);
|
var resume = ['prelaunch', 'paused', 'suspended'].indexOf(qmpstatus) !== -1;
|
||||||
|
|
||||||
if (resume || lock === 'suspended') {
|
if (resume || lock === 'suspended') {
|
||||||
startBtn.setVisible(false);
|
startBtn.setVisible(false);
|
||||||
|
@ -62,7 +62,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
|
|||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
var params = {};
|
var params = {};
|
||||||
var confid = me.confid || (values.controller + values.deviceid);
|
var confid = me.confid || values.controller + values.deviceid;
|
||||||
|
|
||||||
if (me.unused) {
|
if (me.unused) {
|
||||||
me.drive.file = me.vmconfig[values.unusedId];
|
me.drive.file = me.vmconfig[values.unusedId];
|
||||||
@ -133,7 +133,7 @@ Ext.define('PVE.qemu.HDInputPanel', {
|
|||||||
values.noreplicate = !PVE.Parser.parseBoolean(drive.replicate, 1);
|
values.noreplicate = !PVE.Parser.parseBoolean(drive.replicate, 1);
|
||||||
values.diskformat = drive.format || 'raw';
|
values.diskformat = drive.format || 'raw';
|
||||||
values.cache = drive.cache || '__default__';
|
values.cache = drive.cache || '__default__';
|
||||||
values.discard = (drive.discard === 'on');
|
values.discard = drive.discard === 'on';
|
||||||
values.ssd = PVE.Parser.parseBoolean(drive.ssd);
|
values.ssd = PVE.Parser.parseBoolean(drive.ssd);
|
||||||
values.iothread = PVE.Parser.parseBoolean(drive.iothread);
|
values.iothread = PVE.Parser.parseBoolean(drive.iothread);
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Ext.define('PVE.window.HDMove', {
|
|||||||
|
|
||||||
move_disk: function(disk, storage, format, delete_disk) {
|
move_disk: function(disk, storage, format, delete_disk) {
|
||||||
var me = this;
|
var me = this;
|
||||||
var qemu = (me.type === 'qemu');
|
var qemu = me.type === 'qemu';
|
||||||
var params = {};
|
var params = {};
|
||||||
params.storage = storage;
|
params.storage = storage;
|
||||||
params[qemu ? 'disk':'volume'] = disk;
|
params[qemu ? 'disk':'volume'] = disk;
|
||||||
@ -58,7 +58,7 @@ Ext.define('PVE.window.HDMove', {
|
|||||||
me.type = 'qemu';
|
me.type = 'qemu';
|
||||||
}
|
}
|
||||||
|
|
||||||
var qemu = (me.type === 'qemu');
|
var qemu = me.type === 'qemu';
|
||||||
|
|
||||||
var items = [
|
var items = [
|
||||||
{
|
{
|
||||||
|
@ -10,7 +10,7 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
var rowdef = rows[key] || {};
|
var rowdef = rows[key] || {};
|
||||||
var iconCls = rowdef.iconCls;
|
var iconCls = rowdef.iconCls;
|
||||||
var icon = '';
|
var icon = '';
|
||||||
var txt = (rowdef.header || key);
|
var txt = rowdef.header || key;
|
||||||
|
|
||||||
metaData.tdAttr = "valign=middle";
|
metaData.tdAttr = "valign=middle";
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
sockets: {
|
sockets: {
|
||||||
header: gettext('Processors'),
|
header: gettext('Processors'),
|
||||||
never_delete: true,
|
never_delete: true,
|
||||||
editor: (caps.vms['VM.Config.CPU'] || caps.vms['VM.Config.HWType'])
|
editor: caps.vms['VM.Config.CPU'] || caps.vms['VM.Config.HWType']
|
||||||
? 'PVE.qemu.ProcessorEdit' : undefined,
|
? 'PVE.qemu.ProcessorEdit' : undefined,
|
||||||
tdCls: 'pve-itype-icon-processor',
|
tdCls: 'pve-itype-icon-processor',
|
||||||
group: 3,
|
group: 3,
|
||||||
@ -315,11 +315,11 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
var order1 = rows[v1].order || 0;
|
var order1 = rows[v1].order || 0;
|
||||||
var order2 = rows[v2].order || 0;
|
var order2 = rows[v2].order || 0;
|
||||||
|
|
||||||
if ((g1 - g2) !== 0) {
|
if (g1 - g2 !== 0) {
|
||||||
return g1 - g2;
|
return g1 - g2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((order1 - order2) !== 0) {
|
if (order1 - order2 !== 0) {
|
||||||
return order1 - order2;
|
return order1 - order2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -528,7 +528,7 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let counts = {};
|
let counts = {};
|
||||||
let isAtLimit = (type) => (counts[type] >= PVE.Utils.hardware_counts[type]);
|
let isAtLimit = (type) => counts[type] >= PVE.Utils.hardware_counts[type];
|
||||||
|
|
||||||
var set_button_status = function() {
|
var set_button_status = function() {
|
||||||
var sm = me.getSelectionModel();
|
var sm = me.getSelectionModel();
|
||||||
@ -585,19 +585,19 @@ Ext.define('PVE.qemu.HardwareView', {
|
|||||||
var rowdef = rows[key];
|
var rowdef = rows[key];
|
||||||
|
|
||||||
var pending = rec.data['delete'] || me.hasPendingChanges(key);
|
var pending = rec.data['delete'] || me.hasPendingChanges(key);
|
||||||
var isCDRom = (value && !!value.toString().match(/media=cdrom/));
|
var isCDRom = value && !!value.toString().match(/media=cdrom/);
|
||||||
var isUnusedDisk = key.match(/^unused\d+/);
|
var isUnusedDisk = key.match(/^unused\d+/);
|
||||||
var isUsedDisk = !isUnusedDisk && rowdef.isOnStorageBus && !isCDRom;
|
var isUsedDisk = !isUnusedDisk && rowdef.isOnStorageBus && !isCDRom;
|
||||||
|
|
||||||
var isCloudInit = (value && value.toString().match(/vm-.*-cloudinit/));
|
var isCloudInit = value && value.toString().match(/vm-.*-cloudinit/);
|
||||||
|
|
||||||
var isEfi = (key === 'efidisk0');
|
var isEfi = key === 'efidisk0';
|
||||||
|
|
||||||
remove_btn.setDisabled(rec.data['delete'] || (rowdef.never_delete === true) || (isUnusedDisk && !diskCap));
|
remove_btn.setDisabled(rec.data['delete'] || rowdef.never_delete === true || isUnusedDisk && !diskCap);
|
||||||
remove_btn.setText((isUsedDisk && !isCloudInit) ? remove_btn.altText : remove_btn.defaultText);
|
remove_btn.setText(isUsedDisk && !isCloudInit ? remove_btn.altText : remove_btn.defaultText);
|
||||||
remove_btn.RESTMethod = isUnusedDisk ? 'POST':'PUT';
|
remove_btn.RESTMethod = isUnusedDisk ? 'POST':'PUT';
|
||||||
|
|
||||||
edit_btn.setDisabled(rec.data['delete'] || !rowdef.editor || isCloudInit || (!isCDRom && !diskCap));
|
edit_btn.setDisabled(rec.data['delete'] || !rowdef.editor || isCloudInit || !isCDRom && !diskCap);
|
||||||
|
|
||||||
resize_btn.setDisabled(pending || !isUsedDisk || !diskCap);
|
resize_btn.setDisabled(pending || !isUsedDisk || !diskCap);
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ Ext.define('PVE.qemu.MemoryInputPanel', {
|
|||||||
} else if (values.memory === values.balloon) {
|
} else if (values.memory === values.balloon) {
|
||||||
delete res.balloon;
|
delete res.balloon;
|
||||||
res['delete'] = 'balloon,shares';
|
res['delete'] = 'balloon,shares';
|
||||||
} else if (Ext.isDefined(values.shares) && (values.shares !== "")) {
|
} else if (Ext.isDefined(values.shares) && values.shares !== "") {
|
||||||
res.shares = values.shares;
|
res.shares = values.shares;
|
||||||
} else {
|
} else {
|
||||||
res['delete'] = "shares";
|
res['delete'] = "shares";
|
||||||
@ -102,7 +102,7 @@ Ext.define('PVE.qemu.MemoryInputPanel', {
|
|||||||
var shares = me.down('field[name=shares]');
|
var shares = me.down('field[name=shares]');
|
||||||
var memory = me.down('field[name=memory]');
|
var memory = me.down('field[name=memory]');
|
||||||
bf.setDisabled(!value);
|
bf.setDisabled(!value);
|
||||||
shares.setDisabled(!value || (bf.getValue() === memory.getValue()));
|
shares.setDisabled(!value || bf.getValue() === memory.getValue());
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -156,7 +156,7 @@ Ext.define('PVE.qemu.MemoryEdit', {
|
|||||||
ballooning: data.balloon === 0 ? '0' : '1',
|
ballooning: data.balloon === 0 ? '0' : '1',
|
||||||
shares: data.shares,
|
shares: data.shares,
|
||||||
memory: data.memory || '512',
|
memory: data.memory || '512',
|
||||||
balloon: data.balloon > 0 ? data.balloon : (data.memory || '512'),
|
balloon: data.balloon > 0 ? data.balloon : data.memory || '512',
|
||||||
};
|
};
|
||||||
|
|
||||||
ipanel.setValues(values);
|
ipanel.setValues(values);
|
||||||
|
@ -83,7 +83,7 @@ Ext.define('PVE.qemu.NetworkInputPanel', {
|
|||||||
xtype: 'proxmoxcheckbox',
|
xtype: 'proxmoxcheckbox',
|
||||||
fieldLabel: gettext('Firewall'),
|
fieldLabel: gettext('Firewall'),
|
||||||
name: 'firewall',
|
name: 'firewall',
|
||||||
checked: (me.insideWizard || me.isCreate),
|
checked: me.insideWizard || me.isCreate,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Ext.define('PVE.qemu.OSDefaults', {
|
|||||||
var child = Ext.clone(me[settings.parent]);
|
var child = Ext.clone(me[settings.parent]);
|
||||||
me[settings.pveOS] = Ext.apply(child, settings);
|
me[settings.pveOS] = Ext.apply(child, settings);
|
||||||
} else {
|
} else {
|
||||||
throw ("Could not find your genitor");
|
throw "Could not find your genitor";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Ext.define('PVE.sdn.Status', {
|
|||||||
me.rstore = Ext.create('Proxmox.data.ObjectStore', {
|
me.rstore = Ext.create('Proxmox.data.ObjectStore', {
|
||||||
interval: me.interval,
|
interval: me.interval,
|
||||||
model: 'pve-sdn-status',
|
model: 'pve-sdn-status',
|
||||||
storeid: 'pve-store-' + (++Ext.idSeed),
|
storeid: 'pve-store-' + ++Ext.idSeed,
|
||||||
groupField: 'type',
|
groupField: 'type',
|
||||||
proxy: {
|
proxy: {
|
||||||
type: 'proxmox',
|
type: 'proxmox',
|
||||||
|
@ -24,7 +24,7 @@ Ext.define('PVE.sdn.StatusView', {
|
|||||||
sorterFn: function(rec1, rec2) {
|
sorterFn: function(rec1, rec2) {
|
||||||
var p1 = me.sortPriority[rec1.data.type];
|
var p1 = me.sortPriority[rec1.data.type];
|
||||||
var p2 = me.sortPriority[rec2.data.type];
|
var p2 = me.sortPriority[rec2.data.type];
|
||||||
return (p1 !== p2) ? ((p1 > p2) ? 1 : -1) : 0;
|
return p1 !== p2 ? p1 > p2 ? 1 : -1 : 0;
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
filters: {
|
filters: {
|
||||||
|
@ -71,7 +71,7 @@ Ext.define('PVE.storage.IScsiInputPanel', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
setValues: function(values) {
|
setValues: function(values) {
|
||||||
values.luns = (values.content.indexOf('images') !== -1);
|
values.luns = values.content.indexOf('images') !== -1;
|
||||||
this.callParent([values]);
|
this.callParent([values]);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ Ext.define('PVE.storage.ImageView', {
|
|||||||
throw "no storage ID specified";
|
throw "no storage ID specified";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!me.content || (me.content !== 'images' && me.content !== 'rootdir')) {
|
if (!me.content || me.content !== 'images' && me.content !== 'rootdir') {
|
||||||
throw "content needs to be either 'images' or 'rootdir'";
|
throw "content needs to be either 'images' or 'rootdir'";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,8 +53,8 @@ Ext.define('PVE.grid.TemplateSelector', {
|
|||||||
var value = field.getValue().toLowerCase();
|
var value = field.getValue().toLowerCase();
|
||||||
store.clearFilter(true);
|
store.clearFilter(true);
|
||||||
store.filterBy(function(rec) {
|
store.filterBy(function(rec) {
|
||||||
return (rec.data['package'].toLowerCase().indexOf(value) !== -1) ||
|
return rec.data['package'].toLowerCase().indexOf(value) !== -1 ||
|
||||||
(rec.data.headline.toLowerCase().indexOf(value) !== -1);
|
rec.data.headline.toLowerCase().indexOf(value) !== -1;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -45,14 +45,14 @@ Ext.define('PVE.tree.ResourceTree', {
|
|||||||
var n1 = node1.data;
|
var n1 = node1.data;
|
||||||
var n2 = node2.data;
|
var n2 = node2.data;
|
||||||
|
|
||||||
if ((n1.groupbyid && n2.groupbyid) ||
|
if (n1.groupbyid && n2.groupbyid ||
|
||||||
!(n1.groupbyid || n2.groupbyid)) {
|
!(n1.groupbyid || n2.groupbyid)) {
|
||||||
var tcmp;
|
var tcmp;
|
||||||
|
|
||||||
var v1 = n1.type;
|
var v1 = n1.type;
|
||||||
var v2 = n2.type;
|
var v2 = n2.type;
|
||||||
|
|
||||||
if ((tcmp = v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)) != 0) {
|
if ((tcmp = v1 > v2 ? 1 : v1 < v2 ? -1 : 0) != 0) {
|
||||||
return tcmp;
|
return tcmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,12 +66,12 @@ Ext.define('PVE.tree.ResourceTree', {
|
|||||||
}
|
}
|
||||||
v1 = n1.vmid;
|
v1 = n1.vmid;
|
||||||
v2 = n2.vmid;
|
v2 = n2.vmid;
|
||||||
if ((tcmp = v1 > v2 ? 1 : (v1 < v2 ? -1 : 0)) != 0) {
|
if ((tcmp = v1 > v2 ? 1 : v1 < v2 ? -1 : 0) != 0) {
|
||||||
return tcmp;
|
return tcmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return n1.id > n2.id ? 1 : (n1.id < n2.id ? -1 : 0);
|
return n1.id > n2.id ? 1 : n1.id < n2.id ? -1 : 0;
|
||||||
} else if (n1.groupbyid) {
|
} else if (n1.groupbyid) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (n2.groupbyid) {
|
} else if (n2.groupbyid) {
|
||||||
@ -422,7 +422,7 @@ Ext.define('PVE.tree.ResourceTree', {
|
|||||||
var sm = me.getSelectionModel();
|
var sm = me.getSelectionModel();
|
||||||
// disable selection when right clicking
|
// disable selection when right clicking
|
||||||
// except the record is already selected
|
// except the record is already selected
|
||||||
me.allowSelection = (ev.button !== 2) || sm.isSelected(record);
|
me.allowSelection = ev.button !== 2 || sm.isSelected(record);
|
||||||
},
|
},
|
||||||
beforeselect: function(tree, record, index, eopts) {
|
beforeselect: function(tree, record, index, eopts) {
|
||||||
var allow = me.allowSelection;
|
var allow = me.allowSelection;
|
||||||
|
@ -128,7 +128,7 @@ Ext.define('PVE.window.Backup', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var title = gettext('Backup') + " " +
|
var title = gettext('Backup') + " " +
|
||||||
((me.vmtype === 'lxc') ? "CT" : "VM") +
|
(me.vmtype === 'lxc' ? "CT" : "VM") +
|
||||||
" " + me.vmid;
|
" " + me.vmid;
|
||||||
|
|
||||||
Ext.apply(me, {
|
Ext.apply(me, {
|
||||||
|
@ -133,8 +133,8 @@ Ext.define('PVE.window.BulkAction', {
|
|||||||
selectionchange: function(vmselector, records) {
|
selectionchange: function(vmselector, records) {
|
||||||
if (me.action == 'migrateall') {
|
if (me.action == 'migrateall') {
|
||||||
var showWarning = records.some(function(item) {
|
var showWarning = records.some(function(item) {
|
||||||
return (item.data.type == 'lxc' &&
|
return item.data.type == 'lxc' &&
|
||||||
item.data.status == 'running');
|
item.data.status == 'running';
|
||||||
});
|
});
|
||||||
me.down('#lxcwarning').setVisible(showWarning);
|
me.down('#lxcwarning').setVisible(showWarning);
|
||||||
}
|
}
|
||||||
|
@ -23,11 +23,11 @@ Ext.define('PVE.window.Restore', {
|
|||||||
name: 'storage',
|
name: 'storage',
|
||||||
value: '',
|
value: '',
|
||||||
fieldLabel: gettext('Storage'),
|
fieldLabel: gettext('Storage'),
|
||||||
storageContent: (me.vmtype === 'lxc') ? 'rootdir' : 'images',
|
storageContent: me.vmtype === 'lxc' ? 'rootdir' : 'images',
|
||||||
// when restoring a container without specifying a storage, the backend defaults
|
// when restoring a container without specifying a storage, the backend defaults
|
||||||
// to 'local', which is unintuitive and 'rootdir' might not even be allowed on it
|
// to 'local', which is unintuitive and 'rootdir' might not even be allowed on it
|
||||||
allowBlank: me.vmtype !== 'lxc',
|
allowBlank: me.vmtype !== 'lxc',
|
||||||
emptyText: (me.vmtype === 'lxc') ? '' : gettext('From backup configuration'),
|
emptyText: me.vmtype === 'lxc' ? '' : gettext('From backup configuration'),
|
||||||
autoSelect: me.vmtype === 'lxc',
|
autoSelect: me.vmtype === 'lxc',
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ Ext.define('PVE.window.Restore', {
|
|||||||
IDfield = Ext.create('Ext.form.field.Display', {
|
IDfield = Ext.create('Ext.form.field.Display', {
|
||||||
name: 'vmid',
|
name: 'vmid',
|
||||||
value: me.vmid,
|
value: me.vmid,
|
||||||
fieldLabel: (me.vmtype === 'lxc') ? 'CT' : 'VM',
|
fieldLabel: me.vmtype === 'lxc' ? 'CT' : 'VM',
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
IDfield = Ext.create('PVE.form.GuestIDSelector', {
|
IDfield = Ext.create('PVE.form.GuestIDSelector', {
|
||||||
@ -186,7 +186,7 @@ Ext.define('PVE.window.Restore', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var title = gettext('Restore') + ": " + (
|
var title = gettext('Restore') + ": " + (
|
||||||
(me.vmtype === 'lxc') ? 'CT' : 'VM');
|
me.vmtype === 'lxc' ? 'CT' : 'VM');
|
||||||
|
|
||||||
if (me.vmid) {
|
if (me.vmid) {
|
||||||
title += " " + me.vmid;
|
title += " " + me.vmid;
|
||||||
|
Loading…
Reference in New Issue
Block a user