]>
Commit | Line | Data |
---|---|---|
2e4e6986 DC |
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 | ||
1552d969 DM |
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 | ||
2e4e6986 DC |
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 | }, | |
bec357e2 DC |
71 | |
72 | init: function(view) { | |
73 | Proxmox.Utils.monStoreErrors(view, view.getStore().rstore); | |
74 | }, | |
2e4e6986 DC |
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 | }, | |
1552d969 DM |
110 | '-', |
111 | { | |
112 | text: gettext('Restore Key'), | |
113 | xtype: 'proxmoxButton', | |
114 | handler: 'onRestoreKey', | |
115 | selModel: false, | |
116 | }, | |
2e4e6986 DC |
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'), | |
6b303323 | 131 | xtype: 'datecolumn', |
2e4e6986 | 132 | dataIndex: 'created', |
6b303323 DM |
133 | width: 150, |
134 | format: 'Y-m-d H:i:s', | |
2e4e6986 DC |
135 | }, |
136 | ], | |
137 | }); |