import Ember from 'ember'; import BaseListRoute from './base-list'; export default BaseListRoute.extend({ queryParams: { search: { refreshModel: true }, selectedId: { refreshModel: false }, idField: { refreshModel: false }, nameField: { refreshModel: false } }, setupController(controller) { controller.set('selectedModel', null); this._super(...arguments); }, actions: { select(it, selected) { let me = this; Ember.Logger.info('select: ', it, selected); if (selected) { me.set('controller.selectedId', it.id); me.set('controller.selectedModel', it); } else { me.set('controller.selectedId', ''); me.set('controller.selectedModel', null); } }, submit() { let me = this; let parentRouteName = me.getParentRouteName(); const parentModel = me.modelFor(parentRouteName); let itId = me.get('controller.selectedId'); if (itId) { let it = me.get('controller.selectedModel'); if (it) { Ember.Logger.info('select: ', it); Ember.set(parentModel, me.get('controller.idField'), itId); Ember.set(parentModel, me.get('controller.nameField'), it.name); } } // not select else { Ember.set(parentModel, me.get('controller.idField'), ''); Ember.set(parentModel, me.get('controller.nameField'), ''); } me.transitionTo(parentRouteName); } }, getParentRouteName() { return this.get('parentRouteName') || this.get('routeName').replace(/\.[^.]+$/, ''); } });