Refactored users/edit

This commit is contained in:
Matthew Dillon 2015-11-06 11:20:28 -07:00
parent b742ddbb51
commit 1dd0910ed1
13 changed files with 92 additions and 65 deletions

View file

@ -1,40 +1,10 @@
import Ember from 'ember';
import ajaxError from '../../../../utils/ajax-error';
import SaveModel from '../../../../mixins/save-model';
export default Ember.Controller.extend({
actions: {
save: function() {
let user = this.get('model');
const { Controller } = Ember;
if (user.get('hasDirtyAttributes')) {
let attrs = user.changedAttributes(), roleChanged = false;
if (attrs.role) {
roleChanged = true;
}
user.save().then((user) => {
this.get('flashMessages').clearMessages();
if (roleChanged) {
// Need to clear the store so that canEdit and canAdd
// attributes reflect the new role.
this.get('store').unloadAll();
}
this.transitionToRoute('protected.users.show', user);
}, () => {
ajaxError(user.get('errors'), this.get('flashMessages'));
});
} else {
this.transitionToRoute('protected.users.show', user);
}
},
cancel: function() {
let user = this.get('model');
user.get('errors').clear();
user.rollbackAttributes();
this.transitionToRoute('protected.users.show', user);
},
},
export default Controller.extend(SaveModel, {
// Required for SaveModel mixin
fallbackRouteSave: 'protected.users.show',
fallbackRouteCancel: 'protected.users.show',
});

View file

@ -1,8 +1,12 @@
import Ember from 'ember';
export default Ember.Route.extend({
currentUser: Ember.inject.service('session-account'),
const { Route, inject: { service } } = Ember;
export default Route.extend({
currentUser: service('session-account'),
// Not using ElevatedAccess Mixin because the rules for viewing user accounts
// is slightly different.
beforeModel: function(transition) {
this._super(transition);
@ -16,7 +20,7 @@ export default Ember.Route.extend({
},
model: function(params) {
return this.store.findRecord('user', params.user_id, { reload: true });
return this.store.findRecord('user', params.user_id);
},
});

View file

@ -1,7 +1,6 @@
{{
protected/users/user-form
user=model
currentUser=currentUser.account
save="save"
cancel="cancel"
on-save=(action "save")
on-cancel=(action "cancel")
}}