36 lines
1.1 KiB
JavaScript
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');
|
|
},
|
|
},
|
|
});
|