Refactored users/edit
This commit is contained in:
parent
b742ddbb51
commit
1dd0910ed1
13 changed files with 92 additions and 65 deletions
|
@ -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',
|
||||
});
|
||||
|
|
|
@ -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);
|
||||
},
|
||||
|
||||
});
|
||||
|
|
|
@ -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")
|
||||
}}
|
||||
|
|
Reference in a new issue