ui/lib/shared/addon/components/modal-confirm-deactivate/component.js

85 lines
2.5 KiB
JavaScript

import { computed, get } from '@ember/object';
import { inject as service } from '@ember/service';
import { alias } from '@ember/object/computed';
import Component from '@ember/component';
import { alternateLabel } from 'ui/utils/platform';
import ModalBase from 'shared/mixins/modal-base';
import layout from './template';
import $ from 'jquery';
export default Component.extend(ModalBase, {
intl: service(),
layout,
classNames: ['medium-modal', 'modal-logs'],
alternateLabel,
originalModel: alias('modalService.modalOpts.originalModel'),
batchModels: alias('modalService.modalOpts.batchModels'),
action: alias('modalService.modalOpts.action'),
didRender() {
setTimeout(() => {
try {
$('BUTTON')[0].focus();
} catch (e) {}
}, 500);
},
actions: {
confirm() {
const multi = this.get('batchModels');
// If there are multiple items, go through each
if (multi && multi.length) {
multi.forEach((model) => {
model.send(this.get('action'));
});
} else {
this.get('originalModel').send(this.get('action'));
}
this.send('cancel');
},
},
list: computed('originalModel', 'batchModels', function() {
const multi = this.get('batchModels');
if (multi && multi.length) {
return multi.map((v) => v.displayName).sort().join(', ');
}
return this.get('originalModel').displayName;
}),
isNodeDriver: computed('originalModel.type', function() {
return get(this, 'originalModel.type') === 'nodeDriver';
}),
isClusterDriver: computed('originalModel.type', function() {
return get(this, 'originalModel.type') === 'kontainerDriver';
}),
isService: computed('originalModel.type', 'intl.locale', function() {
let type = this.get('originalModel.type');
let out = {};
let intl = this.get('intl');
switch (type) {
case 'project':
out.message = intl.t('modalConfirmDeactivate.buttons.project.message');
out.button = intl.t('modalConfirmDeactivate.buttons.project.button');
break;
case 'environment':
out.message = intl.t('modalConfirmDeactivate.buttons.environment.message');
out.button = intl.t('modalConfirmDeactivate.buttons.environment.button');
break;
default:
out.message = intl.t('modalConfirmDeactivate.buttons.default.message');
out.button = intl.t('modalConfirmDeactivate.buttons.default.button');
break;
}
return out;
}),
});