| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- ( function( $ ) {
- FLBuilderSubscribeForm = function( settings )
- {
- this.settings = settings;
- this.nodeClass = '.fl-node-' + settings.id;
- this.form = $( this.nodeClass + ' .fl-subscribe-form' );
- this.button = this.form.find( 'a.vamtam-button' );
- this._init();
- };
- FLBuilderSubscribeForm.prototype = {
- settings : {},
- nodeClass : '',
- form : null,
- button : null,
- _init: function()
- {
- this.button.on( 'click', $.proxy( this._submitForm, this ) );
- },
- _submitForm: function( e )
- {
- var postId = this.form.closest( '.fl-builder-content' ).data( 'post-id' ),
- templateId = this.form.data( 'template-id' ),
- templateNodeId = this.form.data( 'template-node-id' ),
- nodeId = this.form.closest( '.fl-module' ).data( 'node' ),
- buttonText = this.button.find( '.vamtam-button-text' ).text(),
- waitText = this.button.closest( '.fl-form-button' ).data( 'wait-text' ),
- name = this.form.find( 'input[name=fl-subscribe-form-name]' ),
- email = this.form.find( 'input[name=fl-subscribe-form-email]' ),
- re = /\S+@\S+\.\S+/,
- valid = true;
- e.preventDefault();
- if ( this.button.hasClass( 'fl-form-button-disabled' ) ) {
- return; // Already submitting
- }
- if ( name.length > 0 && name.val() == '' ) {
- name.addClass( 'fl-form-error' );
- name.siblings( '.fl-form-error-message' ).show();
- valid = false;
- }
- if ( '' == email.val() || ! re.test( email.val() ) ) {
- email.addClass( 'fl-form-error' );
- email.siblings( '.fl-form-error-message' ).show();
- valid = false;
- }
- if ( valid ) {
- this.form.find( '> .fl-form-error-message' ).hide();
- this.button.find( '.vamtam-button-text' ).text( waitText );
- this.button.data( 'original-text', buttonText );
- this.button.addClass( 'fl-form-button-disabled' );
- $.post( FLBuilderLayoutConfig.paths.wpAjaxUrl, {
- action : 'fl_builder_subscribe_form_submit',
- name : name.val(),
- email : email.val(),
- post_id : postId,
- template_id : templateId,
- template_node_id : templateNodeId,
- node_id : nodeId
- }, $.proxy( this._submitFormComplete, this ) );
- }
- },
- _submitFormComplete: function( response )
- {
- var data = JSON.parse( response ),
- buttonText = this.button.data( 'original-text' );
- if ( data.error ) {
- if ( data.error ) {
- this.form.find( '> .fl-form-error-message' ).text( data.error );
- }
- this.form.find( '> .fl-form-error-message' ).show();
- this.button.removeClass( 'fl-form-button-disabled' );
- this.button.find( '.vamtam-button-text' ).text( buttonText );
- } else if ( 'message' == data.action ) {
- this.form.find( '> *' ).hide();
- this.form.append( '<div class="fl-form-success-message">' + data.message + '</div>' );
- } else if ( 'redirect' == data.action ) {
- window.location.href = data.url;
- }
- }
- }
- })( jQuery );
|