var disable_signup = {{ disable_signup and "true" or "false" }}; var login = {}; $(document).ready(function(wrapper) { window.location.hash = "#login"; login.login(); $('#login_btn').click(login.do_login); $('#pass').keypress(function(ev){ if(ev.which==13 && $('#pass').val()) { $("#login_btn").click(); } }); $(document).trigger('login_rendered'); }) $(window).on("hashchange", function() { var route = window.location.hash.slice(1); if(!route) route = "login"; login[route](); }) // Login login.do_login = function(){ var args = {}; if(window.is_sign_up) { args.cmd = "webnotes.core.doctype.profile.profile.sign_up"; args.email = ($("#login_id").val() || "").trim(); args.full_name = ($("#full_name").val() || "").trim(); if(!args.email || !valid_email(args.email) || !args.full_name) { login.set_message("Valid email and name required."); return false; } } else if(window.is_forgot) { args.cmd = "webnotes.core.doctype.profile.profile.reset_password"; args.user = ($("#login_id").val() || "").trim(); if(!args.user) { login.set_message("Valid Login Id required."); return false; } } else { args.cmd = "login" args.usr = ($("#login_id").val() || "").trim(); args.pwd = $("#pass").val(); if(!args.usr || !args.pwd) { login.set_message("Both login and password required."); return false; } } $('#login_btn').prop("disabled", true); $("#login-spinner").toggle(true); $('#login_message').toggle(false); $.ajax({ type: "POST", url: "/", data: args, dataType: "json", statusCode: login.login_handlers }).always(function(){ $("#login-spinner").toggle(false); $('#login_btn').prop("disabled", false); }) return false; } login.set_heading = function(html) { $(".panel-heading").html("

" + html + "

"); } login.login = function() { login.set_heading(' Login'); $("#login_wrapper h3").html("Login"); $("#login_id").attr("placeholder", "Login Email Id"); $("#password-row").toggle(true); $("#full-name-row, #login_message").toggle(false); $("#login_btn").html("Login").removeClass("btn-success"); $("#forgot-link").html('Forgot Password?'); if(!disable_signup) { $("#switch-view").empty().append('
\ No Account? Sign Up
'); } window.is_login = true; window.is_sign_up = false; window.is_forgot = false; } login.sign_up = function() { login.set_heading(' Sign Up'); $("#login_id").attr("placeholder", "Your Email Id"); $("#password-row, #login_message").toggle(false); $("#full-name-row").toggle(true); $("#login_btn").html("Sign Up").addClass("btn-success"); $("#forgot-link").html("Login"); $("#switch-view").empty(); window.is_sign_up = true; } login.forgot = function() { login.set_heading(' Forgot'); $("#login_id").attr("placeholder", "Your Email Id"); $("#password-row, #login_message, #full-name-row").toggle(false); $("#login_btn").html("Send Password").removeClass("btn-success"); $("#forgot-link").html("Login"); $("#switch-view").empty(); window.is_forgot = true; window.is_sign_up = false; } login.set_message = function(message, color) { wn.msgprint(message); return; //$('#login_message').html(message).toggle(true); } login.login_handlers = { 200: function(data) { if(data.message=="Logged In") { window.location.href = "app"; } else if(data.message=="No App") { if(localStorage) { var last_visited = localStorage.getItem("last_visited") || "/index"; localStorage.removeItem("last_visited"); window.location.href = last_visited; } else { window.location.href = "/index"; } } else if(window.is_sign_up) { wn.msgprint(data.message); } }, 401: function(xhr, data) { login.set_message("Invalid Login"); } } {% if fb_app_id is defined -%} // facebook login $(document).ready(function() { $.ajaxSetup({ cache: true }); var user_id = wn.get_cookie("user_id"); var sid = wn.get_cookie("sid"); // logged in? if(!sid || sid==="Guest") { // fallback on facebook login -- no login again $(".btn-login").html("Login via Facebook").removeAttr("disabled"); } else { // get private stuff (if access) // app.setup_user({"user": user_id}); } }); $(function() { $login = $(".btn-login").prop("disabled", true); $.getScript('//connect.facebook.net/en_UK/all.js', function() { $login.prop("disabled", false); FB.init({ appId: '{{ fb_app_id }}', }); $login.click(function() { $login.prop("disabled", true).html("Logging In..."); login.via_facebook(); }); }); }); login.via_facebook = function() { // not logged in to facebook either FB.login(function(response) { if (response.authResponse) { // yes logged in via facebook console.log('Welcome! Fetching your information.... '); var fb_access_token = response.authResponse.accessToken; // get user graph FB.api('/me', function(response) { response.fb_access_token = fb_access_token || "[none]"; $.ajax({ url:"/", type: "POST", data: { cmd:"webnotes.core.doctype.profile.profile.facebook_login", data: JSON.stringify(response) }, statusCode: login.login_handlers }) }); } else { wn.msgprint("You have denied access to this application via Facebook. \ Please change your privacy settings in Facebook and try again. \ If you do not want to use Facebook login, sign-up here"); } },{scope:"email"}); } {%- endif %}