[pbs-devel] [PATCH proxmox-backup 5/9] ui: tape/TapeRestore: add MediaSetSelector
Dominik Csapak
d.csapak at proxmox.com
Wed May 26 15:48:07 CEST 2021
when no uuid/mediaset is given.
we change a bit how we use the uuid by moving it into the viewmodel
(instead of a simple property on the view) so that we can always
use the selected one
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
www/tape/window/TapeRestore.js | 45 ++++++++++++++++++++++++++++++++--
1 file changed, 43 insertions(+), 2 deletions(-)
diff --git a/www/tape/window/TapeRestore.js b/www/tape/window/TapeRestore.js
index 1afd57fe..1987dff4 100644
--- a/www/tape/window/TapeRestore.js
+++ b/www/tape/window/TapeRestore.js
@@ -14,6 +14,10 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
showTaskViewer: true,
isCreate: true,
+ mediaset: undefined,
+ prefilter: undefined,
+ uuid: undefined,
+
cbindData: function(config) {
let me = this;
if (me.prefilter !== undefined) {
@@ -27,6 +31,7 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
viewModel: {
data: {
+ uuid: "",
singleDatastore: true,
},
formulas: {
@@ -43,6 +48,13 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
return panel.query('[isFormField]').every(field => field.isValid());
},
+ changeMediaSet: function(field, value) {
+ let me = this;
+ let vm = me.getViewModel();
+ vm.set('uuid', value);
+ me.updateSnapshots();
+ },
+
checkValidity: function() {
let me = this;
@@ -203,10 +215,12 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
let me = this;
let view = me.getView();
let grid = me.lookup('snapshotGrid');
+ let vm = me.getViewModel();
+ let uuid = vm.get('uuid');
Proxmox.Utils.API2Request({
waitMsgTarget: view,
- url: `/tape/media/content?media-set=${view.uuid}`,
+ url: `/tape/media/content?media-set=${uuid}`,
success: function(response, opt) {
let datastores = {};
for (const content of response.result.data) {
@@ -229,6 +243,13 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
});
},
+ init: function(view) {
+ let me = this;
+ let vm = me.getViewModel();
+
+ vm.set('uuid', view.uuid);
+ },
+
control: {
'[isFormField]': {
change: 'checkValidity',
@@ -283,11 +304,29 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
},
column1: [
+ {
+ xtype: 'pbsMediaSetSelector',
+ fieldLabel: gettext('Media-Set'),
+ width: 350,
+ submitValue: false,
+ bind: {
+ value: '{uuid}',
+ },
+ cbind: {
+ hidden: '{uuid}',
+ disabled: '{uuid}',
+ },
+ listeners: {
+ change: 'changeMediaSet',
+ },
+ },
{
xtype: 'displayfield',
fieldLabel: gettext('Media-Set'),
cbind: {
value: '{mediaset}',
+ hidden: '{!uuid}',
+ disabled: '{!uuid}',
},
},
],
@@ -298,8 +337,10 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', {
fieldLabel: gettext('Media-Set UUID'),
name: 'media-set',
submitValue: true,
- cbind: {
+ bind: {
value: '{uuid}',
+ hidden: '{!uuid}',
+ disabled: '{!uuid}',
},
},
],
--
2.20.1
More information about the pbs-devel
mailing list