From 1552d9699c6dbadd3969d4bc28e7ac225f0fae38 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 1 Mar 2021 11:11:38 +0100 Subject: [PATCH] tape: add 'Restore Key' button --- src/api2/tape/drive.rs | 5 +++++ www/tape/EncryptionKeys.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/api2/tape/drive.rs b/src/api2/tape/drive.rs index 18707489..6ef6a78b 100644 --- a/src/api2/tape/drive.rs +++ b/src/api2/tape/drive.rs @@ -1298,6 +1298,11 @@ pub const SUBDIRS: SubdirMap = &sorted!([ &Router::new() .get(&API_METHOD_READ_LABEL) ), + ( + "restore-key", + &Router::new() + .post(&API_METHOD_RESTORE_KEY) + ), ( "rewind", &Router::new() diff --git a/www/tape/EncryptionKeys.js b/www/tape/EncryptionKeys.js index 6f2644d2..ac540d21 100644 --- a/www/tape/EncryptionKeys.js +++ b/www/tape/EncryptionKeys.js @@ -29,6 +29,34 @@ Ext.define('PBS.TapeManagement.EncryptionPanel', { }).show(); }, + onRestoreKey: function() { + Ext.create('Proxmox.window.Edit', { + title: gettext('Restore Key'), + isCreate: true, + submitText: gettext('Restore'), + method: 'POST', + url: `/api2/extjs/tape/drive`, + submitUrl: function(url, values) { + let drive = values.drive; + delete values.drive; + return `${url}/${drive}/restore-key`; + }, + items: [ + { + xtype: 'pbsDriveSelector', + fieldLabel: gettext('Drive'), + name: 'drive', + }, + { + xtype: 'textfield', + inputType: 'password', + fieldLabel: gettext('Password'), + name: 'password', + }, + ], + }).show(); + }, + reload: function() { this.getView().getStore().rstore.load(); }, @@ -75,6 +103,13 @@ Ext.define('PBS.TapeManagement.EncryptionPanel', { baseurl: '/api2/extjs/config/tape-encryption-keys', callback: 'reload', }, + '-', + { + text: gettext('Restore Key'), + xtype: 'proxmoxButton', + handler: 'onRestoreKey', + selModel: false, + }, ], columns: [ {