( function() { const buttons = document.querySelectorAll( '.frm-connect-square-with-oauth' ); buttons.forEach( function( button ) { button.addEventListener( 'click', function( e ) { e.preventDefault(); const mode = button.dataset.mode; if ( 'test' === mode ) { frmDom.modal.maybeCreateModal( 'frm_square_test_setup_modal', { title: 'Setting up Square for Test payments', content: getSquareTestSetupModalContent() } ); return; } const formData = new FormData(); formData.append( 'mode', mode ); frmDom.ajax.doJsonPost( 'square_oauth', formData ).then( function( response ) { if ( 'undefined' !== typeof response.redirect_url ) { window.location = response.redirect_url; } } ); } ); } ); document.addEventListener( 'click', function( event ) { if ( ! event.target.id.startsWith( 'frm_disconnect_square_' ) ) { return; } event.preventDefault(); const formData = new FormData(); formData.append( 'testMode', 'test' === event.target.id.replace( 'frm_disconnect_square_', '' ) ? 1 : 0 ); frmDom.ajax.doJsonPost( 'square_disconnect', formData ).then( function( response ) { if ( 'undefined' !== typeof response.success && response.success ) { window.location.reload(); } } ); } ); function getSquareTestSetupModalContent() { const signUpUrl = 'https://app.squareup.com/signup/'; const confirmationTrigger = frmDom.a( { id: 'frm_confirm_square_test_modal', text: 'here', target: '_blank' } ); confirmationTrigger.addEventListener( 'click', function( e ) { e.preventDefault(); const modal = document.getElementById( 'frm_square_test_setup_modal' ); const formData = new FormData(); formData.append( 'mode', 'test' ); frmDom.ajax.doJsonPost( 'square_oauth', formData ).then( function( response ) { if ( 'undefined' !== typeof response.redirect_url ) { window.location = response.redirect_url; jQuery( modal ).dialog( 'close' ); } } ); } ); const content = frmDom.div( { children: [ frmDom.tag( 'div', { className: 'frm_note_style', text: 'Important! If you skip these initial steps, you will get stuck on a white screen.' } ), frmDom.tag( 'ol', { children: [ frmDom.span( { children: [ 'Click ', frmDom.a( { href: signUpUrl, text: 'here' } ), ' to create a Square account if you do not already have one.' ] } ), frmDom.span( { children: [ 'Click ', frmDom.a( { href: 'https://developer.squareup.com/console/en/sandbox-test-accounts', text: 'here', target: '_blank' } ), ' and create a Square sandbox test account.' ] } ), 'Click "Square Dashboard" for the new sandbox test account. Leave the tab open and return to this page.', frmDom.span( { children: [ 'Click ', confirmationTrigger, '. You will be taken to Square to allow the required permissions for handling payments.' ] } ), ].map( function( item ) { if ( 'string' === typeof item ) { return frmDom.tag( 'li', item ); } return frmDom.tag( 'li', { child: item } ); } ) } ) ] } ); content.style.padding = '0 var(--gap-md) var(--gap-md) var(--gap-md)'; return content; } }() );