131 lines
3.2 KiB
JavaScript
131 lines
3.2 KiB
JavaScript
(function(context,$) {
|
|
|
|
"use strict";
|
|
context.JK = context.JK || {};
|
|
context.JK.CheckoutSignInScreen = function(app) {
|
|
|
|
var logger = context.JK.logger;
|
|
|
|
var $screen = null;
|
|
var $navigation = null;
|
|
var $signinForm = null;
|
|
var $self = $(this);
|
|
var $email = null;
|
|
var $password = null;
|
|
var $signinBtn = null;
|
|
var $signupBtn = null;
|
|
var $inputElements = null;
|
|
var $contentHolder = null;
|
|
var $btnNext = null;
|
|
|
|
function beforeShow(data) {
|
|
renderNavigation();
|
|
renderLoggedInState();
|
|
}
|
|
|
|
function afterShow(data) {
|
|
}
|
|
|
|
|
|
function renderLoggedInState(){
|
|
if(isLoggedIn()) {
|
|
$contentHolder.removeClass('not-signed-in').addClass('signed-in')
|
|
}
|
|
else {
|
|
$contentHolder.removeClass('signed-in').addClass('not-signed-in')
|
|
}
|
|
}
|
|
|
|
function isLoggedIn() {
|
|
return !!context.JK.currentUserId;
|
|
}
|
|
|
|
function events() {
|
|
$signinForm.on('submit', login);
|
|
$signinBtn.on('click', login);
|
|
$btnNext.on('click', moveNext);
|
|
}
|
|
|
|
function reset() {
|
|
$inputElements.removeClass('login-error');
|
|
}
|
|
|
|
function moveNext() {
|
|
window.location = '/client#/checkoutPayment';
|
|
|
|
return false;
|
|
}
|
|
function login() {
|
|
if($signinBtn.is('.disabled')) {
|
|
return false;
|
|
}
|
|
|
|
var email = $email.val();
|
|
var password = $password.val();
|
|
|
|
reset();
|
|
|
|
$signinBtn.text('TRYING...').addClass('disabled')
|
|
|
|
rest.login({email: email, password: password, remember_me: true})
|
|
.done(function() {
|
|
window.location = '/client#/checkoutPayment'
|
|
window.location.reload();
|
|
})
|
|
.fail(function(jqXHR) {
|
|
if(jqXHR.status == 422) {
|
|
$inputElements.addClass('login-error')
|
|
}
|
|
else {
|
|
app.notifyServerError(jqXHR, "Unable to log in")
|
|
}
|
|
})
|
|
.always(function() {
|
|
$signinBtn.text('SIGN IN').removeClass('disabled')
|
|
})
|
|
|
|
return false;
|
|
}
|
|
|
|
function renderNavigation() {
|
|
$navigation.html("");
|
|
|
|
var navigationHtml = $(
|
|
context._.template(
|
|
$('#template-checkout-navigation').html(),
|
|
{current: 1},
|
|
{variable: 'data'}
|
|
)
|
|
);
|
|
|
|
$navigation.append(navigationHtml);
|
|
}
|
|
|
|
function initialize() {
|
|
var screenBindings = {
|
|
'beforeShow': beforeShow,
|
|
'afterShow': afterShow
|
|
};
|
|
app.bindScreen('checkoutSignin', screenBindings);
|
|
|
|
$screen = $("#checkoutSignInScreen");
|
|
$navigation = $screen.find(".checkout-navigation-bar");
|
|
$signinForm = $screen.find(".signin-form");
|
|
$signinBtn = $signinForm.find('.signin-submit');
|
|
$email = $signinForm.find('input[name="email"]');
|
|
$password = $signinForm.find('input[name="password"]');
|
|
$inputElements = $signinForm.find('.input-elements');
|
|
$contentHolder = $screen.find('.content-holder');
|
|
$btnNext = $screen.find('.btnNext');
|
|
|
|
if($screen.length == 0) throw "$screen must be specified";
|
|
if($navigation.length == 0) throw "$navigation must be specified";
|
|
|
|
events();
|
|
}
|
|
|
|
this.initialize = initialize;
|
|
|
|
return this;
|
|
}
|
|
})(window,jQuery); |