ui: tape/TapeRestore: add MediaSetSelector
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@proxmox.com>
This commit is contained in:
		
				
					committed by
					
						
						Thomas Lamprecht
					
				
			
			
				
	
			
			
			
						parent
						
							d455270fa1
						
					
				
				
					commit
					0732de361a
				
			@ -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}',
 | 
			
		||||
			    },
 | 
			
		||||
			},
 | 
			
		||||
		    ],
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user