You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 11 години
преди 11 години
преди 11 години
преди 12 години
преди 12 години
преди 11 години
преди 12 години
преди 11 години
преди 12 години
преди 12 години
преди 11 години
преди 11 години
преди 12 години
преди 11 години
преди 12 години
преди 11 години
преди 11 години
преди 12 години
преди 11 години
преди 11 години
преди 11 години
преди 11 години
преди 11 години
преди 11 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. var disable_signup = {{ disable_signup and "true" or "false" }};
  2. var login = {};
  3. $(window).on("hashchange", function() {
  4. var route = window.location.hash.slice(1);
  5. if(!route) route = "login";
  6. login[route]();
  7. })
  8. // Login
  9. login.do_login = function(){
  10. var args = {};
  11. if(window.is_sign_up) {
  12. args.cmd = "webnotes.core.doctype.profile.profile.sign_up";
  13. args.email = ($("#login_id").val() || "").trim();
  14. args.full_name = ($("#full_name").val() || "").trim();
  15. if(!args.email || !valid_email(args.email) || !args.full_name) {
  16. login.set_message("Valid email and name required.");
  17. return false;
  18. }
  19. } else if(window.is_forgot) {
  20. args.cmd = "webnotes.core.doctype.profile.profile.reset_password";
  21. args.user = ($("#login_id").val() || "").trim();
  22. if(!args.user) {
  23. login.set_message("Valid Login Id required.");
  24. return false;
  25. }
  26. } else {
  27. args.cmd = "login"
  28. args.usr = ($("#login_id").val() || "").trim();
  29. args.pwd = $("#pass").val();
  30. if(!args.usr || !args.pwd) {
  31. login.set_message("Both login and password required.");
  32. return false;
  33. }
  34. }
  35. $('#login_btn').prop("disabled", true);
  36. $("#login-spinner").toggle(true);
  37. $('#login_message').toggle(false);
  38. $.ajax({
  39. type: "POST",
  40. url: "/",
  41. data: args,
  42. dataType: "json",
  43. statusCode: login.login_handlers
  44. }).always(function(){
  45. $("#login-spinner").toggle(false);
  46. $('#login_btn').prop("disabled", false);
  47. })
  48. return false;
  49. }
  50. login.set_heading = function(html) {
  51. $(".panel-heading").html("<h4>" + html + "</h4>");
  52. }
  53. login.login = function() {
  54. login.set_heading('<i class="icon-lock"></i> Login');
  55. $("#login_wrapper h3").html("Login");
  56. $("#login_id").attr("placeholder", "Login Email Id");
  57. $("#password-row").toggle(true);
  58. $("#full-name-row, #login_message").toggle(false);
  59. $("#login_btn").html("Login").removeClass("btn-success");
  60. $("#forgot-link").html('<a href="#forgot">Forgot Password?</a>');
  61. if(!disable_signup) {
  62. $("#switch-view").empty().append('<div>\
  63. No Account? <a class="btn btn-success" style="margin-left: 10px; margin-top: -2px;"\
  64. href="#sign_up">Sign Up</button></div>');
  65. }
  66. window.is_login = true;
  67. window.is_sign_up = false;
  68. window.is_forgot = false;
  69. }
  70. login.sign_up = function() {
  71. login.set_heading('<i class="icon-thumbs-up"></i> Sign Up');
  72. $("#login_id").attr("placeholder", "Your Email Id");
  73. $("#password-row, #login_message").toggle(false);
  74. $("#full-name-row").toggle(true);
  75. $("#login_btn").html("Sign Up").addClass("btn-success");
  76. $("#forgot-link").html("<a href='#login'>Login</a>");
  77. $("#switch-view").empty();
  78. window.is_sign_up = true;
  79. }
  80. login.forgot = function() {
  81. login.set_heading('<i class="icon-question-sign"></i> Forgot');
  82. $("#login_id").attr("placeholder", "Your Email Id");
  83. $("#password-row, #login_message, #full-name-row").toggle(false);
  84. $("#login_btn").html("Send Password").removeClass("btn-success");
  85. $("#forgot-link").html("<a href='#login'>Login</a>");
  86. $("#switch-view").empty();
  87. window.is_forgot = true;
  88. window.is_sign_up = false;
  89. }
  90. login.set_message = function(message, color) {
  91. wn.msgprint(message);
  92. return;
  93. //$('#login_message').html(message).toggle(true);
  94. }
  95. login.login_handlers = {
  96. 200: function(data) {
  97. if(data.message=="Logged In") {
  98. window.location.href = "app";
  99. } else if(data.message=="No App") {
  100. if(localStorage) {
  101. var last_visited = localStorage.getItem("last_visited") || "/index";
  102. localStorage.removeItem("last_visited");
  103. window.location.href = last_visited;
  104. } else {
  105. window.location.href = "/index";
  106. }
  107. } else if(window.is_sign_up) {
  108. wn.msgprint(data.message);
  109. }
  110. },
  111. 401: function(xhr, data) {
  112. login.set_message("Invalid Login");
  113. }
  114. }
  115. {% if fb_app_id is defined -%}
  116. // facebook login
  117. $(document).ready(function() {
  118. var user_id = wn.get_cookie("user_id");
  119. var sid = wn.get_cookie("sid");
  120. // logged in?
  121. if(!sid || sid==="Guest") {
  122. // fallback on facebook login -- no login again
  123. $(".btn-login").html("Login via Facebook").removeAttr("disabled");
  124. } else {
  125. // get private stuff (if access)
  126. // app.setup_user({"user": user_id});
  127. }
  128. });
  129. $(function() {
  130. $login = $(".btn-login").prop("disabled", true);
  131. $.getScript('//connect.facebook.net/en_UK/all.js', function() {
  132. $login.prop("disabled", false);
  133. FB.init({
  134. appId: '{{ fb_app_id }}',
  135. });
  136. $login.click(function() {
  137. $login.prop("disabled", true).html("Logging In...");
  138. login.via_facebook();
  139. });
  140. });
  141. });
  142. login.via_facebook = function() {
  143. // not logged in to facebook either
  144. FB.login(function(response) {
  145. if (response.authResponse) {
  146. // yes logged in via facebook
  147. console.log('Welcome! Fetching your information.... ');
  148. var fb_access_token = response.authResponse.accessToken;
  149. // get user graph
  150. FB.api('/me', function(response) {
  151. response.fb_access_token = fb_access_token || "[none]";
  152. $.ajax({
  153. url:"/",
  154. type: "POST",
  155. data: {
  156. cmd:"webnotes.core.doctype.profile.profile.facebook_login",
  157. data: JSON.stringify(response)
  158. },
  159. statusCode: login.login_handlers
  160. })
  161. });
  162. } else {
  163. wn.msgprint("You have denied access to this application via Facebook. \
  164. Please change your privacy settings in Facebook and try again. \
  165. If you do not want to use Facebook login, <a href='/login'>sign-up</a> here");
  166. }
  167. },{scope:"email"});
  168. }
  169. {%- endif %}
  170. $(document).ready(function(wrapper) {
  171. window.location.hash = "#login";
  172. login.login();
  173. $('#login_btn').click(login.do_login);
  174. $('#pass').keypress(function(ev){
  175. if(ev.which==13 && $('#pass').val()) {
  176. $("#login_btn").click();
  177. }
  178. });
  179. $(document).trigger('login_rendered');
  180. })