author | Madhusudan.C.S <madhusudancs@gmail.com> |
Sat, 05 Feb 2011 03:24:52 +0530 | |
changeset 559 | 96e8e65a3738 |
parent 457 | 1082b5ee29c5 |
permissions | -rw-r--r-- |
450
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
1 |
var login_user = function (login_url) { |
457
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
2 |
|
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
3 |
/* Function that handles the post login request changes. */ |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
4 |
var process_login_response = function (raw_data) { |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
5 |
/* We expect an exception when login fails. Read comment with catch. */ |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
6 |
try { |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
7 |
data = $.parseJSON(raw_data); |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
8 |
if (data.authentication == "success") { |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
9 |
/* Login succeeded */ |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
10 |
if (data.markup) { |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
11 |
/* Replace the HTML with the user actions since |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
12 |
* the request came from a URL other than logout page */ |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
13 |
$("div#useraction").replaceWith(data.markup); |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
14 |
} else if (data.redirect) { |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
15 |
/* Reload the page to the pytask home page since |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
16 |
* the login request came from logout page. This |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
17 |
* is done because the logout text says you have |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
18 |
* been logged out, which will be awkward after |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
19 |
* user re-logs in. */ |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
20 |
window.location.href=data.redirect; |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
21 |
} |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
22 |
} |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
23 |
} catch (e) { |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
24 |
/* Login failed so the login view returned to the same view as |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
25 |
* the existing page from which the call was made and thus we |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
26 |
* get html. So let us display the error. */ |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
27 |
$('div #loginform #error').show(); |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
28 |
} |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
29 |
} |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
30 |
|
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
31 |
|
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
32 |
/* Attach a handler which does the form post upon the submit |
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
33 |
* button is pressed on the login form. */ |
450
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
34 |
$(document).ready(function () { |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
35 |
$('#form_login').submit(function() { |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
36 |
$.post( |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
37 |
login_url, |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
38 |
$("#form_login").serialize(), |
457
1082b5ee29c5
Handle all cases of login.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
450
diff
changeset
|
39 |
process_login_response); |
450
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
40 |
return false; |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
41 |
}); |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
42 |
}); |
7984094bf6c4
Add the necessary Javascript to implement in place login functionality.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff
changeset
|
43 |
} |