]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/PBSEdit.js
ui: storage/PBS: drop beta hint
[pve-manager.git] / www / manager6 / storage / PBSEdit.js
1 Ext.define('Proxmox.form.PBSEncryptionCheckbox', {
2 extend: 'Ext.form.field.Checkbox',
3 xtype: 'pbsEncryptionCheckbox',
4
5 inputValue: true,
6
7 viewModel: {
8 data: {
9 value: null,
10 originalValue: null,
11 },
12 formulas: {
13 blabel: (get) => {
14 let v = get('value');
15 let original = get('originalValue');
16 if (!get('isCreate') && original) {
17 if (!v) {
18 return gettext('Warning: Existing encryption key will be deleted!');
19 }
20 return gettext('Active');
21 } else {
22 return gettext('Auto-generate a client encryption key, saved privately on cluster filesystem');
23 }
24 },
25 },
26 },
27
28 bind: {
29 value: '{value}',
30 boxLabel: '{blabel}',
31 },
32 resetOriginalValue: function() {
33 let me = this;
34 let vm = me.getViewModel();
35 vm.set('originalValue', me.value);
36
37 me.callParent(arguments);
38 },
39
40 getSubmitData: function() {
41 let me = this;
42 let val = me.getSubmitValue();
43 if (!me.isCreate) {
44 if (val === null) {
45 return { 'delete': 'encryption-key' };
46 } else if (val && !!val !== !!me.originalValue) {
47 return { 'encryption-key': 'autogen' };
48 }
49 } else if (val) {
50 return { 'encryption-key': 'autogen' };
51 }
52 return null;
53 },
54
55 initComponent: function() {
56 let me = this;
57 me.callParent();
58
59 let vm = me.getViewModel();
60 vm.set('isCreate', me.isCreate);
61 },
62 });
63 Ext.define('PVE.storage.PBSInputPanel', {
64 extend: 'PVE.panel.StorageBase',
65
66 //onlineHelp: 'storage_pbs',
67
68 initComponent: function() {
69 var me = this;
70
71 me.column1 = [
72 {
73 xtype: me.isCreate ? 'textfield' : 'displayfield',
74 name: 'server',
75 value: '',
76 vtype: 'DnsOrIp',
77 fieldLabel: gettext('Server'),
78 allowBlank: false,
79 },
80 {
81 xtype: me.isCreate ? 'textfield' : 'displayfield',
82 name: 'username',
83 value: '',
84 emptyText: gettext('Example') + ': admin@pbs',
85 fieldLabel: gettext('Username'),
86 regex: /\S+@\w+/,
87 regexText: gettext('Example') + ': admin@pbs',
88 allowBlank: false,
89 },
90 {
91 xtype: me.isCreate ? 'textfield' : 'displayfield',
92 inputType: 'password',
93 name: 'password',
94 value: me.isCreate ? '' : '********',
95 emptyText: me.isCreate ? gettext('None') : '',
96 fieldLabel: gettext('Password'),
97 allowBlank: false,
98 },
99 {
100 xtype: me.isCreate ? 'textfield' : 'displayfield',
101 name: 'datastore',
102 value: '',
103 fieldLabel: 'Datastore',
104 allowBlank: false,
105 },
106 ];
107
108 me.column2 = [
109 { // FIXME: prune settings
110 xtype: 'proxmoxintegerfield',
111 fieldLabel: gettext('Max Backups'),
112 name: 'maxfiles',
113 reference: 'maxfiles',
114 minValue: 0,
115 maxValue: 365,
116 value: me.isCreate ? '0' : undefined,
117 allowBlank: false,
118 },
119 {
120 xtype: 'displayfield',
121 name: 'content',
122 value: 'backup',
123 submitValue: true,
124 fieldLabel: gettext('Content'),
125 },
126 ];
127
128 me.columnB = [
129 {
130 xtype: 'proxmoxtextfield',
131 name: 'fingerprint',
132 value: me.isCreate ? null : undefined,
133 fieldLabel: gettext('Fingerprint'),
134 emptyText: gettext('Server certificate SHA-256 fingerprint, required for self-signed certificates'),
135 regex: /[A-Fa-f0-9]{2}(:[A-Fa-f0-9]{2}){31}/,
136 regexText: gettext('Example') + ': AB:CD:EF:...',
137 allowBlank: true,
138 },
139 {
140 // FIXME: allow uploading their own, maybe export for root@pam?
141 xtype: 'pbsEncryptionCheckbox',
142 name: 'encryption-key',
143 isCreate: me.isCreate,
144 fieldLabel: gettext('Encryption Key'),
145 },
146 ];
147
148 me.callParent();
149 },
150 });