From 079b2c59f61d8d048b15b9390e0ea8c0a2e63ae3 Mon Sep 17 00:00:00 2001 From: Matthew Dillon <mrdillon@alaska.edu> Date: Tue, 10 Nov 2015 09:22:35 -0700 Subject: [PATCH] Refactor user lockout/pw reset --- .../users/requestlockouthelp/controller.js | 15 ++++++++----- .../lockout-form/component.js | 18 +++++++++++++++ .../lockout-form/template.hbs | 18 +++++++++++++++ app/pods/users/requestlockouthelp/route.js | 8 ------- .../users/requestlockouthelp/template.hbs | 22 ++++--------------- 5 files changed, 49 insertions(+), 32 deletions(-) create mode 100644 app/pods/users/requestlockouthelp/lockout-form/component.js create mode 100644 app/pods/users/requestlockouthelp/lockout-form/template.hbs delete mode 100644 app/pods/users/requestlockouthelp/route.js diff --git a/app/pods/users/requestlockouthelp/controller.js b/app/pods/users/requestlockouthelp/controller.js index ccda273..2930b31 100644 --- a/app/pods/users/requestlockouthelp/controller.js +++ b/app/pods/users/requestlockouthelp/controller.js @@ -1,15 +1,18 @@ import Ember from 'ember'; import ajaxRequest from '../../../utils/ajax-request'; -export default Ember.Controller.extend({ - session: Ember.inject.service('session'), +const { Controller, inject: { service } } = Ember; + +export default Controller.extend({ + session: service(), + globals: service(), actions: { - save: function() { - let url = `${this.get('globals.apiURL')}/api/${this.get('globals.genus')}/users/lockout`; - let options = { + submit: function(email) { + const url = `${this.get('globals.apiURL')}/api/${this.get('globals.genus')}/users/lockout`; + const options = { method: 'POST', - data: { email: this.get('email') }, + data: { email: email }, }; ajaxRequest(url, options, this.get('session')); this.transitionToRoute('login'); diff --git a/app/pods/users/requestlockouthelp/lockout-form/component.js b/app/pods/users/requestlockouthelp/lockout-form/component.js new file mode 100644 index 0000000..2b7426f --- /dev/null +++ b/app/pods/users/requestlockouthelp/lockout-form/component.js @@ -0,0 +1,18 @@ +import Ember from 'ember'; + +const { Component } = Ember; + +export default Component.extend({ + email: null, + "on-submit": null, + + actions: { + save: function() { + return this.attrs["on-submit"](this.get('email')); + }, + + emailDidChange: function(value) { + this.set('email', value); + }, + } +}); diff --git a/app/pods/users/requestlockouthelp/lockout-form/template.hbs b/app/pods/users/requestlockouthelp/lockout-form/template.hbs new file mode 100644 index 0000000..5f18a09 --- /dev/null +++ b/app/pods/users/requestlockouthelp/lockout-form/template.hbs @@ -0,0 +1,18 @@ +<div class="grid-1"> + <div class="span-1"> + <fieldset> + <legend>Account Lockout/Password Reset</legend> + <form {{action 'save' on='submit'}}> + <ul> + <li> + <label>Email</label> + {{one-way-input type="text" class="email" value=email update=(action "emailDidChange")}} + </li> + <li> + <button type="submit" class="button-green smaller">Submit</button> + </li> + </ul> + </form> + </fieldset> + </div> +</div> diff --git a/app/pods/users/requestlockouthelp/route.js b/app/pods/users/requestlockouthelp/route.js deleted file mode 100644 index 19831b4..0000000 --- a/app/pods/users/requestlockouthelp/route.js +++ /dev/null @@ -1,8 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - deactivate: function() { - this.controller.set('email', null); - }, - -}); diff --git a/app/pods/users/requestlockouthelp/template.hbs b/app/pods/users/requestlockouthelp/template.hbs index 7cdd25f..c482b70 100644 --- a/app/pods/users/requestlockouthelp/template.hbs +++ b/app/pods/users/requestlockouthelp/template.hbs @@ -1,18 +1,4 @@ -<div class="grid-1"> - <div class="span-1"> - <fieldset> - <legend>Account Lockout/Password Reset</legend> - <form {{action 'save' on='submit'}}> - <ul> - <li> - <label>Email</label> - {{input value=email}} - </li> - <li> - <button type="submit" class="button-green smaller">Submit</button> - </li> - </ul> - </form> - </fieldset> - </div> -</div> +{{ + users/requestlockouthelp/lockout-form + on-submit=(action "submit") +}}