/*global jQuery:false, frmGlobal, tb_remove, ajaxurl, adminpage */ /* exported frm_install_now, frmSelectSubnav, frmCreatePostEntry */ var frmWidgets, frmAdminPopup; jQuery( document ).ready( function() { var deauthLink, submenuItem, li, installLink = document.getElementById( 'frm_install_link' ); if ( installLink !== null ) { jQuery( installLink ).on( 'click', frmInstallPro ); } deauthLink = jQuery( '.frm_deauthorize_link' ); if ( deauthLink.length ) { deauthLink.on( 'click', frmDeauthorizeNow ); } if ( typeof tb_remove === 'function' ) { // eslint-disable-line camelcase frmAdminPopup.init(); } submenuItem = document.querySelector( '.frm-upgrade-submenu' ); if ( null !== submenuItem ) { li = submenuItem.parentNode.parentNode; if ( li ) { li.classList.add( 'frm-submenu-highlight' ); } } }); function frm_install_now() { // eslint-disable-line camelcase var $msg = jQuery( document.getElementById( 'frm_install_message' ) ); $msg.html( '
' );
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'frm_create_post_entry',
id: id,
post_id: postId,
nonce: frmGlobal.nonce
},
success: function() {
jQuery( document.getElementById( 'frm_create_entry' ) ).fadeOut( 'slow' );
}
});
}
function frmAdminPopupJS() {
function switchSc() {
var val;
jQuery( '.frm_switch_sc' ).removeClass( 'active' );
jQuery( this ).addClass( 'active' );
toggleMenu();
jQuery( '#frm_popup_content .media-frame-title h1' ).html( jQuery( this ).children( '.howto' ).text() + ' ' );
val = this.id.replace( 'sc-link-', '' );
populateOpts( val );
return false;
}
function populateOpts( val ) {
var $settings, $scOpts, $spinner,
sc = document.getElementById( 'frm_complete_shortcode' );
if ( sc !== null ) {
sc.value = '[' + val + ']';
}
jQuery( '.frm_shortcode_option' ).hide();
$settings = document.getElementById( 'sc-opts-' + val );
if ( $settings !== null ) {
$settings.style.display = '';
jQuery( document.getElementById( 'sc-' + val ) ).trigger( 'click' );
} else {
$scOpts = jQuery( document.getElementById( 'frm_shortcode_options' ) );
$spinner = jQuery( '.media-frame-title .spinner' );
$spinner.show();
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'frm_get_shortcode_opts',
shortcode: val,
nonce: frmGlobal.nonce
},
success: function( html ) {
$spinner.hide();
$scOpts.append( html );
jQuery( document.getElementById( 'sc-' + val ) ).trigger( 'click' );
}
});
}
}
function addToShortcode() {
var sc = jQuery( 'input[name=frmsc]:checked' ).val();
var inputs = jQuery( document.getElementById( 'sc-opts-' + sc ) ).find( 'input, select' );
var output = '[' + sc;
inputs.each( function() {
var attrName, attrVal,
$thisInput = jQuery( this ),
attrId = this.id;
if ( attrId.indexOf( 'frmsc_' ) === 0 ) {
attrName = attrId.replace( 'frmsc_' + sc + '_', '' );
attrVal = $thisInput.val();
if ( ( $thisInput.attr( 'type' ) === 'checkbox' && ! this.checked ) || ( ( $thisInput.attr( 'type' ) === 'text' || $thisInput.is( 'select' ) ) && attrVal === '' ) ) {
} else {
output += ' ' + attrName + '="' + attrVal + '"';
}
}
});
output += ']';
document.getElementById( 'frm_complete_shortcode' ).value = output;
}
function insertShortcode() {
var win = window.dialogArguments || opener || parent || top;
win.send_to_editor( document.getElementById( 'frm_complete_shortcode' ).value );
}
function getFieldSelection() {
var thisId,
formId = this.value;
if ( formId ) {
thisId = this.id;
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'frm_get_field_selection',
field_id: 0,
form_id: formId,
nonce: frmGlobal.nonce
},
success: function( msg ) {
var baseId = thisId.replace( '_form', '' );
msg = msg.replace( 'name="field_options[form_select_0]"', 'id="frmsc_' + baseId + '_fields"' );
jQuery( document.getElementById( baseId + '_fields_container' ) ).html( msg );
}
});
}
}
function toggleMenu() {
jQuery( document.getElementById( 'frm_popup_content' ) ).find( '.media-menu' ).toggleClass( 'visible' );
}
return {
init: function() {
var $scOptsDiv;
jQuery( '.frm_switch_sc' ).on( 'click', switchSc );
jQuery( '.button.frm_insert_form' ).on( 'click', function() {
populateOpts( 'formidable' );
});
jQuery( document.getElementById( 'frm_insert_shortcode' ) ).on( 'click', insertShortcode );
$scOptsDiv = jQuery( document.getElementById( 'frm_shortcode_options' ) );
$scOptsDiv.on( 'change', 'select, input', addToShortcode );
$scOptsDiv.on( 'change', '.frm_get_field_selection', getFieldSelection );
jQuery( '#frm_popup_content .media-modal-close' ).on( 'click', tb_remove );
jQuery( '#frm_popup_content .media-frame-title h1' ).on( 'click', toggleMenu );
}
};
}
frmAdminPopup = frmAdminPopupJS();
function frmWidgetsJS() {
function toggleCatOpt() {
var catOpts = jQuery( this ).closest( '.widget-content' ).children( '.frm_list_items_hide_cat_opts' );
if ( this.checked ) {
catOpts.fadeIn();
} else {
catOpts.fadeOut();
}
}
function getFields() {
var widget,
displayId = this.value;
if ( displayId !== '' ) {
widget = jQuery( this ).closest( '.widget-content' );
jQuery.ajax({
type: 'POST',
url: ajaxurl,
dataType: 'json',
data: {
action: 'frm_get_dynamic_widget_opts',
display_id: displayId,
nonce: frmGlobal.nonce
},
success: function( opts ) {
var titleField,
catField = widget.find( '.frm_list_items_cat_id' );
catField.find( 'option' ).remove().end();
catField.append( jQuery( '' ) );
jQuery.each( opts.catValues, function( key, value ) {
catField.append( jQuery( '' ).attr( 'value', key ).text( value ) );
});
titleField = widget.find( '.frm_list_items_title_id' );
titleField.find( 'option' ).remove().end();
titleField.append( jQuery( '' ) );
jQuery.each( opts.titleValues, function( key, value ) {
titleField.append( jQuery( '' ).attr( 'value', key ).text( value ) );
});
}
});
}
}
return {
init: function() {
jQuery( document ).on( 'click', '.frm_list_items_cat_list', toggleCatOpt );
jQuery( document ).on( 'change', '.frm_list_items_display_id', getFields );
}
};
}
if ( typeof adminpage !== 'undefined' && adminpage === 'widgets-php' ) {
frmWidgets = frmWidgetsJS();
frmWidgets.init();
}