1
0
mirror of https://github.com/bigchaindb/site.git synced 2024-11-29 23:28:03 +01:00
site/_src/_assets/javascripts/bigchain/form-cla.js

87 lines
2.8 KiB
JavaScript

var FormCla = (function(w, d, $) {
'use strict';
var app, _private, _config;
_config = {
form: $('.form--cla'),
formCheckbox: $('.form--cla').find('.agree'),
formBtn: $('.form--cla').find('.btn'),
formURL: $('.form--cla').attr('action'),
formMethod: $('.form--cla').attr('method')
};
_private = {
formAgree: function() {
// disable submit button by default
_config.formBtn.addClass('disabled').attr('disabled', 'disabled');
// toggle submit button state based on checkbox click
_config.formCheckbox.on('click', function(){
if ( $(this).is(':checked') ) {
_config.formBtn.removeClass('disabled').removeAttr('disabled');
} else {
_config.formBtn.addClass('disabled').attr('disabled', 'disabled');
}
});
},
formSubmit: function() {
_config.form.submit(function(e) {
e.preventDefault();
var thisForm = $(this),
thisButton = thisForm.find('.btn');
if ( thisForm.parsley().isValid() ) {
$.ajax({
url: _config.formURL,
method: _config.formMethod,
data: thisForm.serialize(),
dataType: 'json',
beforeSend: function() {
thisButton
.addClass('disabled')
.attr('value', 'Sending...');
},
success: function(data) {
thisForm.find('.form-group').addClass('hide');
thisForm.find('.alert--success').removeClass('hide');
thisButton.removeClass('disabled');
// send GA event
if (!_dntEnabled()) {
GoogleAnalytics.gaEventClaSuccess();
}
},
error: function(err) {
thisForm.find('.alert--danger').removeClass('hide');
thisButton
.removeClass('disabled')
.attr('value', 'Send');
// send GA event
if (!_dntEnabled()) {
GoogleAnalytics.gaEventClaError();
}
}
});
}
});
}
};
app = {
init: function() {
_private.formSubmit();
_private.formAgree();
}
};
return app;
})(window, document, jQuery);