ui: tape/ChangerStatus: save assigned drives

so that we can shortcut later if we only have one

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2021-04-08 13:39:15 +02:00 committed by Dietmar Maurer
parent 4c7be5f59d
commit 4c3eabeaf3
1 changed files with 16 additions and 4 deletions

View File

@ -369,6 +369,13 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
me.reload_full(false); me.reload_full(false);
}, },
drives: [],
updateDrives: function(drives) {
let me = this;
me.drives = drives;
},
free_slots: [], free_slots: [],
free_ie_slots: [], free_ie_slots: [],
@ -440,11 +447,15 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
let free_slots = []; let free_slots = [];
let free_ie_slots = []; let free_ie_slots = [];
let valid_drives = [];
for (let entry of status.result.data) { for (let entry of status.result.data) {
let type = entry['entry-kind']; let type = entry['entry-kind'];
let id = entry['entry-id'];
if (type === 'drive' && drive_entries[entry['entry-id']] !== undefined) { if (type === 'drive' && drive_entries[id] !== undefined) {
entry = Ext.applyIf(entry, drive_entries[entry['entry-id']]); entry = Ext.applyIf(entry, drive_entries[id]);
valid_drives.push(drive_entries[id].name);
} }
if (tapes[entry['label-text']] !== undefined) { if (tapes[entry['label-text']] !== undefined) {
@ -458,12 +469,12 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
if (!entry['label-text'] && type !== 'drive') { if (!entry['label-text'] && type !== 'drive') {
if (type === 'slot') { if (type === 'slot') {
free_slots.push({ free_slots.push({
id: entry['entry-id'], id,
type, type,
}); });
} else { } else {
free_ie_slots.push({ free_ie_slots.push({
id: entry['entry-id'], id,
type, type,
}); });
} }
@ -488,6 +499,7 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
me.lookup('drives').getSelectionModel().fireEvent('selectionchange', me); me.lookup('drives').getSelectionModel().fireEvent('selectionchange', me);
me.updateFreeSlots(free_slots, free_ie_slots); me.updateFreeSlots(free_slots, free_ie_slots);
me.updateDrives(valid_drives);
if (!use_cache) { if (!use_cache) {
Proxmox.Utils.setErrorMask(view); Proxmox.Utils.setErrorMask(view);