From 946fc0c50c04e6793eecbcdedda442991c8acca3 Mon Sep 17 00:00:00 2001
From: "mary.vtyurina" <mary.vtyurina@gmail.com>
Date: Sun, 5 Jul 2015 10:26:48 +0300
Subject: [PATCH] Authorization popup window improvements

* Auto focus to the login text field
* Authorization by pressing "Enter" button
* Changed window title
---
 media/js/profile.js                           | 66 ++++++++++++-------
 media/less/modal.less                         | 10 ++-
 ~dev_rating/application/views/popup/sign.twig |  5 +-
 3 files changed, 53 insertions(+), 28 deletions(-)

diff --git a/media/js/profile.js b/media/js/profile.js
index 5ae4b2787..bd659d612 100644
--- a/media/js/profile.js
+++ b/media/js/profile.js
@@ -2,6 +2,8 @@ $(function () {
     var jProfiler = $('#profileInfo').first();
     var isOpened = false;
     var flag = false;
+    var jLogin = $('#login');
+    var jPass = $('#password');
     // Показ профиля при нажатии
 
     $('#settingsButton').click(function () {
@@ -41,33 +43,12 @@ $(function () {
             type: "POST",
             url: URLdir + "handler/Session/closeSession",
             success: function (data) {
-
                 $('.popup_overlay').css('display', 'block');
-
-                $('#signin_b').click(function () {
-
-                    $.post(URLdir + 'handler/sign/in', {
-                            'login': $('#login').val(),
-                            'password': $.sha1($('#password').val())
-                        },
-                        function (data) {
-                            data = $.parseJSON(data);
-                            if (data.success === true) {
-                                $('.popup_overlay').css('display', 'none');
-                                //location.reload();
-                                setSessionTimer(15);
-                            }
-                            else {
-                                $('.auth_error').show();
-                            }
-                        });
-
-                });
+                jLogin.focus();
             }
         });
     }
 
-
     function setSessionTimer(time) {
         timer = setTimeout(function () {
             $.ajax({
@@ -78,7 +59,6 @@ $(function () {
                     wait = parseInt(data, 10);
                     if (wait <= 10) {
                         closeSession();
-                        return;
                     } else {
                         setSessionTimer(wait - 10);
                     }
@@ -89,4 +69,44 @@ $(function () {
 
     setSessionTimer(1);
 
+
+    function authorize(login, pass) {
+        $.post(URLdir + 'handler/sign/in', {
+                'login': login,
+                'password': $.sha1(pass)
+            },
+            function (data) {
+                data = $.parseJSON(data);
+                if (data.success) {
+                    $('.popup_overlay').hide();
+                    setSessionTimer(15);
+                } else {
+                    $('.auth_error').show();
+                }
+            });
+    }
+
+    function checkFieldsAndAuthorize() {
+        var login = jLogin.val();
+        var pass = jPass.val();
+
+        if (login.length > 0 && pass.length > 0) {
+            authorize(login, pass);
+        } else {
+            !login.length ? jLogin.focus() : jPass.focus();
+        }
+    }
+
+    jLogin.keypress(function (event) {
+        if (event.keyCode == 13)
+            checkFieldsAndAuthorize();
+    });
+
+    jPass.keypress(function (event) {
+        if (event.keyCode == 13)
+            checkFieldsAndAuthorize();
+    });
+
+    $('#signin_b').click(checkFieldsAndAuthorize);
+
 });
diff --git a/media/less/modal.less b/media/less/modal.less
index 130cc1672..c5769b087 100644
--- a/media/less/modal.less
+++ b/media/less/modal.less
@@ -6,6 +6,12 @@
   color: #aaaaaa;
 }
 
+.auth_title
+{
+  font-size: x-large;
+  margin-bottom: 0.5em;
+}
+
 .auth_form
 {
   padding: 3px;
@@ -74,7 +80,7 @@
   max-width: 300px;
   padding: 20px;
   border: 3px solid #fff;
-  border-radius: 10px;
+  border-radius: 7px;
   box-shadow: inset 0 1px 2px 1px rgba(0,0,0,.4);
   background: #fff;
   vertical-align: middle
@@ -111,4 +117,4 @@
     -webkit-transform: scale3d(1,1,1);
     -webkit-box-shadow: 0 3px 20px rgba(0,0,0,0.9);
   }
-}
\ No newline at end of file
+}
diff --git a/~dev_rating/application/views/popup/sign.twig b/~dev_rating/application/views/popup/sign.twig
index dbe1a0e6f..81ef324d6 100644
--- a/~dev_rating/application/views/popup/sign.twig
+++ b/~dev_rating/application/views/popup/sign.twig
@@ -1,8 +1,7 @@
 <div class="popup_overlay">
     <div class="popup">
         <form action="sign" method='POST' id='signin_f'>
-            <div class="session_info">Пожалуйста, авторизируйтесь заново</div>
-            <div class='auth_error'>Неправильный логин/E-Mail или пароль</div>
+            <div class='auth_title'>Авторизация</div>
             <div class='inputs'>
                 <div class="auth_form">
                     <input type="text" id="login" name="login" placeholder="Логин или E-Mail" value="">
@@ -21,4 +20,4 @@
             {{ HTML.anchor('sign/up', 'Активировать аккаунт')|raw }} | {{ HTML.anchor('remind', 'Забыли пароль?')|raw }}
         </div>
     </div>
-</div>
\ No newline at end of file
+</div>
-- 
GitLab