consul/ui-v2/app/mixins/kv/with-actions.js

36 lines
1.1 KiB
JavaScript

import Mixin from '@ember/object/mixin';
import { get, set } from '@ember/object';
import WithBlockingActions from 'consul-ui/mixins/with-blocking-actions';
export default Mixin.create(WithBlockingActions, {
// afterCreate just calls afterUpdate
afterUpdate: function(item, parent) {
const key = get(parent, 'Key');
if (key === '/') {
return this.transitionTo('dc.kv.index');
} else {
return this.transitionTo('dc.kv.folder', key);
}
},
afterDelete: function(item, parent) {
if (this.routeName === 'dc.kv.folder') {
return this.refresh();
}
return this._super(...arguments);
},
actions: {
invalidateSession: function(item) {
const controller = this.controller;
const repo = get(this, 'sessionRepo');
return get(this, 'feedback').execute(() => {
return repo.remove(item).then(() => {
const item = get(controller, 'item');
set(item, 'Session', null);
delete item.Session;
set(controller, 'session', null);
});
}, 'delete');
},
},
});