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")
+}}