подгружаемое меню user для меню и все варианты его обработки
This commit is contained in:
2
oknardia/templates/user_manager/captcha.html
Executable file
2
oknardia/templates/user_manager/captcha.html
Executable file
@@ -0,0 +1,2 @@
|
||||
<script src="//www.google.com/recaptcha/api.js?hl=ru&" async defer></script>
|
||||
<div class="g-recaptcha" data-sitekey="6Lf87gQTAAAAALmkG5ZsO0eJSvdSXcRvkxoPJCDB" data-type="image" data-theme="light"></div>
|
||||
130
oknardia/templates/user_manager/login-logout.html
Executable file
130
oknardia/templates/user_manager/login-logout.html
Executable file
@@ -0,0 +1,130 @@
|
||||
{% load static %}{% comment %}
|
||||
|
||||
ШАБЛОН LOGIN-LOGOUT
|
||||
Во избежании высоких нагрузок на сервер и для ускорения загрузки страницы
|
||||
организована AJAX-подгрузка блока LOGIN-LOGOUT на уровне фронтенда (клиента).
|
||||
|
||||
Кеширование этого блока (и запросов с ним связанным) позволит снизить нагрузки.
|
||||
|
||||
В дальнейшем, в случае высоких нагрузок на сервис, возможна простая деградация
|
||||
с помощью отключения этого блока. Также возможен перенос исполнения функционала
|
||||
LOGIN-LOGOUT на отдельный сервер.
|
||||
|
||||
Даннеа Google reCAPTCHA: https://www.google.com/recaptcha/admin#site/319090428?setup
|
||||
Публичный Ключ: 6Lf87gQTAAAAALmkG5ZsO0eJSvdSXcRvkxoPJCDB
|
||||
Секретный ключ: 6Lf87gQTAAAAADlqsJQToiWqg7urOWPrbfG_9zJB
|
||||
|
||||
{% endcomment %}
|
||||
<script type="text/javascript">
|
||||
$.ajaxSetup({ cache: true , dataType: 'script' }); // включить кеширование подгружаемых JS-скриптов
|
||||
$.getScript ( "{% static 'js/login_out.js' %}" ); // подгрузить JS-скрипт
|
||||
|
||||
</script>
|
||||
{% if LOGGED_USER != "" %}<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-user"></span> {{ user.username|truncatechars:12 }} <b class="caret"></b></a>
|
||||
<ul class="form-group form-group-sm dropdown-menu nav navbar-nav navbar-right" role="menu">
|
||||
<form id="logout-form">{% csrf_token %}
|
||||
<input type="hidden" name="status" value="" id="status">
|
||||
<div class="input-group">
|
||||
<a href="#">Настройки пользователя
|
||||
<span class="glyphicon glyphicon-cog pull-right"></span></a>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<a href="#">Статистика
|
||||
<span class="glyphicon glyphicon-stats pull-right"></span></a>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<a href="#">Отслеживается запросов
|
||||
<small class="badge pull-right"> 2 </small></a>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<a href="#">Новых предложений
|
||||
<small class="badge pull-right"> 42 </small></a>
|
||||
</div>
|
||||
<div class="input-group" style="border:none;">
|
||||
<button type="submit" class="btn btn-default btn-sm pull-right" name="logout" onclick="$('#status').val('logout');">Выйти <span class="glyphicon glyphicon-log-out"></span></button>
|
||||
</div>
|
||||
</form>
|
||||
</ul>
|
||||
{% else %}<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="in_ntr();" rel="nofollow"><span class="glyphicon glyphicon-user"></span> Вход <b class="caret"></b></a>
|
||||
<ul class="form-group form-group-sm dropdown-menu nav navbar-nav navbar-right" role="menu">
|
||||
<form id="login-reg-restore-form">{% csrf_token %}
|
||||
<input type="hidden" name="status" value="" id="status">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
|
||||
<input type="text" class="form-control" id="username" name="username" placeholder="login" />
|
||||
<span class="input-group-addon check-it">
|
||||
<i class="glyphicon glyphicon-ok-sign" id="valid-username"></i>
|
||||
</span>
|
||||
</div>
|
||||
<dIV class="collapse" id="ili">
|
||||
<small class="input-group">или<br/></small>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="mail">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">@</span>
|
||||
<input type="email" class="form-control" id="email" name="email" placeholder="you@email.ru" />
|
||||
<span class="input-group-addon check-it">
|
||||
<i class="glyphicon glyphicon-ok-sign" id="valid-email"></i>
|
||||
</span>
|
||||
</div>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="pwd1">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><small class="glyphicon glyphicon-lock"></small></span>
|
||||
<input type="password" class="form-control" id="password" name="password" placeholder="password" data-toggle="popover" />
|
||||
<span class="input-group-addon check-it">
|
||||
<i class="glyphicon glyphicon-ok-sign" id="valid-password"></i>
|
||||
</span>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" id="look_pwd1" type="button"><small><small class="glyphicon glyphicon-eye-open"></small></small></button>
|
||||
</span>
|
||||
</div>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="pwd_comment">
|
||||
<i class="glyphicon glyphicon-info-sign"></i> <span id="pwd_comment_text"><!--- Содержимое этого блока будет подменяться во время набора и валидации пароля --->Шесть (или более) букв (прописных и строчных) и цифр</span>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="pwd2">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><small class="glyphicon glyphicon-lock"></small></span>
|
||||
<input type="password" class="form-control" id="password_repeat" name="password_repeat" placeholder="повторите passport" />
|
||||
<span class="input-group-addon check-it">
|
||||
<i class="glyphicon glyphicon-ok-sign" id="valid-password-repeat"></i>
|
||||
</span>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" id="look_pwd2" type="button"><small><small class="glyphicon glyphicon-eye-open"></small></small></button>
|
||||
</span>
|
||||
</div>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="capt">
|
||||
<div class="input-group" id="captcha"><!---сюда по onclick="$('#captcha').load('/captcha');" подгрузится капча ---></div>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="b_vhod">
|
||||
<div class="input-group"><nobr>
|
||||
<button type="submit" class="btn btn-primary btn-sm" name="enter" onclick="$('#status').val('enter');">Войти</button>
|
||||
<small>
|
||||
<a href="#" data-toggle="collapse" data-target="#b_reg" onclick="in_reg();" rel="nofollow">Регистрация</a>
|
||||
<a href="#" data-toggle="collapse" data-target="#b_vost" onclick="in_vost();" rel="nofollow">Воcстановить пароль</a>
|
||||
</small>
|
||||
</nobr></div>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="b_vost">
|
||||
<div class="input-group"><nobr>
|
||||
<button type="submit" class="btn btn-primary btn-sm" name="restore" id="restore" onclick="$('#status').val('restore');">Восстановить пароль</button>
|
||||
<small>
|
||||
<a href="#" data-toggle="collapse" data-target="#b_reg" onclick="in_reg();" rel="nofollow">Регистрация</a>
|
||||
<a href="#" data-toggle="collapse" data-target="#b_vhod" onclick="in_ntr();" rel="nofollow">Войти</a>
|
||||
</small>
|
||||
</nobr></div>
|
||||
</dIV>
|
||||
<dIV class="collapse" id="b_reg">
|
||||
<div class="input-group"><nobr>
|
||||
<button type="submit" class="btn btn-default btn-sm" name="registration" onclick="$('#status').val('registration');"><i class="glyphicon glyphicon-ok"></i> Регистрация</button>
|
||||
<small>
|
||||
<a href="#" data-toggle="collapse" data-target="#b_vhod" onclick="in_ntr();" rel="nofollow">Войти</a>
|
||||
<a href="#" data-toggle="collapse" data-target="#b_vost" onclick="in_vost();" rel="nofollow">Воcстановить пароль</a>
|
||||
</small>
|
||||
</nobr></div>
|
||||
</dIV>
|
||||
</form>
|
||||
</ul>
|
||||
{% endif %}
|
||||
86
oknardia/templates/user_manager/login-logout_after.html
Executable file
86
oknardia/templates/user_manager/login-logout_after.html
Executable file
@@ -0,0 +1,86 @@
|
||||
{% load static %}{% comment %}
|
||||
ШАБЛОН LOGIN-LOGOUT-AFTER
|
||||
|
||||
Все что происходит после того как щелкунули кнопки:
|
||||
[[login]], [[регистрация]], [[восстановить пароль]]
|
||||
и перед тем как блок '#login-logout' перегрузится в следующее состояние.
|
||||
|
||||
Фоновые картинки брать здесь: http://www.loadinfo.net/
|
||||
{% endcomment %}
|
||||
<script type="text/javascript">
|
||||
function refresh() { $('#login-logout').load('/login-logout' ); }
|
||||
$(document).ready(function(){
|
||||
setTimeout("refresh();", {{ DELAY|default:5000 }});
|
||||
});
|
||||
</script>
|
||||
{% if STATUS == "NO_CAPTCHA" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ ВОССТАНОВЛЕНИИ ПАРОЛЯ НЕ ПРОШЕЛ CAPTCHA --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color: red;"></span> Или вы робот, или не ввели captcha</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "LOGOUT" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ РАЗЛОГИРУЕТСЯ --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-refresh" style="color:green;"></span> До свиданья</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "GOOD_LOGIN" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ НЕ УГАДАЛ ЛОГИН --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ok-sign" style="color:green;"></span> Вхожу</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "SHORT_PWD" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ РЕГИСТРАЦИИ УКАЗАЛ НЕДОСТАТОЧНО ДЛИННЫЙ ПАРОЛЬ --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> Слишком короткий пароль при регистрации</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "PWD1_AND_PWD2_DIFFERENT" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ РЕГИСТРАЦИИ НЕ СМОГ ПОВТОРИТЬ ПАРОЛЬ В ПРОВЕРОЧНОМ ПОЛЕ --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> Основной и проверочный пароль не совпадают</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "DOUBLE_USER" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ РЕГИСТРАЦИИ ВЫБРАЛ УЖЕ СУЩЕСТВУЮЩИЙ USERNAME --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> Пользователь с этим именем уже зарегистрирован</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "NO_USER4RESTORE" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ ВОССТАНОВЛЕНИИ ПАРОЛЯ УКАЗАЛ НЕСУЩЕСТВУЮЩИЙ USERNAME --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> Логин {{ USERNAME|default:"с таким именем" }} не существует</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "NO_MULTIPLE_EMAIL" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ ВОССТАНОВЛЕНИИ УКАЗАЛ EMAIL, НА КОТОРЫЙ ЗЕРЕГИСТРИРОАННО НЕСКОЛЬКО USERNAME --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> На email {{ EMAIL|default:"" }} зарегистрировано несколько пользователей.</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "NO_EMAIL4RESTORE" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЬ ПРИ ВОССТАНОВЛЕНИИ С ТАКИМ EMAIL НЕ ОБНАРУЖЕН --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> Пользователся с email {{ EMAIL|default:"" }} не обнаружено.</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% elif STATUS == "RESTORE_MAIL_SENT" %}
|
||||
<!--- ПОЛЬЗОВАТЕЛЮ ПРИ ВОССТАНОВЛЕНИИ ОТПРАВЛЕН EMAIL С ИНСТРУКЦИЯМИ --->
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="btn-default">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="refresh();" style="background-image: url({% static 'img/in_progress_grey1.gif' %});background-repeat: no-repeat;background-size: 100% 100%;"><span class="glyphicon glyphicon-ban-circle" style="color:red;"></span> Письмо для воммтановления пароля отправлено на email {{ EMAIL|default:"" }}.</a>
|
||||
</li>
|
||||
</ul>{% endif %}
|
||||
|
||||
11
oknardia/templates/user_manager/popup_change_password_ok.html
Executable file
11
oknardia/templates/user_manager/popup_change_password_ok.html
Executable file
@@ -0,0 +1,11 @@
|
||||
{% load static %}
|
||||
<script type="text/javascript">
|
||||
if ( document.getElementById("box") == null ) window.location.replace("/"); // проверяем, а не вызвали-ли этот popup отдельно
|
||||
$(document).ready(function(){
|
||||
timerId = setTimeout("$('#box').load('/center_popup_main');", 2000 ); // перегрухить центральный блок
|
||||
$('#login-logout').load('/login-logout' ); // перегрузить блок login-logout
|
||||
});
|
||||
</script>
|
||||
<h1>Пароль изменен</h1>
|
||||
<ul>
|
||||
<a type="button" class="btn btn-default" style="margin:1ex" onclick="clearTimeout(timerId);$('#box').load('/center_popup_main');"> Ок <span class="glyphicon glyphicon-remove-sign"></span> </a>
|
||||
12
oknardia/templates/user_manager/popup_cofirm_email_ok.html
Executable file
12
oknardia/templates/user_manager/popup_cofirm_email_ok.html
Executable file
@@ -0,0 +1,12 @@
|
||||
{% load static %}
|
||||
<script type="text/javascript">
|
||||
if ( document.getElementById("box") == null ) window.location.replace("/"); // проверяем, а не вызвали-ли этот popup отдельно
|
||||
$(document).ready(function(){ timerId = setTimeout("clearTimeout(timerId);$('#box').load('/center_popup_main');", 12000 ); });
|
||||
</script>
|
||||
|
||||
<h1>Спасибо, вы подтвердили регистрацию:</h1>
|
||||
<ul>
|
||||
<li>пользователь: <strong>{{ USER }}</strong></li>
|
||||
<li>e-mail: <strong>{{ EMAIL }}</strong></li>
|
||||
</ul>
|
||||
<a type="button" class="btn btn-default" style="margin:1ex" onclick="$('#box').load('/center_popup_main');"> Ок <span class="glyphicon glyphicon-ok-sign"></span> </a>
|
||||
@@ -0,0 +1,19 @@
|
||||
{% load static %}<script type="text/javascript">
|
||||
if ( document.getElementById("box") == null ) window.location.replace("/"); // проверяем, а не вызвали-ли этот popup отдельно
|
||||
$(document).ready(function(){ timerId = setTimeout("$('#box').load('/center_popup_main');", 12000 ); });
|
||||
</script>
|
||||
<h1>Ошибка обработки:</h1>
|
||||
<ul>
|
||||
{% if CONFIRM_BAD_USER_ID == "YES" %}<li><strong class="bg-danger">ERR#010:</strong> Неверный userID</li>{% endif %}
|
||||
{% if NO_USERNAME4CHANGE == "YES" %}<li><strong class="bg-danger">ERR#011:</strong> UserName для этого пользователя <i>({{ USERNAME }})</i> не совпадает с находящимся в базе</li>{% endif %}
|
||||
{% if NO_EMAIL4CHANGE == "YES" %}<li><strong class="bg-danger">ERR#012:</strong> Email для этого пользователя ({{ EMAIL }}) не совпадает с находящимся в базе</li>{% endif %}
|
||||
{% if NO_PWDSDIF4CHANGE == "YES" %}<li><strong class="bg-danger">ERR#013:</strong> Поля «password» и «повторите pessword» не совпадают</li>{% endif %}
|
||||
{% if NO_PWDSHOT4CHANGE == "YES" %}<li><strong class="bg-danger">ERR#014:</strong> Введен «password» короче 5 знаков</li>{% endif %}
|
||||
{% if CONFIRM_BAD_HASH == "YES" %}<li><strong class="bg-danger">ERR#019:</strong> Ошибка в проверочном хеше</li>{% endif %}
|
||||
{% if CONFIRM_BAD_BAD == "YES" %}<li><strong class="bg-danger">ERR#_†_:</strong> Что-то пошло не так... и вообще не ясно почему. Как вы этого добились?!</li>{% endif %}
|
||||
</ul>
|
||||
<a type="button" class="btn btn-default" style="margin:1ex" onclick="clearTimeout(timerId);$('#box').load('/center_popup_main');"> Ок <span class="glyphicon glyphicon-remove-sign"></span> </a>
|
||||
|
||||
|
||||
|
||||
|
||||
174
oknardia/templates/user_manager/popup_restore_pasword_form.html
Executable file
174
oknardia/templates/user_manager/popup_restore_pasword_form.html
Executable file
@@ -0,0 +1,174 @@
|
||||
{% load static %}
|
||||
<script type="text/javascript">
|
||||
// этот скрипт не имеет смысл делать внешним и выносить в static
|
||||
// он высывается только когда пользователь восстанавливает пароль, а это случается крайне редко
|
||||
if ( document.getElementById("box") == null ) window.location.replace("/"); // проверяем, а не вызвали-ли этот popup отдельно
|
||||
$('#pwd_commentA').collapse('hide');
|
||||
$(document).ready(function(){
|
||||
// ПОДСВЕТИТЬ ПОДСКАЗКУ ПРИ НАБОРЕ ПАРОЛЯ
|
||||
$("#passwordA").focus(function(){ $('#pwd_commentA').collapse('show'); });
|
||||
$("#passwordA").blur(function(){ $('#pwd_commentA').collapse('hide'); });
|
||||
// КНОПОЧКИ "ПОДГЛЯДИЕТЬ ПАРОЛЬ" на основном поле
|
||||
$("#look_pwd1A").mousedown(function() { $("#passwordA").attr('type', 'text'); });
|
||||
$("#look_pwd1A").mouseup(function() { $("#passwordA").attr('type', 'password'); });
|
||||
$("#look_pwd1A").mouseout(function() { $("#passwordA").attr('type', 'password'); });
|
||||
// КНОПОЧКИ "ПОДГЛЯДИЕТЬ ПАРОЛЬ" на поле "ПОВТОРИТЬ PASSWORD"
|
||||
$("#look_pwd2A").mousedown(function() { $("#passwordA").attr('type', 'text'); $("#password_repeatA").attr('type', 'text'); });
|
||||
$("#look_pwd2A").mouseup(function() { $("#passwordA").attr('type', 'password'); $("#password_repeatA").attr('type', 'password'); });
|
||||
$("#look_pwd2A").mouseout(function() { $("#passwordA").attr('type', 'password'); $("#password_repeatA").attr('type', 'password'); });
|
||||
// ПРОВЕРКА КОНТРОЛЬНОГО ПАРОЛЯ
|
||||
$("#password_repeatA").keyup(function(){
|
||||
if( $(this).val() != '')
|
||||
if( $(this).val() == $('#passwordA').val() ) $("#valid-password-repeatA").css({ "color": "green" });
|
||||
else $("#valid-password-repeatA").css({ "color": "red" });
|
||||
else $("#valid-password-repeatA").css({ "color": "white" });
|
||||
});
|
||||
// ПРОВЕРКА КАЧЕСТВА ПАРОЛЯ
|
||||
$("#passwordA").keyup(function(){
|
||||
var ucase = new RegExp("[A-Z]+");
|
||||
var lcase = new RegExp("[a-z]+");
|
||||
var num = new RegExp("[0-9]+");
|
||||
if( $(this).val() != '')
|
||||
if( $(this).val().length >= 6 )
|
||||
if( ucase.test($(this).val()) && lcase.test($(this).val()) && num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "green" });
|
||||
$('#pwd_comment_textA').text("Отличный пароль!");
|
||||
$("#pwd_commentA").css({ "color": "green" });
|
||||
}
|
||||
else if ( ucase.test($(this).val()) && lcase.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "grey" });
|
||||
$('#pwd_comment_textA').text("Хороший пароль! Не хватает цифр.");
|
||||
$("#pwd_commentA").css({ "color": "green" });
|
||||
}
|
||||
else if ( lcase.test($(this).val()) && num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "grey" });
|
||||
$('#pwd_comment_textA').text("Хороший пароль! Не хватает прописных букв.");
|
||||
$("#pwd_commentA").css({ "color": "green" });
|
||||
}
|
||||
else if ( ucase.test($(this).val()) && num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "grey" });
|
||||
$('#pwd_comment_textA').text("Хороший пароль! Не хватает строчных букв.");
|
||||
$("#pwd_commentA").css({ "color": "green" });
|
||||
}
|
||||
else if ( ucase.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "orange" });
|
||||
$('#pwd_comment_textA').text("Слабый пароль! Не хватает цифр и строчных букв.");
|
||||
$("#pwd_commentA").css({ "color": "orange" });
|
||||
}
|
||||
else if ( lcase.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "orange" });
|
||||
$('#pwd_comment_textA').text("Слабый пароль! Не хватает цифр и прописных букв.");
|
||||
$("#pwd_commentA").css({ "color": "orange" });
|
||||
}
|
||||
else if ( num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "orange" });
|
||||
$('#pwd_comment_textA').text("Слабый пароль! Не хватает букв.");
|
||||
$("#pwd_commentA").css({ "color": "orange" });
|
||||
}
|
||||
else {
|
||||
$("#valid-passwordA").css({ "color": "grey" });
|
||||
$('#pwd_comment_textA').text("Странный пароль! Вы точно сможете его замнить?");
|
||||
$("#pwd_commentA").css({ "color": "grey" });
|
||||
}
|
||||
else
|
||||
if( ucase.test($(this).val()) && lcase.test($(this).val()) && num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "grey" });
|
||||
$('#pwd_comment_textA').text("Хороший пароль!.. но короткий.");
|
||||
$("#pwd_commentA").css({ "color": "grey" });
|
||||
}
|
||||
else if ( ucase.test($(this).val()) && lcase.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "orange" });
|
||||
$('#pwd_comment_textA').text("Короткий пароль!.. и нет цифр.");
|
||||
$("#pwd_commentA").css({ "color": "orange" });
|
||||
}
|
||||
else if ( lcase.test($(this).val()) && num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "orange" });
|
||||
$('#pwd_comment_textA').text("Короткий пароль!.. и нет прописных букв.");
|
||||
$("#pwd_commentA").css({ "color": "orange" });
|
||||
}
|
||||
else if ( ucase.test($(this).val()) && num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "orange" });
|
||||
$('#pwd_comment_textA').text("Короткий пароль!.. и нет строчных букв.");
|
||||
$("#pwd_commentA").css({ "color": "orange" });
|
||||
}
|
||||
else if ( ucase.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "red" });
|
||||
$('#pwd_comment_textA').text("Короткий пароль!.. и нет строчных букв и цифр.");
|
||||
$("#pwd_commentA").css({ "color": "red" });
|
||||
}
|
||||
else if ( lcase.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "red" });
|
||||
$('#pwd_comment_textA').text("Короткий пароль!.. и нет прописных букв и цифр.");
|
||||
$("#pwd_commentA").css({ "color": "red" });
|
||||
}
|
||||
else if ( num.test($(this).val()) ) {
|
||||
$("#valid-passwordA").css({ "color": "red" });
|
||||
$('#pwd_comment_textA').text("Короткий пароль!.. и нет букв.");
|
||||
$("#pwd_commentA").css({ "color": "red" });
|
||||
}
|
||||
else {
|
||||
$("#valid-passwordA").css({ "color": "red" });
|
||||
$('#pwd_comment_textA').text("Странныйе символы! Переключитесь на латиницу!");
|
||||
$("#pwd_commentA").css({ "color": "red" });
|
||||
}
|
||||
else {
|
||||
$("#valid-passwordA").css({ "color": "white" });
|
||||
$('#pwd_comment_textA').text('Шесть (или более) букв (прописных и строчных) и цифр');
|
||||
$("#pwd_commentA").css({ "color": "grey" });
|
||||
}
|
||||
});
|
||||
// ОБРАБОТЧИК КНОПКИ SUBMIT. ПЕРЕГРУЖАЕТ БЛОК #box
|
||||
$('#restore-password').submit(
|
||||
function enter(){
|
||||
$.ajax({
|
||||
url: "/change_password", //Адрес подгружаемой страницы
|
||||
type: "POST", //Тип запроса
|
||||
dataType: "html", //Тип данных
|
||||
data: $("#restore-password").serialize(),
|
||||
success: function(html){ $("#box").html(html)}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
);
|
||||
})
|
||||
</script>
|
||||
<h1>Смена пароля</h1>
|
||||
<p>Для пользователя: <strong>{{ USERNAME }}</strong> <small>({{ EMAIL }})</small></p>
|
||||
<form id="restore-password">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="username" value="{{ USERNAME }}" />
|
||||
<input type="hidden" name="user_id" value="{{ USER_ID }}" />
|
||||
<input type="hidden" name="email" value="{{ EMAIL }}" />
|
||||
<div class="col-md-5 pwdA">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></div>
|
||||
<input type="password" class="form-control" id="passwordA" name="passwordA" placeholder="password" data-toggle="popover" />
|
||||
<div class="input-group-addon check-it">
|
||||
<i class="glyphicon glyphicon-ok-sign" id="valid-passwordA"></i>
|
||||
</div>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" id="look_pwd1A" type="button"><small><small class="glyphicon glyphicon-eye-open"></small></small></button>
|
||||
</span>
|
||||
</div>
|
||||
<dIV class="collapse" id="pwd_commentA" style="padding-top:2px;">
|
||||
<i class="glyphicon glyphicon-info-sign"></i> <span id="pwd_comment_textA"><!--- Содержимое этого блока будет подменяться во время набора и валидации пароля --->Шесть (или более) букв (прописных и строчных) и цифр</span>
|
||||
</dIV>
|
||||
</div>
|
||||
|
||||
<dIV class="col-md-5 pwdA">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></div>
|
||||
<input type="password" class="form-control" id="password_repeatA" name="password_repeatA" placeholder="повторите passport" />
|
||||
<div class="input-group-addon check-it">
|
||||
<i class="glyphicon glyphicon-ok-sign" id="valid-password-repeatA"></i>
|
||||
</div>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" id="look_pwd2A" type="button"><small><small class="glyphicon glyphicon-eye-open"></small></small></button>
|
||||
</span>
|
||||
</div>
|
||||
</dIV>
|
||||
|
||||
<dIV class="col-md-2 pwdA">
|
||||
<button type="submit" class="btn btn-primary btn" name="change_pwd" onclick="$('#Astatus').val('enter');">Сменить пароль</button>
|
||||
</dIV>
|
||||
</form>
|
||||
Reference in New Issue
Block a user