import Ember from 'ember'; import BaseEditRoute from '../base-edit'; export default BaseEditRoute.extend({ issueService: Ember.inject.service('customer-issue/service'), afterModel(model) { let me = this; me.set('breadcrumbs', [{route: 'customer.list', params: 1, text: 'Customers'}, {text: 'Show Customer [' + model.id + ']'}]); if (model.applications) { model.applicationsArray = model.applications.split(','); model.applicationList.forEach(a => { a.selected = model.applicationsArray.includes(a.id); }); } else { model.applicationsArray = []; } Ember.addObserver(model, 'applicationsArray', function() { Ember.Logger.info('Model application changed: ', model); model.applications = model.applicationsArray.join(','); // me.get('service').update(model, true); }); Ember.addObserver(model, 'status', function() { Ember.Logger.info('Model status changed: ', model); if (model.status) { model.applications = model.applicationsArray.join(','); // me.get('service').update(model, true); } }); Ember.set(model, 'userAccounts', Ember.get(model, 'users').mapBy('account').join(', ')); }, actions: { removeIssue(issue) { let me = this; me.get('dialog').confirm('Are you sure to remove customer comment?', () => { Ember.set(issue, 'enabled', false); me.get('issueService').update(issue).then(() => { me.get('message').alert('Comment removed'); me.get('controller.model.issues').removeObject(issue); }); }); }, backToList() { const me = this; const url = me.get('state.CUSTOMER_LIST_ROUTE'); if (url) { me.transitionTo(url); } else { me.transitionTo('customer.list', 1); } }, update() { const me = this; me.get('dialog').confirm('Are you sure to update?', () => { me.get('service').update(me.get('controller.model'), false).then(() => { me.get('message').alert('Update successfully'); me.send('backToList'); }); }); } } });