import computed from 'ember-addons/ember-computed-decorators'; export default Ember.Component.extend({ classNames: ['hook-event'], typeName: Ember.computed.alias('type.name'), @computed('typeName') name(typeName) { return I18n.t(`admin.web_hooks.${typeName}_event.name`); }, @computed('typeName') details(typeName) { return I18n.t(`admin.web_hooks.${typeName}_event.details`); }, @computed('model.[]', 'typeName') eventTypeExists(eventTypes, typeName) { return eventTypes.any(event => event.name === typeName); }, @computed('eventTypeExists') enabled: { get(eventTypeExists) { return eventTypeExists; }, set(value, eventTypeExists) { const type = this.get('type'); const model = this.get('model'); // add an association when not exists if (value !== eventTypeExists) { if (value) { model.addObject(type); } else { model.removeObjects(model.filter(eventType => eventType.name === type.name)); } } return value; } } });