]> git.proxmox.com Git - proxmox-backup.git/blob - www/tape/EncryptionKeys.js
ui: remove cartridge memory panel (show window after butten press instead)
[proxmox-backup.git] / www / tape / EncryptionKeys.js
1 Ext.define('pbs-tape-encryption-keys', {
2 extend: 'Ext.data.Model',
3 fields: [
4 'fingerprint', 'hint', 'kdf', 'modified',
5 {
6 name: 'created',
7 type: 'date',
8 dateFormat: 'timestamp',
9 },
10 ],
11 idProperty: 'fingerprint',
12 });
13
14 Ext.define('PBS.TapeManagement.EncryptionPanel', {
15 extend: 'Ext.grid.Panel',
16 alias: 'widget.pbsEncryptionKeys',
17
18 controller: {
19 xclass: 'Ext.app.ViewController',
20
21 onAdd: function() {
22 let me = this;
23 Ext.create('PBS.TapeManagement.EncryptionEditWindow', {
24 listeners: {
25 destroy: function() {
26 me.reload();
27 },
28 },
29 }).show();
30 },
31
32 onRestoreKey: function() {
33 Ext.create('Proxmox.window.Edit', {
34 title: gettext('Restore Key'),
35 isCreate: true,
36 submitText: gettext('Restore'),
37 method: 'POST',
38 url: `/api2/extjs/tape/drive`,
39 submitUrl: function(url, values) {
40 let drive = values.drive;
41 delete values.drive;
42 return `${url}/${drive}/restore-key`;
43 },
44 items: [
45 {
46 xtype: 'pbsDriveSelector',
47 fieldLabel: gettext('Drive'),
48 name: 'drive',
49 },
50 {
51 xtype: 'textfield',
52 inputType: 'password',
53 fieldLabel: gettext('Password'),
54 name: 'password',
55 },
56 ],
57 }).show();
58 },
59
60 reload: function() {
61 this.getView().getStore().rstore.load();
62 },
63
64 stopStore: function() {
65 this.getView().getStore().rstore.stopUpdate();
66 },
67
68 startStore: function() {
69 this.getView().getStore().rstore.startUpdate();
70 },
71
72 init: function(view) {
73 Proxmox.Utils.monStoreErrors(view, view.getStore().rstore);
74 },
75 },
76
77 listeners: {
78 beforedestroy: 'stopStore',
79 deactivate: 'stopStore',
80 activate: 'startStore',
81 },
82
83 store: {
84 type: 'diff',
85 rstore: {
86 type: 'update',
87 storeid: 'proxmox-tape-encryption-keys',
88 model: 'pbs-tape-encryption-keys',
89 proxy: {
90 type: 'proxmox',
91 url: "/api2/json/config/tape-encryption-keys",
92 },
93 },
94 sorters: 'hint',
95 },
96
97 tbar: [
98 {
99 text: gettext('Add'),
100 xtype: 'proxmoxButton',
101 handler: 'onAdd',
102 selModel: false,
103 },
104 '-',
105 {
106 xtype: 'proxmoxStdRemoveButton',
107 baseurl: '/api2/extjs/config/tape-encryption-keys',
108 callback: 'reload',
109 },
110 '-',
111 {
112 text: gettext('Restore Key'),
113 xtype: 'proxmoxButton',
114 handler: 'onRestoreKey',
115 selModel: false,
116 },
117 ],
118 columns: [
119 {
120 text: gettext('Hint'),
121 dataIndex: 'hint',
122 flex: 1,
123 },
124 {
125 text: gettext('Fingerprint'),
126 dataIndex: 'fingerprint',
127 flex: 4,
128 },
129 {
130 text: gettext('Created'),
131 xtype: 'datecolumn',
132 dataIndex: 'created',
133 width: 150,
134 format: 'Y-m-d H:i:s',
135 },
136 ],
137 });