diff --git a/app/pods/protected/users/edit/controller.js b/app/pods/protected/users/edit/controller.js new file mode 100644 index 0000000..903eefd --- /dev/null +++ b/app/pods/protected/users/edit/controller.js @@ -0,0 +1,32 @@ +import Ember from 'ember'; + +export default Ember.Controller.extend({ + actions: { + save: function() { + let user = this.get('model'); + + if (user.get('hasDirtyAttributes')) { + user.save().then((user) => { + this.get('flashMessages').clearMessages(); + this.transitionToRoute('protected.users.show', user); + }, (err) => { + err.errors.forEach((error) => { + this.get('flashMessages').error(error.detail); + }); + }); + } 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); + }, + + }, +}); diff --git a/app/pods/protected/users/edit/route.js b/app/pods/protected/users/edit/route.js new file mode 100644 index 0000000..bc22dc0 --- /dev/null +++ b/app/pods/protected/users/edit/route.js @@ -0,0 +1,8 @@ +import Ember from 'ember'; + +export default Ember.Route.extend({ + model: function(params) { + return this.store.findRecord('user', params.user_id, { reload: true }); + }, + +}); diff --git a/app/pods/protected/users/edit/template.hbs b/app/pods/protected/users/edit/template.hbs new file mode 100644 index 0000000..68d66b4 --- /dev/null +++ b/app/pods/protected/users/edit/template.hbs @@ -0,0 +1,6 @@ +{{ + protected/users/user-form + user=model + save="save" + cancel="cancel" +}} diff --git a/app/pods/protected/users/user-form/component.js b/app/pods/protected/users/user-form/component.js new file mode 100644 index 0000000..a53a469 --- /dev/null +++ b/app/pods/protected/users/user-form/component.js @@ -0,0 +1,13 @@ +import Ember from 'ember'; + +export default Ember.Component.extend({ + actions: { + save: function() { + this.sendAction('save'); + }, + + cancel: function() { + this.sendAction('cancel'); + }, + } +}); diff --git a/app/pods/protected/users/user-form/template.hbs b/app/pods/protected/users/user-form/template.hbs new file mode 100644 index 0000000..60c2d77 --- /dev/null +++ b/app/pods/protected/users/user-form/template.hbs @@ -0,0 +1,32 @@ +<form class="grid-form" {{action 'save' on='submit'}}> + <fieldset> + <legend><em>{{user.name}}</em></legend> + <div data-row-span="1"> + <div data-field-span="1"> + <label>Name</label> + {{input value=user.name}} + </div> + </div> + <div data-row-span="1"> + <div data-field-span="1"> + <label>Email</label> + {{input value=user.email}} + </div> + </div> + <div data-row-span="1"> + <div data-field-span="1"> + <label>Role</label> + {{user.role}} + </div> + </div> + </fieldset> + <br> + <a class="button-red smaller" {{action 'cancel'}}> + Cancel + </a> + {{#if user.hasDirtyAttributes}} + <button type="submit" class="button-green smaller"> + Save + </button> + {{/if}} +</form>