pve-manager/www/manager6/storage/PBSEdit.js
Thomas Lamprecht 57e40406de ui: storage/PBS: drop beta hint
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-15 14:56:37 +01:00

151 lines
3.3 KiB
JavaScript

Ext.define('Proxmox.form.PBSEncryptionCheckbox', {
extend: 'Ext.form.field.Checkbox',
xtype: 'pbsEncryptionCheckbox',
inputValue: true,
viewModel: {
data: {
value: null,
originalValue: null,
},
formulas: {
blabel: (get) => {
let v = get('value');
let original = get('originalValue');
if (!get('isCreate') && original) {
if (!v) {
return gettext('Warning: Existing encryption key will be deleted!');
}
return gettext('Active');
} else {
return gettext('Auto-generate a client encryption key, saved privately on cluster filesystem');
}
},
},
},
bind: {
value: '{value}',
boxLabel: '{blabel}',
},
resetOriginalValue: function() {
let me = this;
let vm = me.getViewModel();
vm.set('originalValue', me.value);
me.callParent(arguments);
},
getSubmitData: function() {
let me = this;
let val = me.getSubmitValue();
if (!me.isCreate) {
if (val === null) {
return { 'delete': 'encryption-key' };
} else if (val && !!val !== !!me.originalValue) {
return { 'encryption-key': 'autogen' };
}
} else if (val) {
return { 'encryption-key': 'autogen' };
}
return null;
},
initComponent: function() {
let me = this;
me.callParent();
let vm = me.getViewModel();
vm.set('isCreate', me.isCreate);
},
});
Ext.define('PVE.storage.PBSInputPanel', {
extend: 'PVE.panel.StorageBase',
//onlineHelp: 'storage_pbs',
initComponent: function() {
var me = this;
me.column1 = [
{
xtype: me.isCreate ? 'textfield' : 'displayfield',
name: 'server',
value: '',
vtype: 'DnsOrIp',
fieldLabel: gettext('Server'),
allowBlank: false,
},
{
xtype: me.isCreate ? 'textfield' : 'displayfield',
name: 'username',
value: '',
emptyText: gettext('Example') + ': admin@pbs',
fieldLabel: gettext('Username'),
regex: /\S+@\w+/,
regexText: gettext('Example') + ': admin@pbs',
allowBlank: false,
},
{
xtype: me.isCreate ? 'textfield' : 'displayfield',
inputType: 'password',
name: 'password',
value: me.isCreate ? '' : '********',
emptyText: me.isCreate ? gettext('None') : '',
fieldLabel: gettext('Password'),
allowBlank: false,
},
{
xtype: me.isCreate ? 'textfield' : 'displayfield',
name: 'datastore',
value: '',
fieldLabel: 'Datastore',
allowBlank: false,
},
];
me.column2 = [
{ // FIXME: prune settings
xtype: 'proxmoxintegerfield',
fieldLabel: gettext('Max Backups'),
name: 'maxfiles',
reference: 'maxfiles',
minValue: 0,
maxValue: 365,
value: me.isCreate ? '0' : undefined,
allowBlank: false,
},
{
xtype: 'displayfield',
name: 'content',
value: 'backup',
submitValue: true,
fieldLabel: gettext('Content'),
},
];
me.columnB = [
{
xtype: 'proxmoxtextfield',
name: 'fingerprint',
value: me.isCreate ? null : undefined,
fieldLabel: gettext('Fingerprint'),
emptyText: gettext('Server certificate SHA-256 fingerprint, required for self-signed certificates'),
regex: /[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){31}/,
regexText: gettext('Example') + ': AB:CD:EF:...',
allowBlank: true,
},
{
// FIXME: allow uploading their own, maybe export for root@pam?
xtype: 'pbsEncryptionCheckbox',
name: 'encryption-key',
isCreate: me.isCreate,
fieldLabel: gettext('Encryption Key'),
},
];
me.callParent();
},
});