open-vault/ui/app/controllers/vault/cluster/policies/index.js
Chelsea Shaw 698a652a92
UI: Remove Wizard (#19220)
* Remove UI Wizard temporarily [GH-19000]
2023-02-16 22:44:33 +00:00

70 lines
1.8 KiB
JavaScript

import { inject as service } from '@ember/service';
import { computed } from '@ember/object';
import Controller from '@ember/controller';
export default Controller.extend({
flashMessages: service(),
queryParams: {
page: 'page',
pageFilter: 'pageFilter',
},
filter: null,
page: 1,
pageFilter: null,
filterFocused: false,
// set via the route `loading` action
isLoading: false,
filterMatchesKey: computed('filter', 'model', 'model.[]', function () {
var filter = this.filter;
var content = this.model;
return !!(content && content.length && content.findBy('id', filter));
}),
firstPartialMatch: computed('filter', 'model', 'model.[]', 'filterMatchesKey', function () {
var filter = this.filter;
var content = this.model;
if (!content) {
return;
}
var filterMatchesKey = this.filterMatchesKey;
var re = new RegExp('^' + filter);
return filterMatchesKey
? null
: content.find(function (key) {
return re.test(key.get('id'));
});
}),
actions: {
setFilter: function (val) {
this.set('filter', val);
},
setFilterFocus: function (bool) {
this.set('filterFocused', bool);
},
deletePolicy(model) {
const policyType = model.get('policyType');
const name = model.id;
const flash = this.flashMessages;
model
.destroyRecord()
.then(() => {
// this will clear the dataset cache on the store
this.send('reload');
flash.success(`${policyType.toUpperCase()} policy "${name}" was successfully deleted.`);
})
.catch((e) => {
const errors = e.errors ? e.errors.join('') : e.message;
flash.danger(
`There was an error deleting the ${policyType.toUpperCase()} policy "${name}": ${errors}.`
);
});
},
},
});