Current File : /home/pacjaorg/wpt.pacja.org/2024/wp-content/plugins/formidable/stripe/js/connect_settings.js |
( function() {
function setupStripeConnectListener() {
onclickPreventDefault( '#frm_disconnect_stripe', handleStripeDisconnectClick );
onclickPreventDefault( '#frm_reauth_stripe', handleStripeReauthClick );
onclickPreventDefault( '#frm_connect_with_oauth', handleConnectWithOauth );
renderStripeConnectSettingsButton();
}
function renderStripeConnectSettingsButton() {
var container = document.getElementById( 'frm_strp_settings_container' );
if ( null !== container ) {
postAjax(
{
action: 'frm_strp_connect_get_settings_button'
},
function( data ) {
container.innerHTML = data.html;
}
);
}
}
function onclickPreventDefault( selector, callback ) {
jQuery( document ).on( 'click', selector, function( event ) {
event.preventDefault();
callback( this );
});
}
function handleStripeDisconnectClick( trigger ) {
const testMode = isTriggerInTestMode( trigger );
const spinner = frmDom.span({ className: 'frm-wait frm_visible_spinner' });
spinner.style.margin = 0; // The default 20px margin causes the spinner to look bad.
trigger.replaceWith( spinner );
strpSettingsAjaxRequest(
'frm_stripe_connect_disconnect',
function() {
renderStripeConnectSettingsButton();
},
testMode
);
}
function handleStripeReauthClick( trigger ) {
strpSettingsAjaxRequest(
'frm_stripe_connect_reauth',
function( data ) {
if ( 'undefined' !== typeof data.connect_url ) {
window.location = data.connect_url;
} else {
renderStripeConnectSettingsButton();
}
},
isTriggerInTestMode( trigger )
);
}
function handleConnectWithOauth( trigger ) {
trigger.classList.add( 'frm_loading_button' );
strpSettingsAjaxRequest(
'frm_stripe_connect_oauth',
function( data ) {
if ( 'undefined' !== typeof data.redirect_url ) {
window.location = data.redirect_url;
} else {
renderStripeConnectSettingsButton();
}
},
isTriggerInTestMode( trigger )
);
}
function strpSettingsAjaxRequest( action, success, testMode ) {
var data = {
action: action,
testMode: testMode,
nonce: frmGlobal.nonce
};
postAjax( data, success );
}
function postAjax( data, success ) {
var xmlHttp, params;
xmlHttp = new XMLHttpRequest();
params = typeof data === 'string' ? data : Object.keys( data ).map(
function( k ) {
return encodeURIComponent( k ) + '=' + encodeURIComponent( data[ k ]);
}
).join( '&' );
xmlHttp.open( 'post', ajaxurl, true );
xmlHttp.onreadystatechange = function() {
var response;
if ( xmlHttp.readyState > 3 && xmlHttp.status == 200 ) {
response = xmlHttp.responseText;
if ( response !== '' ) {
response = JSON.parse( response );
if ( response.success ) {
if ( 'undefined' === typeof response.data ) {
response.data = {};
}
success( response.data );
}
}
}
};
xmlHttp.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
xmlHttp.setRequestHeader( 'Content-type', 'application/x-www-form-urlencoded' );
xmlHttp.send( params );
return xmlHttp;
}
function isTriggerInTestMode( trigger ) {
return parseInt( jQuery( trigger ).closest( '[data-test-mode]' ).attr( 'data-test-mode' ) );
}
jQuery( document ).ready( setupStripeConnectListener );
}() );