![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/www/wp-content/plugins/post-smtp/Postman/Wizard/assets/js/ |
jQuery( document ).ready(function() { jQuery( '.ps-wizard-socket-check:checked' ).siblings( '.ps-wizard-socket-tick-container' ).css( { 'opacity': 1 } ); jQuery( document ).on( 'click', '.ps-wizard-socket-radio label', function() { jQuery( '.ps-wizard-socket-tick-container' ).css( { 'opacity': 0 } ); jQuery( this ).find( '.ps-wizard-socket-tick-container' ).css( { 'opacity': 1 } ); } ) /** * Refresh the wizard to show the current step * * @return void * @since 2.0.0 * @version 1.0.0 */ const refreshWizard = function() { var tableRow = jQuery( '.ps-wizard-nav table tr.ps-active-nav' ); var activeTab = jQuery( tableRow ).hasClass( 'ps-active-nav' ); if( activeTab ) { var stepID = jQuery( tableRow ).find( '.dashicons-edit' ).data( 'step' ); jQuery( '.ps-wizard-step' ).hide(); jQuery( `.ps-wizard-step-${stepID}` ).fadeIn( 'slow' ); } } /** * Validate the current step * * @param {int} stepID Current Step ID * @return bool * @since 2.0.0 * @version 1.0.0 */ const validateStep = function( stepID ) { //Validate step 1 if( stepID == 1 ) { if( jQuery( '.ps-wizard-socket-check' ).is( ':checked' ) ) { var selectedSocket = jQuery( '.ps-wizard-socket-check:checked' ).val(); var _element = jQuery( '.ps-wizard-outer' ).removeClass(); jQuery( _element ).addClass( 'ps-wizard-outer' ); jQuery( _element ).addClass( `${selectedSocket}-outer` ); //Remove Warning (if has), and contiue to next step jQuery( '.ps-wizard-error' ).html( '' ); jQuery( '.ps-wizard-page-footer' ).fadeOut(); renderSocketSettings(); return true; } else { jQuery( '.ps-wizard-error' ).html( `<span class="dashicons dashicons-warning"></span> ${PostSMTPWizard.Step1E1}` ); } } //Validate step 2 if( stepID == 2 ) { var selectedSocket = jQuery( '.ps-wizard-socket-check:checked' ).val(); selectedSocket = jQuery( `.${selectedSocket}` ).find( 'input' ); var validated = false; jQuery( selectedSocket ).each( function( index, element ) { var attr = jQuery( element ).attr( 'required' ); if( typeof attr !== 'undefined' && attr !== false && jQuery( element ).val() == '' ) { var error = jQuery( element ).data( 'error' ); jQuery( '.ps-wizard-error' ).html( `<span class="dashicons dashicons-warning"></span> ${error}` ); validated = false; jQuery( element ).focus(); return false; } else { //Validate From Name, From Email jQuery( '.ps-name-email-settings' ).find( 'input' ).each( function( index, element ) { var attr = jQuery( element ).attr( 'required' ); if( typeof attr !== 'undefined' && attr !== false && jQuery( element ).val() == '' ) { var error = jQuery( element ).data( 'error' ); jQuery( '.ps-wizard-error' ).html( `<span class="dashicons dashicons-warning"></span> ${error}` ); validated = false; jQuery( element ).focus(); return false; } else { //remove error, since everything is good to go :). jQuery( '.ps-wizard-error' ).html( '' ); validated = true; } } ); } } ); //If everything is good to go, lets save settings. if( validated === true ) { var button = jQuery( '.ps-wizard-step-2' ).find( '.ps-wizard-next-btn' ); var buttonHTML = jQuery( button ).html(); jQuery( button ).html( 'Saving...' ); //Lets AJAX request. jQuery.ajax( { url: ajaxurl, type: 'POST', async: true, data: { action: 'ps-save-wizard', FormData: jQuery( '#ps-wizard-form' ).serialize(), }, success: function( response ) { jQuery( '.ps-wizard-error' ).html( '' ); nextStep( stepID ); var _element = jQuery( '.ps-wizard-outer' ).removeClass(); jQuery( _element ).addClass( 'ps-wizard-outer' ); }, error: function( response ) { jQuery( '.ps-wizard-error' ).html( `<span class="dashicons dashicons-warning"></span> ${PostSMTPWizard.Step2E3}` ); }, complete: function( response ) { jQuery( button ).html( buttonHTML ); } } ); } } //Validate step 3 | No validation required, we can skip this step. if( stepID == 3 ) { return true; } } /** * Switch to next step * * @param {int} stepID Current Step ID * @return void * @since 2.0.0 * @version 1.0.0 */ const nextStep = function( stepID ) { var nextStep = stepID + 1; jQuery( `*[data-step="${stepID}"]` ).closest( 'tr' ).removeClass(); jQuery( `*[data-step="${nextStep}"]` ).closest( 'tr' ).removeClass(); jQuery( `*[data-step="${nextStep}"]` ).closest( 'tr' ).addClass( 'ps-active-nav' ); refreshWizard(); } /** * Switch to step * * @param {int} stepID Step ID to be switched to * @return void * @since 2.0.0 * @version 1.0.0 */ const switchStep = function( stepID ) { jQuery( '.ps-wizard-nav table tr.ps-active-nav' ).addClass( 'ps-in-active-nav' ); jQuery( '.ps-wizard-nav table tr.ps-active-nav' ).removeClass( 'ps-active-nav' ); jQuery( `*[data-step="${stepID}"]` ).closest( 'tr' ).addClass( 'ps-active-nav' ); jQuery( '.ps-wizard-success' ).html( '' ); jQuery( '.ps-wizard-error' ).html( '' ); jQuery( '.ps-wizard-connectivity-information' ).remove(); refreshWizard(); } /** * Render Socket Settings * * @return void * @since 2.0.0 * @version 1.0.0 */ const renderSocketSettings = function() { var selectedSocket = jQuery( '.ps-wizard-socket-check:checked' ).val(); jQuery( '.ps-wizard-socket' ).hide(); jQuery( `.${selectedSocket}` ).fadeIn( 'slow' ); } /** * Gets URL Parameter * * @return void * @since 2.0.0 * @version 1.0.0 */ const getUrlParameter = function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]); } } return false; }; //Switch to next step jQuery( document ).on( 'click', '.ps-wizard-next-btn', function( e ) { e.preventDefault(); var stepID = jQuery( this ).data( 'step' ); if( validateStep( stepID ) === true ) { nextStep( stepID ); } } ); //Switch to step | Edit Step jQuery( document ).on( 'click', '.ps-wizard-nav table tr td .dashicons-edit, .ps-wizard-back', function( e ) { e.preventDefault(); var stepID = jQuery( this ).data( 'step' ); if( stepID == 1 ) { jQuery( '.ps-wizard-page-footer' ).fadeIn( 'slow' ); } if( stepID !== 2 ) { var _element = jQuery( '.ps-wizard-outer' ).removeClass(); jQuery( _element ).addClass( 'ps-wizard-outer' ); } if( stepID == 2 ) { var selectedSocket = jQuery( '.ps-wizard-socket-check:checked' ).val(); var _element = jQuery( '.ps-wizard-outer' ).removeClass(); jQuery( _element ).addClass( 'ps-wizard-outer' ); jQuery( _element ).addClass( `${selectedSocket}-outer` ); } switchStep( stepID ); } ); //Send test email jQuery( document ).on( 'click', '.ps-wizard-send-test-email', function( e ) { e.preventDefault(); var sendTo = jQuery( '.ps-test-to' ).val(); var security = jQuery( '#security' ).val(); if( sendTo == '' ) { jQuery( '.ps-wizard-error' ).html( `<span class="dashicons dashicons-warning"></span> ${PostSMTPWizard.Step3E4}` ); return; } jQuery( '.ps-wizard-error' ).html(''); jQuery( '.ps-wizard-success' ).html( 'Sending...' ); jQuery.ajax( { url: ajaxurl, type: 'POST', data: { action: 'postman_send_test_email', email: sendTo, security: security, }, success: function( response ) { jQuery( '.ps-wizard-success' ).html( '' ); if( response.success === true ) { jQuery( '.ps-wizard-success' ).html( `<span class="dashicons dashicons-yes"></span> ${response.data.message}` ); jQuery( '.ps-finish-wizard' ).html( `${PostSMTPWizard.finish} <span class="dashicons dashicons-arrow-right-alt">` ); } if( response.success === false ) { var selectedSocket = jQuery( '.ps-wizard-socket-check:checked' ).val(); jQuery( '.ps-wizard-error' ).html( `<span class="dashicons dashicons-warning"></span> ${response.data.message}` ); if( selectedSocket === 'smtp' ) { jQuery( '.ps-wizard-error' ).after( `<div class="ps-wizard-connectivity-information">${PostSMTPWizard.connectivityTestMsg}</div>` ); } } } } ); } ); //Connect to Office 365 | Auth jQuery( document ).on( 'click', '#ps-wizard-connect-office365', function( e ) { e.preventDefault(); var office365_app_id = jQuery( '.ps-office365-client-id' ).val(); var office365_app_password = jQuery( '.ps-office365-client-secret' ).val(); var _button = jQuery( this ).html(); if( office365_app_id == '' ) { jQuery( '.ps-office365-client-id' ).focus(); return; } if( office365_app_password == '' ) { jQuery( '.ps-office365-client-secret' ).focus(); return; } jQuery( this ).html( 'Redirecting...' ); var authURL = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?state=${PostSMTPWizard.office365State}&scope=openid profile offline_access Mail.Send Mail.Send.Shared&response_type=code&approval_prompt=auto&redirect_uri=${PostSMTPWizard.adminURL}&client_id=${office365_app_id}`; jQuery.ajax( { url: ajaxurl, type: 'POST', async: true, data: { action: 'ps-save-wizard', FormData: jQuery( '#ps-wizard-form' ).serialize(), }, success: function( response ) { window.location.assign( authURL ); }, } ); } ); //Connect to Gmail API | Auth jQuery( document ).on( 'click', '#ps-wizard-connect-gmail', function( e ) { e.preventDefault(); var clientID = jQuery( '.ps-gmail-api-client-id' ).val(); var clientSecret = jQuery( '.ps-gmail-client-secret' ).val(); var redirectURI = jQuery( this ).attr( 'href' ); if( clientID == '' ) { jQuery( '.ps-gmail-api-client-id' ).focus(); return; } if( clientSecret == '' ) { jQuery( '.ps-gmail-client-secret' ).focus(); return; } jQuery( this ).html( 'Redirecting...' ); jQuery.ajax( { url: ajaxurl, type: 'POST', async: true, data: { action: 'ps-save-wizard', FormData: jQuery( '#ps-wizard-form' ).serialize(), }, success: function( response ) { window.location.assign( redirectURI ); }, } ); } ); //Connect to Zoho | Auth jQuery( document ).on( 'click', '#ps-wizard-connect-zoho', function( e ) { e.preventDefault(); var clientID = jQuery( '.ps-zoho-client-id' ).val(); var clientSecret = jQuery( '.ps-zoho-client-secret' ).val(); var redirectURI = jQuery( this ).attr( 'href' ); if( clientID == '' ) { jQuery( '.ps-zoho-client-id' ).focus(); return; } if( clientSecret == '' ) { jQuery( '.ps-zoho-client-secret' ).focus(); return; } jQuery( this ).html( 'Redirecting...' ); jQuery.ajax( { url: ajaxurl, type: 'POST', async: true, data: { action: 'ps-save-wizard', FormData: jQuery( '#ps-wizard-form' ).serialize(), }, success: function( response ) { window.location.assign( redirectURI ); }, } ); } ); refreshWizard(); if( getUrlParameter( 'socket' ) ) { jQuery( document ).scrollTop( jQuery( document ).height() ); } jQuery( document ).on( 'click', '.ps-pro-extension-outer', function(){ var placeholder = jQuery( this ).find( 'h4' ).text(); var imgSrc = jQuery( this ).find( 'img' ).attr( 'src' ); var productURL = jQuery( this ).data( 'url' ); imgSrc = imgSrc.replace( '.png', '-popup.png' ); jQuery( '.ps-pro-for-img' ).attr( 'src', imgSrc ); jQuery( '.ps-pro-product-url' ).attr( 'href', productURL ); jQuery( '.ps-pro-for' ).text( placeholder ); jQuery( '.ps-pro-popup-overlay' ).fadeIn(); } ); jQuery( document ).on( 'click', '.ps-pro-close-popup', function( e ){ e.preventDefault(); jQuery( '.ps-pro-popup-overlay' ).fadeOut(); } ); jQuery( '.ps-click-to-copy' ).click( function() { // Get the coupon code text var couponCode = jQuery( '.ps-pro-coupon-code' ).text(); // Create a temporary textarea element to copy the text var $temp = jQuery( '<textarea>' ); jQuery( 'body' ).append( $temp ); $temp.val( couponCode ).select(); document.execCommand( 'copy' ); $temp.remove(); // Show the notification jQuery( '#ps-pro-code-copy-notification' ).fadeIn(); // Hide the notification after 1 second setTimeout(function() { jQuery( '#ps-pro-code-copy-notification' ).fadeOut(); }, 2000); }); } );