/home/awneajlw/public_html/wp-content/plugins/formidable/js/admin/settings.js
( function() {
'use strict';
const globalVars = {
sendTestEmailModal: null
};
function addEventListeners() {
document.addEventListener( 'change', handleChangeEvent );
document.addEventListener( 'keydown', handleKeyDownEvent );
document.addEventListener( 'click', handleClickEvent );
}
function handleChangeEvent( e ) {
if ( 'INPUT' === e.target.nodeName && 'checkbox' === e.target.type && e.target.parentNode.classList.contains( 'frm_toggle_block' ) ) {
handleToggleChangeEvent( e );
}
if ( 'frm_currency' === e.target.id ) {
syncCurrencyOptions( e.target );
}
}
function handleKeyDownEvent( e ) {
switch ( e.key ) { // eslint-disable-line sonarjs/no-small-switch
case ' ':
handleSpaceDownEvent( e );
break;
}
}
function handleToggleChangeEvent( e ) {
e.target.nextElementSibling.setAttribute( 'aria-checked', e.target.checked ? 'true' : 'false' );
}
function handleClickEvent( e ) {
if ( 'BUTTON' === e.target.nodeName && 'choose' === e.target.dataset.action && e.target.closest( '.frm-email-style' ) ) {
handleClickChooseEmailStyle( e );
return;
}
if ( 'frm-send-test-email' === e.target.id ) {
showSendTestEmailModal( e );
return;
}
if ( 'frm-send-test-email-btn' === e.target.id ) {
handleClickSendTestEmailBtn( e );
}
}
function handleClickChooseEmailStyle( e ) {
const styleEls = document.querySelectorAll( '.frm-email-style' );
styleEls.forEach( el => {
el.classList.remove( 'frm-email-style--selected' );
} );
const styleEl = e.target.closest( '.frm-email-style' );
styleEl.classList.add( 'frm-email-style--selected' );
const styleKey = styleEl.dataset.styleKey;
document.getElementById( 'frm-email-style-value' ).value = styleKey;
}
function showSendTestEmailModal( e ) {
if ( ! globalVars.sendTestEmailModal ) {
globalVars.sendTestEmailModal = frmAdminBuild.initModal( '#frm-send-test-email-modal', '400px' );
}
globalVars.sendTestEmailModal.dialog( 'open' );
}
function handleClickSendTestEmailBtn( e ) {
const emailInput = document.getElementById( 'frm-test-email-address' );
const resultEl = document.getElementById( 'frm-send-test-email-result' );
const showResult = ( msg, success ) => {
resultEl.textContent = msg;
resultEl.classList.add( success ? 'frm_updated_message' : 'frm_error_style' );
};
resultEl.textContent = '';
resultEl.classList.remove( 'frm_error_style', 'frm_updated_message' );
if ( ! emailInput.value ) {
showResult( 'Empty email address' );
return;
}
const data = new FormData();
data.append( 'emails_str', emailInput.value );
frmDom.ajax.doJsonPost( 'send_test_email', data ).then( response => {
showResult( response, true );
} ).catch( error => {
showResult( error );
} );
}
/**
* Updates the currency formatting options based on the selected currency.
*
* @param {HTMLSelectElement} currencySelect The currency select element.
*/
function syncCurrencyOptions( currencySelect ) {
const currency = frmSettings.currencies[ currencySelect.value ];
document.getElementById( 'frm_thousand_separator' ).value = currency.thousand_separator;
document.getElementById( 'frm_decimal_separator' ).value = currency.decimal_separator;
document.getElementById( 'frm_decimals' ).value = currency.decimals;
}
function handleSpaceDownEvent( e ) {
if ( e.target.classList.contains( 'frm_toggle' ) ) {
e.preventDefault(); // Prevent automatic browser scroll when space is pressed.
e.target.click();
}
}
addEventListeners();
}() );