jQuery( document ).ready( function ( $ ) { 'use strict'; var toggleSubmit = function ( _this ){ if( $( _this ).attr('disabled') == "disabled" ){ $( _this ).removeAttr( 'disabled' ); $(_this).find('i').remove( ); } else { $( _this ).attr('disabled','disabled'); $(_this).append( '' ); } }; $( '.opalestate-submission-tab' ).each( function () { var $submission_tab = $( this ); var $submit_btn = $submission_tab.find( '[name=submit-cmb]' ); var $next_btn = $( '.submission-next-btn' ); var $back_btn = $( '.submission-back-btn' ); var $tab_content = $submission_tab.find( '.opalestate-tab-content' ); $submission_tab.find( '.tab-item' ).first().addClass( 'active' ); $tab_content.first().addClass( 'active' ); if ( $tab_content.length != 1 ) { $submit_btn.hide(); } else { $next_btn.hide(); } $submit_btn.on( 'click', function ( e ) { e.preventDefault(); var empty_required_inputs = opalestate_get_empty_required_inputs( $submission_tab ); if ( empty_required_inputs.length === 0 ) { $submit_btn.parents( 'form' ).submit(); } } ); /* $next_btn.click( function(){ // $submit_btn.click(); return false; }); */ var submitFormFiles = function ( name, files ) { var formData = new FormData(); formData.append('section', 'general'); // formData.append('action', 'opalestate_submitted_property'); $(".cmb2-uploader-files").each( function(){ var file_btn = $( 'input.select-file', this ); var files = $(".uploader-item-preview", this ); var name = $(this).data( 'name' ); var issingle = $( this ).data('single'); $(files).each( function( i , element ){ var file = $(this).prop( 'file'); if( file ) { if( issingle ){ formData.append( name, file ); } else { formData.append( name+"["+i+"]", file ); } } } ); }); // console.log( formData ); var dataSubmit = $submit_btn.parents( 'form' ).serializeArray(); $.each( dataSubmit, function ( key, input ) { formData.append( input.name, input.value ); }); formData.append('action', 'opalestate_save_agency_data'); toggleSubmit( $submit_btn ); $.ajax({ url : opalesateJS.ajaxurl, data : formData, type : 'POST', processData: false, contentType: false, dataType: "json", success : function( response ){ if( response.status == true ){ if( response.redirect ){ window.location.href = response.redirect; } var myToast = $.toast({ heading: response.heading, text: response.message, icon: 'success', position: 'bottom-right', hideAfter: 5000, showHideTransition: 'fade', }); } else { toggleSubmit( $submit_btn ); var myToast = $.toast({ heading: response.heading, text: response.message, icon: 'error', position: 'bottom-right', hideAfter: 5000, showHideTransition: 'fade' }); } } }); } $submit_btn.parents( 'form' ).on('submit', function() { submitFormFiles(); return false; } ); // Clicking Next button $next_btn.on( 'click', function ( e ) { e.preventDefault(); var $tab_content = $( this ).parents( '.opalestate-tab-content' ); var empty_required_inputs = opalestate_get_empty_required_inputs( $tab_content ); if ( empty_required_inputs.length === 0 ) { var $next_tab_content = $tab_content.next(); if ( $next_tab_content.length != 0 ) { $submission_tab.find( '.opalestate-tab-content' ).removeClass( 'active' ); $submission_tab.find( '.tab-item.active' ) .removeClass( 'active' ) .addClass( 'validated' ) .addClass( 'passed' ) .next() .addClass( 'active' ); $tab_content.addClass( 'validated' ).addClass( 'passed' ); $next_tab_content.addClass( 'active' ); $( 'html, body' ).animate( { scrollTop: $next_tab_content.offset().top - 100 }, 500 ); // Show Save button if is last tab. if ( $next_tab_content.is( ':last-child' ) ) { $next_btn.hide(); $submit_btn.show(); } } } } ); // Clicking Back button $back_btn.on( 'click', function ( e ) { e.preventDefault(); var $tab_content = $( this ).parents( '.opalestate-tab-content' ); $submission_tab.find( '.opalestate-tab-content' ).removeClass( 'active' ); $submission_tab.find( '.tab-item.active' ) .removeClass( 'active' ) .removeClass( 'passed' ) .prev() .addClass( 'active' ); $tab_content.removeClass( 'active' ); var $prev_tab_content = $tab_content.prev(); if ( $prev_tab_content.length != 0 ) { $prev_tab_content.addClass( 'active' ).removeClass( 'passed' ); $( 'html, body' ).animate( { scrollTop: $prev_tab_content.offset().top - 100 }, 500 ); } $submit_btn.hide(); $next_btn.show(); } ); $( '.tab-item' ).on( 'click', function ( e ) { e.preventDefault(); var $el = $( this ); var $prev_tab_item = $el.prev(); if ( $el.hasClass( 'validated' ) || ($prev_tab_item.length != 0 && $prev_tab_item.hasClass( 'validated' ) && $prev_tab_item.hasClass( 'passed' )) ) { $submission_tab.find( '.opalestate-tab-content' ).removeClass( 'active' ); $submission_tab.find( '.tab-item.active' ).removeClass( 'active' ); var $tab_id = $el.attr( 'href' ); var $prev_tab_content = $( $tab_id ).prev(); var $next_tab_content = $( $tab_id ).next(); if ( $prev_tab_content.length != 0 ) { $back_btn.show(); } else { $back_btn.hide(); } if ( $next_tab_content.length != 0 ) { $next_btn.show(); $submit_btn.hide(); } else { $next_btn.hide(); $submit_btn.show(); } $el.addClass( 'active' ); $( $tab_id ).addClass( 'active' ); } } ); } ); function opalestate_get_empty_required_inputs( el_wrapper ) { var empty_required_inputs = []; el_wrapper.find( 'input' ).each( function () { $( this ).removeClass( 'required' ); $( this ).blur(); if ( $( this ).prop( 'required' ) ) { if ( $( this ).val() == '' ) { $( this ).addClass( 'required' ); $( this ).focus(); empty_required_inputs.push( $( this ) ); } } } ); return empty_required_inputs; } $( '.opalestate-tab-content input' ).each( function ( e ) { if ( $( this ).prop( 'required' ) ) { $( this ).on( 'input', function () { if ( $( this ).val() == '' ) { $( this ).addClass( 'required' ); $( this ).focus(); } else { $( this ).removeClass( 'required' ); } } ); } } ); } );