open-vault/ui/lib/kmip/addon/components/edit-form-kmip-role.js

46 lines
1.4 KiB
JavaScript

import EditForm from 'core/components/edit-form';
import { computed } from '@ember/object';
import layout from '../templates/components/edit-form-kmip-role';
export default EditForm.extend({
layout,
model: null,
cancelLink: computed('cancelLinkParams.[]', function () {
if (!Array.isArray(this.cancelLinkParams) || !this.cancelLinkParams.length) return;
const [route, ...models] = this.cancelLinkParams;
return { route, models };
}),
init() {
this._super(...arguments);
if (this.model.isNew) {
this.model.operationAll = true;
}
},
actions: {
toggleOperationSpecial(checked) {
this.model.operationNone = !checked;
this.model.operationAll = checked;
},
// when operationAll is true, we want all of the items
// to appear checked, but we don't want to override what items
// a user has selected - so this action creates an object that we
// pass to the FormField component as the model instead of the real model
placeholderOrModel(isOperationAll, attr) {
return isOperationAll ? { [attr.name]: true } : this.model;
},
preSave(model) {
// if we have operationAll or operationNone, we want to clear
// out the others so that display shows the right data
if (model.operationAll || model.operationNone) {
model.operationFieldsWithoutSpecial.forEach((field) => model.set(field, null));
}
},
},
});