diff options
-rwxr-xr-x | askbot/skins/default/media/jquery-openid/jquery.openid.js | 138 | ||||
-rw-r--r-- | askbot/skins/default/templates/macros.html | 4 |
2 files changed, 91 insertions, 51 deletions
diff --git a/askbot/skins/default/media/jquery-openid/jquery.openid.js b/askbot/skins/default/media/jquery-openid/jquery.openid.js index 7c89958c..19067bab 100755 --- a/askbot/skins/default/media/jquery-openid/jquery.openid.js +++ b/askbot/skins/default/media/jquery-openid/jquery.openid.js @@ -17,17 +17,35 @@ $.fn.authenticator = function() { var account_recovery_question_text = account_recovery_heading.html(); var account_recovery_prompt_text = account_recovery_text_span.html(); - var setup_event_handlers = function(elements, handler_function){ + var setup_click_handler = function(elements, handler_function){ elements.unbind('click').click(handler_function); - elements.unbind('keypress').keypress( - function(e){ - if ((e.which && e.which == 13)||(e.keyCode && e.keyCode == 13)){ - return handler_function(); - } + }; + + var setup_enter_key_handler = function(elements, handler_function){ + elements.each( + function(index, element){ + $(element).unbind('keypress').keypress( + function(e){ + if ((e.which && e.which == 13)||(e.keyCode && e.keyCode == 13)){ + if (handler_function){ + return handler_function(); + } + else { + element.click(); + return false; + } + } + } + ); } ); }; + var setup_event_handlers = function(elements, handler_function){ + setup_click_handler(elements, handler_function); + setup_enter_key_handler(elements); + }; + var read_existing_login_methods = function(){ $('.ab-provider-row').each( function(i, provider_row){ @@ -97,6 +115,7 @@ $.fn.authenticator = function() { var submit_login_with_password = function(){ var username = $('#id_username'); var password = $('#id_password'); + if (username.val().length < 1){ username.focus(); return false; @@ -237,6 +256,15 @@ $.fn.authenticator = function() { var start_login_with_extra_openid_token = function() { show_openid_input_fields($(this).attr('name')); set_provider_name($(this)); + + setup_enter_key_handler( + openid_login_token_input, + function(){ + openid_submit_button.click(); + return false; + } + ); + setup_event_handlers( openid_submit_button, function(){ @@ -295,6 +323,8 @@ $.fn.authenticator = function() { ) password_button.val(password_button_text); password_action_input.val('change_password'); + var focus_input = $('#id_new_password'); + var submittable_input = $('#id_new_password_retyped'); } else{ $('#password-heading>span').html(token_name); @@ -313,18 +343,24 @@ $.fn.authenticator = function() { create_pw_link.attr('href', url); } password_action_input.val('login'); + var focus_input = $('#id_username'); + var submittable_input = $('#id_password'); } password_input_fields.show(); - setup_event_handlers( - password_button, - function(){ - signin_form.unbind( - 'submit' - ).submit( - submit_action - ); + focus_input.focus(); + + var submit_password_login = function(){ + signin_form.unbind('submit').submit(submit_action); + }; + + setup_enter_key_handler( + submittable_input, + function() { + password_button.click(); + return false; } ); + setup_event_handlers(password_button, submit_password_login); return false; }; @@ -343,42 +379,46 @@ $.fn.authenticator = function() { $('#id_new_password_retyped').val(''); }; - setup_event_handlers( - signin_page.find('input.openid-direct'), - start_simple_login - ); - - setup_event_handlers( - signin_page.find('input.openid-username'), - start_login_with_extra_openid_token - ); - - setup_event_handlers( - signin_page.find('input.openid-generic'), - start_login_with_extra_openid_token - ); - - setup_event_handlers( - signin_page.find('input.facebook'), - start_facebook_login - ); - - setup_event_handlers( - signin_page.find('input.oauth'), - start_simple_login - ); - - setup_event_handlers( - signin_page.find('input.password'), - start_password_login_or_change - ); - - setup_event_handlers(account_recovery_link, start_account_recovery); - if (userIsAuthenticated){ - read_existing_login_methods(); - setup_login_method_deleters(); - } + var setup_default_handlers = function(){ + setup_event_handlers( + signin_page.find('input.openid-direct'), + start_simple_login + ); + + setup_event_handlers( + signin_page.find('input.openid-username'), + start_login_with_extra_openid_token + ); + + setup_event_handlers( + signin_page.find('input.openid-generic'), + start_login_with_extra_openid_token + ); + + setup_event_handlers( + signin_page.find('input.facebook'), + start_facebook_login + ); + + setup_event_handlers( + signin_page.find('input.oauth'), + start_simple_login + ); + + setup_event_handlers( + signin_page.find('input.password'), + start_password_login_or_change + ); + + setup_event_handlers(account_recovery_link, start_account_recovery); + + if (userIsAuthenticated){ + read_existing_login_methods(); + setup_login_method_deleters(); + } + }; + setup_default_handlers(); clear_password_fields(); return this; }; diff --git a/askbot/skins/default/templates/macros.html b/askbot/skins/default/templates/macros.html index aa982f1b..7995012a 100644 --- a/askbot/skins/default/templates/macros.html +++ b/askbot/skins/default/templates/macros.html @@ -49,7 +49,7 @@ {% if p.is_paginated %} <div class="paginator"> {% if p.has_previous %} - <span class="prev"><a href="{{p.base_url}}page={{ p.contextprevious }}{{ p.extend_url }}" title="{% trans %}previous{% endtrans %}"> + <span class="prev"><a href="{{p.base_url}}page={{ p.previous }}{{ p.extend_url }}" title="{% trans %}previous{% endtrans %}"> « {% trans %}previous{% endtrans %}</a></span> {% endif %} {% if not p.in_leading_range %} @@ -74,7 +74,7 @@ {% endfor %} {% endif %} {% if p.has_next %} - <span class="next"><a href="{{p.base_url}}page={{ next }}{{ p.extend_url }}" title="{% trans %}next page{% endtrans %}">{% trans %}next page{% endtrans %} »</a></span> + <span class="next"><a href="{{p.base_url}}page={{ p.next }}{{ p.extend_url }}" title="{% trans %}next page{% endtrans %}">{% trans %}next page{% endtrans %} »</a></span> {% endif %} </div> {% endif %} |