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.
 
 
 
 
 
 

129 lines
3.7 KiB

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