From 39ae3869a14e1c2d571cf1c2d7f997e777e3e202 Mon Sep 17 00:00:00 2001
From: Peter Szel <peter_szel@epam.com>
Date: Sat, 29 Mar 2014 02:02:23 +0100
Subject: [PATCH] Added fancy fade-in effect and autofocus to the login pages
 (signin, signup, forgotten, reset).

- Added CSS to implement the fade in effect.
- Added 'autofocus' to the attribute bindings of the TextField so they accept it.
---
 core/client/app.js                     |  1 +
 core/client/assets/css/ember-hacks.css | 39 ++++++++++++++++++++++++++
 core/client/templates/forgotten.hbs    |  4 +--
 core/client/templates/reset.hbs        |  4 +--
 core/client/templates/signin.hbs       |  4 +--
 core/client/templates/signup.hbs       |  4 +--
 core/client/utils/text-field.js        |  3 ++
 7 files changed, 51 insertions(+), 8 deletions(-)
 create mode 100644 core/client/utils/text-field.js

diff --git a/core/client/app.js b/core/client/app.js
index ecee1b0e4f..b7160f4698 100755
--- a/core/client/app.js
+++ b/core/client/app.js
@@ -2,6 +2,7 @@ import Resolver from 'ember/resolver';
 import initFixtures from 'ghost/fixtures/init';
 import {currentUser, injectCurrentUser} from 'ghost/initializers/current-user';
 import 'ghost/utils/link-view';
+import 'ghost/utils/text-field';
 
 var App = Ember.Application.extend({
     /**
diff --git a/core/client/assets/css/ember-hacks.css b/core/client/assets/css/ember-hacks.css
index c51698f1c1..ecd98ecffa 100644
--- a/core/client/assets/css/ember-hacks.css
+++ b/core/client/assets/css/ember-hacks.css
@@ -17,4 +17,43 @@
     -webkit-transition: none;
     -moz-transition: none;
     transition: none;
+}
+
+.fade-in {
+    animation: fadein 0.5s;
+    -moz-animation: fadein 0.5s; /* Firefox */
+    -webkit-animation: fadein 0.5s; /* Safari and Chrome */
+    -o-animation: fadein 0.5s; /* Opera */
+}
+@keyframes fadein {
+    from {
+        opacity:0;
+    }
+    to {
+        opacity:1;
+    }
+}
+@-moz-keyframes fadein { /* Firefox */
+    from {
+        opacity:0;
+    }
+    to {
+        opacity:1;
+    }
+}
+@-webkit-keyframes fadein { /* Safari and Chrome */
+    from {
+        opacity:0;
+    }
+    to {
+        opacity:1;
+    }
+}
+@-o-keyframes fadein { /* Opera */
+    from {
+        opacity:0;
+    }
+    to {
+        opacity: 1;
+    }
 }
\ No newline at end of file
diff --git a/core/client/templates/forgotten.hbs b/core/client/templates/forgotten.hbs
index 833db5f620..4fde70da52 100644
--- a/core/client/templates/forgotten.hbs
+++ b/core/client/templates/forgotten.hbs
@@ -1,7 +1,7 @@
-<section class="forgotten-box js-forgotten-box">
+<section class="forgotten-box js-forgotten-box fade-in">
     <form id="forgotten" class="forgotten-form" method="post" novalidate="novalidate" {{action "submit" on="submit"}}>
         <div class="email-wrap">
-            {{input value=email class="email" type="email" placeholder="Email Address" name="email" autocapitalize="off" autocorrect="off"}}
+            {{input value=email class="email" type="email" placeholder="Email Address" name="email" autofocus="autofocus" autocapitalize="off" autocorrect="off"}}
         </div>
         <button class="button-save" type="submit">Send new password</button>
     </form>
diff --git a/core/client/templates/reset.hbs b/core/client/templates/reset.hbs
index b41c1bdbfb..a255a11fe3 100644
--- a/core/client/templates/reset.hbs
+++ b/core/client/templates/reset.hbs
@@ -1,7 +1,7 @@
-<section class="reset-box js-reset-box">
+<section class="reset-box js-reset-box fade-in">
     <form id="reset" class="reset-form" method="post" novalidate="novalidate" {{action "submit" on="submit"}}>
         <div class="password-wrap">
-            {{input value=passwords.newPassword class="password" type="password" placeholder="Password" name="newpassword" }}
+            {{input value=passwords.newPassword class="password" type="password" placeholder="Password" name="newpassword" autofocus="autofocus" }}
         </div>
         <div class="password-wrap">
             {{input value=passwords.ne2Password class="password" type="password" placeholder="Confirm Password" name="ne2password" }}
diff --git a/core/client/templates/signin.hbs b/core/client/templates/signin.hbs
index 67835bccf8..13813a0dfb 100644
--- a/core/client/templates/signin.hbs
+++ b/core/client/templates/signin.hbs
@@ -1,7 +1,7 @@
-<section class="login-box js-login-box" style="opacity: 1;">
+<section class="login-box js-login-box fade-in">
     <form id="login" class="login-form" method="post" novalidate="novalidate">
         <div class="email-wrap">
-            {{input class="email" type="email" placeholder="Email Address" name="email" autocapitalize="off" autocorrect="off" value=email}}
+            {{input class="email" type="email" placeholder="Email Address" name="email" autofocus="autofocus" autocapitalize="off" autocorrect="off" value=email}}
         </div>
         <div class="password-wrap">
             {{input class="password" type="password" placeholder="Password" name="password" value=password}}
diff --git a/core/client/templates/signup.hbs b/core/client/templates/signup.hbs
index 39d2ff7cf8..c1143d6384 100644
--- a/core/client/templates/signup.hbs
+++ b/core/client/templates/signup.hbs
@@ -1,7 +1,7 @@
-<section class="signup-box js-signup-box">
+<section class="signup-box js-signup-box fade-in">
     <form id="signup" class="signup-form" method="post" novalidate="novalidate">
         <div class="name-wrap">
-            <input class="name" type="text" placeholder="Full Name" name="name" autocorrect="off" />
+            <input class="name" type="text" placeholder="Full Name" name="name" autofocus autocorrect="off" />
         </div>
         <div class="email-wrap">
             <input class="email" type="email" placeholder="Email Address" name="email" autocapitalize="off" autocorrect="off" />
diff --git a/core/client/utils/text-field.js b/core/client/utils/text-field.js
new file mode 100644
index 0000000000..6862aacf88
--- /dev/null
+++ b/core/client/utils/text-field.js
@@ -0,0 +1,3 @@
+Ember.TextField.reopen({
+    attributeBindings: ['autofocus']
+});