diff options
author | Thomas ZILLIOX <thomas@zilliox.me> | 2013-05-08 20:42:09 +0400 |
---|---|---|
committer | Thomas ZILLIOX <thomas@zilliox.me> | 2013-05-08 20:42:09 +0400 |
commit | b830387b839f6a1732d310e26fa81de27e19ff95 (patch) | |
tree | a6cf18412a42b0db34b9941de89724bb2f7dadd9 /plugins/Login/javascripts | |
parent | eeb6be9d1e4bb54a05b78537a080622dc764e72e (diff) |
Reorganizing the stylesheets & javascripts folders for every plugins
Diffstat (limited to 'plugins/Login/javascripts')
-rwxr-xr-x | plugins/Login/javascripts/login.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/plugins/Login/javascripts/login.js b/plugins/Login/javascripts/login.js new file mode 100755 index 0000000000..5458942fef --- /dev/null +++ b/plugins/Login/javascripts/login.js @@ -0,0 +1,100 @@ +/*! + * Piwik - Web Analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ +(function ($) { + + $(document).ready(function () { + var switchForm = function (fromFormId, toFormId, message, callback) { + var fromLoginInputId = '#' + fromFormId + '_login', + toLoginInputId = '#' + toFormId + '_login', + toPasswordInputId = '#' + toFormId + '_password', + fromLoginNavId = '#' + fromFormId + '_nav', + toLoginNavId = '#' + toFormId + '_nav'; + + if ($(toLoginInputId).val() === '') { + $(toLoginInputId).val($(fromLoginInputId).val()); + } + + // hide the bottom portion of the login screen & show the password reset bits + $('#' + fromFormId + ',#message_container').fadeOut(500, function () { + // show lost password instructions + $('#message_container').html(message); + + $(fromLoginNavId).hide(); + $(toLoginNavId).show(); + $('#' + toFormId + ',#message_container').fadeIn(500, function () { + // focus on login or password control based on whether a login exists + if ($(toLoginInputId).val() === '') { + $(toLoginInputId).focus(); + } + else { + $(toPasswordInputId).focus(); + } + + if (callback) { + callback(); + } + }); + }); + }; + + // 'lost your password?' on click + $('#login_form_nav').click(function (e) { + e.preventDefault(); + switchForm('login_form', 'reset_form', $('#lost_password_instructions').html()); + return false; + }); + + // 'cancel' on click + $('#reset_form_nav,#alternate_reset_nav').click(function (e) { + e.preventDefault(); + $('#alternate_reset_nav').hide(); + switchForm('reset_form', 'login_form', ''); + return false; + }); + + // password reset on submit + $('#reset_form_submit').click(function (e) { + e.preventDefault(); + + var ajaxDone = function (response) { + $('.loadingPiwik').hide(); + + var isSuccess = response.indexOf('id="login_error"') === -1, + fadeOutIds = '#message_container'; + if (isSuccess) { + fadeOutIds += ',#reset_form,#reset_form_nav'; + } + + $(fadeOutIds).fadeOut(300, function () { + if (isSuccess) { + $('#alternate_reset_nav').show(); + } + + $('#message_container').html(response).fadeIn(300); + }); + }; + + $('.loadingPiwik').show(); + + // perform reset password request + $.ajax({ + type: 'POST', + url: 'index.php', + dataType: 'html', + async: true, + error: function () { ajaxDone('<div id="login_error"><strong>HTTP Error</strong></div>'); }, + success: ajaxDone, // Callback when the request succeeds + data: $('#reset_form').serialize() + }); + + return false; + }); + + $('#login_form_login').focus(); + }); + +}(jQuery)); |