Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

143 rader
3.9 KiB

  1. var disable_signup = {{ disable_signup and "true" or "false" }};
  2. var login = {};
  3. $(document).ready(function(wrapper) {
  4. window.location.hash = "#login";
  5. login.login();
  6. $('#login_btn').click(login.do_login);
  7. $('#pass').keypress(function(ev){
  8. if(ev.which==13 && $('#pass').val()) {
  9. $("#login_btn").click();
  10. }
  11. });
  12. $(document).trigger('login_rendered');
  13. })
  14. $(window).on("hashchange", function() {
  15. var route = window.location.hash.slice(1);
  16. if(!route) route = "login";
  17. login[route]();
  18. })
  19. // Login
  20. login.do_login = function(){
  21. var args = {};
  22. if(window.is_sign_up) {
  23. args.cmd = "webnotes.core.doctype.profile.profile.sign_up";
  24. args.email = ($("#login_id").val() || "").trim();
  25. args.full_name = ($("#full_name").val() || "").trim();
  26. if(!args.email || !valid_email(args.email) || !args.full_name) {
  27. login.set_message("Valid email and name required.");
  28. return false;
  29. }
  30. } else if(window.is_forgot) {
  31. args.cmd = "webnotes.core.doctype.profile.profile.reset_password";
  32. args.user = ($("#login_id").val() || "").trim();
  33. if(!args.user) {
  34. login.set_message("Valid Login Id required.");
  35. return false;
  36. }
  37. } else {
  38. args.cmd = "login"
  39. args.usr = ($("#login_id").val() || "").trim();
  40. args.pwd = $("#pass").val();
  41. if(!args.usr || !args.pwd) {
  42. login.set_message("Both login and password required.");
  43. return false;
  44. }
  45. }
  46. $('#login_btn').prop("disabled", true);
  47. $("#login-spinner").toggle(true);
  48. $('#login_message').toggle(false);
  49. $.ajax({
  50. type: "POST",
  51. url: "/",
  52. data: args,
  53. dataType: "json",
  54. statusCode: {
  55. 200: function(data) {
  56. if(data.message=="Logged In") {
  57. window.location.href = "app";
  58. } else if(data.message=="No App") {
  59. if(localStorage) {
  60. var last_visited = localStorage.getItem("last_visited") || "/index";
  61. localStorage.removeItem("last_visited");
  62. window.location.href = last_visited;
  63. } else {
  64. window.location.href = "/index";
  65. }
  66. } else if(window.is_sign_up) {
  67. wn.msgprint(data.message);
  68. }
  69. },
  70. 401: function(xhr, data) {
  71. login.set_message("Invalid Login");
  72. }
  73. }
  74. }).always(function(){
  75. $("#login-spinner").toggle(false);
  76. $('#login_btn').prop("disabled", false);
  77. })
  78. return false;
  79. }
  80. login.set_heading = function(html) {
  81. $(".panel-heading").html("<h4>" + html + "</h4>");
  82. }
  83. login.login = function() {
  84. login.set_heading('<i class="icon-lock"></i> Login');
  85. $("#login_wrapper h3").html("Login");
  86. $("#login_id").attr("placeholder", "Login Email Id");
  87. $("#password-row").toggle(true);
  88. $("#full-name-row, #login_message").toggle(false);
  89. $("#login_btn").html("Login").removeClass("btn-success");
  90. $("#forgot-link").html('<a href="#forgot">Forgot Password?</a>');
  91. if(!disable_signup) {
  92. $("#switch-view").empty().append('<div>\
  93. No Account? <a class="btn btn-success" style="margin-left: 10px; margin-top: -2px;"\
  94. href="#sign_up">Sign Up</button></div>');
  95. }
  96. window.is_login = true;
  97. window.is_sign_up = false;
  98. window.is_forgot = false;
  99. }
  100. login.sign_up = function() {
  101. login.set_heading('<i class="icon-thumbs-up"></i> Sign Up');
  102. $("#login_id").attr("placeholder", "Your Email Id");
  103. $("#password-row, #login_message").toggle(false);
  104. $("#full-name-row").toggle(true);
  105. $("#login_btn").html("Sign Up").addClass("btn-success");
  106. $("#forgot-link").html("<a href='#login'>Login</a>");
  107. $("#switch-view").empty();
  108. window.is_sign_up = true;
  109. }
  110. login.forgot = function() {
  111. login.set_heading('<i class="icon-question-sign"></i> Forgot');
  112. $("#login_id").attr("placeholder", "Your Email Id");
  113. $("#password-row, #login_message, #full-name-row").toggle(false);
  114. $("#login_btn").html("Send Password").removeClass("btn-success");
  115. $("#forgot-link").html("<a href='#login'>Login</a>");
  116. $("#switch-view").empty();
  117. window.is_forgot = true;
  118. window.is_sign_up = false;
  119. }
  120. login.set_message = function(message, color) {
  121. wn.msgprint(message);
  122. return;
  123. //$('#login_message').html(message).toggle(true);
  124. }