Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;(function ($, window, undefined) {
- // DEFINED GLOBAL EVENTS THAT CAN BE HOOKED INTO THROUGHOUT ALL LOADED JS.
- $(document).ready(function (e) {
- $(document).trigger('core:load').delay(500).trigger('core:load:async');
- });
- $(window).resize(function (e) {
- $(document).trigger('core:resize', e)
- });
- })(jQuery, window);
- /**
- * @package AjaxForm
- * @version 1.0
- * @author Trevor Wagner
- */
- ;(function ($, window, undefined) {
- var AjaxForm = function () {
- this.form = {
- el: null,
- action: null,
- confirm: false,
- submit: null,
- url: null
- };
- this.data = {formData: null};
- this.flags = {
- canSubmit: false,
- haltSubmit: false
- };
- this.errors = {
- errorContainer: null
- }
- return this;
- };
- AjaxForm.prototype.init = function (form, url) {
- var self = this,
- errorContainer = $('[data-form-errors]');
- if (form.length > 0) {
- self.form.el = form;
- self.form.submit = form.find('button[type="submit"]');
- self.form.action = form.data('action');
- self.form.url = url;
- if (form.data('confirm') !== undefined) {
- self.form.confirm = form.data('confirm');
- }
- }
- if (errorContainer.length > 0) {
- var formErrors = new FormErrors();
- formErrors.init(errorContainer);
- self.errors.formErrors = formErrors
- }
- $(document).trigger('core:form:before_submission', self);
- self.collectData();
- if (self.flags.haltSubmit) {
- } else {
- self.makeRequest();
- }
- };
- AjaxForm.prototype.setObservers = function (inst, ajaxUrl) {
- var self = this;
- $(document).on('submit', '[data-ajax-form]', {inst: inst, ajaxUrl: ajaxUrl}, function (e) {
- e.preventDefault();
- var form = $(this);
- $(document).trigger('core:form_error:hide');
- inst.init(form, ajaxUrl);
- });
- };
- AjaxForm.prototype.collectData = function () {
- debugger;
- this.data.formData = this.form.el.serialize();
- };
- AjaxForm.prototype.confirmFormRequest = function () {
- var self = this;
- return this.form.confirm !== false ? confirm(self.form.confirm) : true;
- };
- AjaxForm.prototype.makeRequest = function () {
- var self = this;
- $(document).trigger('core:overlay:show').trigger('core:message:clear');
- // Ajax POST call.
- $.ajax({
- method: 'POST',
- action: self.form.action,
- url: self.form.url,
- data: self.data.formData,
- success: function (resp) {
- var data = $.parseJSON(resp);
- $(document).trigger('core:loader:hide');
- data.status ? self.formSuccess(data) : self.formError(data);
- }
- });
- };
- AjaxForm.prototype.formSuccess = function (resp) {
- var self = this;
- $(document).trigger('core:overlay:hide');
- self.form.el.find('button[type="submit"]').removeAttr('disabled');
- $(document).trigger('core:ajaxform:success', {form: self.form, resp: resp});
- };
- AjaxForm.prototype.formError = function (resp) {
- var self = this;
- $(document).trigger('core:overlay:hide');
- self.form.el.find('button[type="submit"]').removeAttr('disabled');
- $(document).trigger('core:form:error', {form: self.form, resp: resp})
- $(document).trigger('core:form_error:show', {ajaxForm: self, msg: resp.message, klass: 'error'});
- };
- $(document).on('core:load', function (e) {
- var ajaxForm = new AjaxForm(core.ajaxUrl);
- ajaxForm.setObservers(ajaxForm, core.ajaxUrl);
- });
- var FormErrors = function () {
- this.data = {
- container: null,
- };
- return this;
- };
- FormErrors.prototype.init = function (el) {
- var self = this;
- if (el.length > 0) {
- self.container = el;
- }
- self.setObservers();
- };
- FormErrors.prototype.setObservers = function () {
- var self = this;
- $(document).on('core:form_error:show', function (e, data) {
- self.show(data.msg, data.klass);
- });
- $(document).on('core:form_error:hide', function (e, data) {
- self.hide();
- })
- };
- FormErrors.prototype.hide = function () {
- var self = this;
- self.container.html('');
- self.container.removeClass();
- };
- FormErrors.prototype.show = function (msg, klass) {
- var self = this;
- self.container.addClass(klass);
- self.container.html(msg);
- };
- })(jQuery, window);
- /**
- * @package Overlay
- * @version 1.0
- * @author Trevor Wagner
- */
- ;(function ($, window, undefined) {
- var Overlay = function () {
- this.overlay = {
- el: null
- };
- return this;
- };
- Overlay.prototype.init = function (el) {
- if (el.length > 0) {
- this.overlay.el = el;
- }
- this.setObservers();
- };
- Overlay.prototype.setObservers = function () {
- $(document).on('core:overlay:show', this, function (e) {
- e.data.show();
- });
- $(document).on('core:overlay:hide', this, function (e) {
- e.data.hide();
- });
- };
- Overlay.prototype.show = function () {
- this.overlay.el.addClass('active').addClass('visible');
- };
- Overlay.prototype.hide = function () {
- setTimeout(function (overlay) {
- overlay.removeClass('visible');
- setTimeout(function (overlay) {
- overlay.removeClass('active')
- }, 1000, overlay)
- }, 1000, this.overlay.el)
- };
- $(document).on('core:load', function (e) {
- var overlay = new Overlay();
- overlay.init($('[data-overlay]'));
- })
- })(jQuery, window);
- /**
- * @package Deposit Form
- * @version 1.0
- * @author Trevor Wagner
- */
- ;(function ($, window, undefined) {
- var DepositForm = function () {
- this.data = {
- parentForm: '',
- ajaxForm: null,
- errors: {
- container: null
- }
- };
- return this;
- };
- DepositForm.prototype.init = function () {
- var self = this,
- errorContainer = $('[data-form-errors]');
- if(errorContainer.length > 0){
- self.data.parentForm = errorContainer.closest('[data-ajax-form]');
- }
- //if (contractTrigger.length > 0) {
- // self.data.triggers.contractTrigger = contractTrigger;
- //
- //
- // if (errorContainer.length > 0) {
- // self.data.errors.container = errorContainer;
- // }
- //}
- self.setObservers();
- };
- DepositForm.prototype.setObservers = function () {
- var self = this;
- //if (contractTrigger.length > 0) {
- // contractTrigger.click(function (e) {
- // e.preventDefault();
- // })
- //}
- if (self.data.parentForm.length > 0) {
- self.data.parentForm.find('input').on('change', function (e) {
- var field = $(e.target),
- parentEl = field.parent();
- if (field.is(":invalid")) {
- parentEl.addClass('validation-error');
- } else {
- parentEl.removeClass('validation-error');
- }
- })
- }
- //$(document).on('core:popup:show', function (e, data) {
- // $.extend(self.data, data);
- //
- // $.ajax({
- // dataType: 'JSON',
- // url: core.ajaxUrl,
- // data: {
- // action: 'initialize_contract_form',
- // nonce: self.data.parentForm.find('#deposit_form').val(),
- // exhibitor_id: core.currentPageID,
- // exhibitor_current_show_id: '34',
- // show_id: self.data.parentForm.find('[data-show-id]').val(),
- // },
- // method: 'POST',
- // success: function (response) {
- // self.initializeContract(response);
- // }
- // })
- //});
- $(document).on('core:form:before_submission', function (e, data) {
- debugger;
- self.data.ajaxForm = data;
- var formData = data.form;
- self.data.ajaxForm.flags.haltSubmit = true;
- formData.el.find('button[type="submit"]').attr('readonly', 'true');
- Stripe.setPublishableKey(core.stripePkKey);
- Stripe.card.createToken({
- number: formData.el.find('#cardnumber').val(),
- cvc: formData.el.find('#cvv').val(),
- exp_month: formData.el.find('select[name="exp-month"]').val(),
- exp_year: formData.el.find('select[name="exp-year"]').val(),
- name: formData.el.find('input[name="cardholdername"]').val(),
- address_line1: formData.el.find('input[name="street"]').val(),
- address_line2: formData.el.find('input[name="address_2"]').val(),
- address_city: formData.el.find('input[name="city"]').val(),
- address_zip: formData.el.find('input[name="zip"]').val(),
- address_state: formData.el.find('input[name="state"]').val(),
- address_country: formData.el.find('select[name="country"]').val()
- }, function (status, response) {
- self.handleStripeTokenization(status, response, self.data.ajaxForm)
- });
- });
- //$(document).on('core:ajaxform:success', function (e, data) {
- // var resp = data.resp;
- //
- // if (resp.status && 'redirect' in resp) {
- // window.location.href = resp.redirect;
- // }
- //})
- };
- DepositForm.prototype.handleStripeTokenization = function (status, response, ajaxForm) {
- var self = this,
- formEl = self.data.ajaxForm.form.el;
- formEl.find('button[type="submit"]').removeAttr("readonly");
- if (response.error) {
- $(document).trigger('core:form_error:show', {
- ajaxForm: ajaxForm,
- msg: 'Stripe Error: ' + response.error.message,
- klass: 'error'
- })
- } else {
- var token = response['id'],
- tokenField = formEl.find('input[data-stripe-tokenized-details]');
- if (tokenField.length > 0) {
- tokenField.val(token);
- }
- self.data.ajaxForm.collectData();
- self.data.ajaxForm.makeRequest();
- }
- };
- // DepositForm.prototype.initializeContract = function (response) {
- // var self = this;
- //
- // if(response.data.alreadySigned){
- // self.data.popup.el.find('[data-destroy-btn]').show();
- // }
- //
- // self.data.popup.el.find('.popup-content').html(response.data.content);
- //
- // self.data.popup.el.find('iframe').load(function () {
- // if (!window.addEventListener) {
- // window.attachEvent('onmessage', function (e) {
- // self.handleSignedDocument(e);
- // });
- // } else {
- // window.addEventListener('message', function (e) {
- // self.handleSignedDocument(e);
- // }, false);
- // }
- // });
- //
- // self.data.parentForm.find('[data-sign-contract]').hide()
- // self.data.parentForm.find('#signed').html('<i class="fa fa-fw fa-check"></i> Electronic Contract Signed').attr('readonly', 'true')
- // self.data.parentForm.find('[data-submit-btn]').removeAttr('disabled')
- // self.data.parentForm.find('[data-contract]').removeClass('hidden')
- //
- // };
- //
- // DepositForm.prototype.handleSignedDocument = function (e) {
- // var self = this;
- //
- // if (e.origin == "https://secure.na1.echosign.com") {
- // self.data.parentForm.find('[data-contract-signed-flag]').val(1);
- // self.data.popup.el.find('[data-destroy-btn]').show();
- // }
- // };
- //
- $(document).on('ready', function (e) {
- var dpf = new DepositForm();
- dpf.init();
- })
- })(jQuery, window);
- /**
- * @package Expiration Fields
- * @version 1.0
- * @author Trevor Wagner
- */
- ;(function ($, window, undefined) {
- var ExpYear = function () {
- this.expYearFields = {};
- return this;
- };
- ExpYear.prototype.init = function () {
- var self = this,
- expFields = $('select[data-exp-year]');
- if (expFields.length > 0) {
- self.expYearFields = expFields;
- }
- self.populateFields();
- };
- ExpYear.prototype.populateFields = function () {
- var self = this;
- if (self.expYearFields.length > 0) {
- self.expYearFields.each(function () {
- var field = $(this),
- year = new Date().getFullYear(),
- options = '';
- for (var i = 0; i < 12; i++) {
- options += "<option value='" + (i + year) + "' >" + (i + year) + "</option>";
- }
- field.append(options);
- field.trigger('change');
- })
- }
- };
- $(document).on('ready', function (e) {
- var exp = new ExpYear();
- exp.init();
- })
- })(jQuery, window);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement