]> git.openstreetmap.org Git - rails.git/blob - app/assets/javascripts/login.js
Stop creating a shared global querystring variable
[rails.git] / app / assets / javascripts / login.js
1 //= querystring
2
3 $(document).ready(function () {
4   var querystring = require("querystring-component");
5
6   // Preserve location hash in referer
7   if (window.location.hash) {
8     $("#referer").val($("#referer").val() + window.location.hash);
9   }
10
11   // Attach referer to authentication buttons
12   $(".auth_button").each(function () {
13     var params = querystring.parse(this.search.substring(1));
14     params.referer = $("#referer").val();
15     this.search = querystring.stringify(params);
16   });
17
18   // Add click handler to show OpenID field
19   $("#openid_open_url").click(function () {
20     $("#openid_url").val("http://");
21     $("#login_auth_buttons").hide();
22     $("#login_openid_url").show();
23     $("#login_openid_submit").show();
24   });
25
26   // Hide OpenID field for now
27   $("#login_openid_url").hide();
28   $("#login_openid_submit").hide();
29
30   // Handle OpenID submission by redirecting to omniauth
31   $("#openid_login_form").submit(function () {
32     var action = $(this).prop("action"),
33         openid_url = $(this).find("#openid_url").val(),
34         referer = $(this).find("#openid_referer").val(),
35         args = {};
36     args.openid_url = openid_url;
37     if (referer) {
38       args.referer = referer;
39     }
40     window.location = action + "?" + querystring.stringify(args);
41     return false;
42   });
43 });