import Ember from 'ember'; export default Ember.Component.extend({ classNames: ["grid-1", "gutter-50"], setup: function() { Ember.RSVP.hash({ species: this.store.findAll('species'), strains: this.store.findAll('strain'), characteristicTypes: this.store.findAll('characteristic-type'), characteristics: this.store.findAll('characteristic'), }).then((models) => { // Set up search parameters let selects = [ { model: 'species', id: 'id', text: 'speciesName', children: 'strains', cid: 'id', ctext: 'fullName' }, { model: 'characteristicTypes', id: 'id', text: 'characteristicTypeName', children: 'characteristics', cid: 'id', ctext: 'characteristicName' }, ]; selects.forEach((item /*, index, enumerable*/) => { models[item.model] = models[item.model].filter((i) => { if (!Ember.isEmpty(i.get(item.children))) { return true; } }); models[item.model] = models[item.model].sortBy(item.text); let temp = models[item.model].map((data) => { let temp_children = []; data.get(item.children).forEach((child) => { temp_children.push({id: child.get(item.cid), text: child.get(item.ctext)}); }); return { text: data.get(item.text), children: temp_children, }; }); this.set(item.model, temp); }); }); }.on('init'), actions: { search: function() { let strains = this.get('selectedStrains'), characteristics = this.get('selectedCharacteristics'); this.sendAction('search', strains, characteristics); }, }, });