Filter out volumes that don't match the chosen namespace

This commit is contained in:
Michael Lange 2020-04-03 19:18:06 -07:00
parent 62b7a07189
commit 62aa943a95

View file

@ -1,4 +1,5 @@
import { inject as service } from '@ember/service';
import { computed } from '@ember/object';
import { alias, readOnly } from '@ember/object/computed';
import Controller, { inject as controller } from '@ember/controller';
import SortableFactory from 'nomad-ui/mixins/sortable-factory';
@ -30,7 +31,23 @@ export default Controller.extend(
sortProperty: 'id',
sortDescending: false,
listToSort: alias('model'),
/**
Visible volumes are those that match the selected namespace
*/
visibleVolumes: computed('model.[]', 'model.@each.parent', function() {
if (!this.model) return [];
// Namespace related properties are ommitted from the dependent keys
// due to a prop invalidation bug caused by region switching.
const hasNamespaces = this.get('system.namespaces.length');
const activeNamespace = this.get('system.activeNamespace.id') || 'default';
return this.model
.compact()
.filter(volume => !hasNamespaces || volume.get('namespace.id') === activeNamespace);
}),
listToSort: alias('visibleVolumes'),
sortedVolumes: alias('listSorted'),
// TODO: Remove once this page gets search capability