Commit realizado el 12:13:52 08-04-2024
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
/* global Choices */
|
||||
/**
|
||||
* Script for manipulating DOM events in the "Email" settings page.
|
||||
* This script will be accessible in the "WPForms" → "Settings" → "Email" page.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
|
||||
const WPFormsEmailSettings = window.WPFormsEmailSettings || ( function( document, window, $ ) {
|
||||
/**
|
||||
* Elements holder.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*
|
||||
* @type {Object}
|
||||
*/
|
||||
const el = {};
|
||||
|
||||
/**
|
||||
* Public functions and properties.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
const app = {
|
||||
|
||||
/**
|
||||
* Start the engine.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
init() {
|
||||
$( app.ready );
|
||||
},
|
||||
|
||||
/**
|
||||
* Document ready.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
ready() {
|
||||
app.setup();
|
||||
app.bindEvents();
|
||||
app.relocateImageSize();
|
||||
},
|
||||
|
||||
/**
|
||||
* Setup. Prepare some variables.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
setup() {
|
||||
// Cache DOM elements.
|
||||
el.$wrapper = $( '.wpforms-admin-settings-email' );
|
||||
el.$headerImage = $( '.wpforms-email-header-image' );
|
||||
el.$imageSize = $( '.wpforms-email-header-image-size' );
|
||||
el.$colorScheme = $( '#wpforms-setting-row-email-color-scheme' );
|
||||
el.$typography = $( '#wpforms-setting-row-email-typography' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Bind events.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
bindEvents() {
|
||||
el.$wrapper
|
||||
.on( 'change', '.wpforms-email-template input[type="radio"]', app.handleOnUpdateTemplate )
|
||||
.on( 'click', '.wpforms-setting-remove-image', app.handleOnRemoveHeaderImage );
|
||||
},
|
||||
|
||||
/**
|
||||
* Callback for template change.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*
|
||||
* @param {Object} event An event which takes place in the DOM.
|
||||
*/
|
||||
handleOnUpdateTemplate( event ) {
|
||||
const selected = $( event.currentTarget ).val();
|
||||
const $hideForNone = el.$wrapper.find( '.hide-for-template-none' );
|
||||
const $imageSizeChoices = el.$headerImage.find( '.choices' );
|
||||
const $backgroundControl = el.$wrapper.find( '.email-background-color' );
|
||||
const $legacyNotice = el.$wrapper.find( '.wpforms-email-legacy-notice' );
|
||||
|
||||
const isPro = el.$wrapper.find( '.education-modal' ).length === 0;
|
||||
const isNone = selected === 'none';
|
||||
const isDefault = selected === 'default';
|
||||
|
||||
$hideForNone.toggle( ! isNone );
|
||||
$imageSizeChoices.toggle( ! isDefault );
|
||||
$legacyNotice.toggle( isDefault );
|
||||
$backgroundControl.toggle( ( isDefault || ! isPro ) && ! isNone );
|
||||
|
||||
el.$colorScheme.toggleClass( 'legacy-template', isDefault );
|
||||
el.$typography.toggleClass( 'legacy-template', isDefault );
|
||||
},
|
||||
|
||||
/**
|
||||
* Callback for "Remove Image" button click.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
handleOnRemoveHeaderImage() {
|
||||
$( this ).closest( '.wpforms-setting-row' ).removeClass( 'has-external-image-url' );
|
||||
},
|
||||
|
||||
/**
|
||||
* Callback for the image size select input change.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
handleOnUpdateImageSize() {
|
||||
// Get the selected value.
|
||||
const value = $( this ).val();
|
||||
|
||||
// Remove the previous image size class.
|
||||
el.$headerImage.removeClass( ( index, className ) => ( className.match( /has-image-size-\w+/g ) || [] ).join( ' ' ) );
|
||||
// Add the new image size class.
|
||||
el.$headerImage.addClass( `has-image-size-${ value }` );
|
||||
},
|
||||
|
||||
/**
|
||||
* Relocate image size select input for styling purposes.
|
||||
*
|
||||
* @since 1.8.5
|
||||
*/
|
||||
relocateImageSize() {
|
||||
const $removeImage = $( '.wpforms-setting-remove-image' );
|
||||
|
||||
// Bail if there is no "Remove Image" button.
|
||||
if ( $removeImage.length === 0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Move the select input before the "Remove Image" button.
|
||||
const $select = el.$imageSize.find( 'select' );
|
||||
const selectHtml = $select.get( 0 ).outerHTML;
|
||||
el.$headerImage.find( '.wpforms-setting-remove-image' ).before( selectHtml );
|
||||
$select.remove();
|
||||
|
||||
try {
|
||||
// Cache the new select input.
|
||||
const $newSelect = el.$headerImage.find( 'select' );
|
||||
// Add the image size class. Note that the default value is 140.
|
||||
el.$headerImage.addClass( `has-image-size-${ $newSelect.val() || 'medium' }` );
|
||||
// Bind the change event, and update the image size class.
|
||||
$newSelect.on( 'change', app.handleOnUpdateImageSize );
|
||||
// Initialize Choices.
|
||||
new Choices( el.$headerImage.find( 'select' ).get( 0 ), {
|
||||
searchEnabled: false,
|
||||
shouldSort: false,
|
||||
itemSelectText: '',
|
||||
} );
|
||||
|
||||
// Disable some settings if default template is selected.
|
||||
if ( el.$wrapper.find( '.wpforms-card-image input:checked' ).val() === 'default' ) {
|
||||
el.$headerImage.find( '.choices' ).toggle();
|
||||
}
|
||||
} catch ( e ) {
|
||||
// Do nothing.
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
// Provide access to public functions/properties.
|
||||
return app;
|
||||
}( document, window, jQuery ) );
|
||||
|
||||
// Initialize.
|
||||
WPFormsEmailSettings.init();
|
1
wp-content/plugins/wpforms-lite/assets/js/components/admin/email/settings.min.js
vendored
Normal file
1
wp-content/plugins/wpforms-lite/assets/js/components/admin/email/settings.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
const WPFormsEmailSettings=window.WPFormsEmailSettings||function(n){const g={},r={init(){n(r.ready)},ready(){r.setup(),r.bindEvents(),r.relocateImageSize()},setup(){g.$wrapper=n(".wpforms-admin-settings-email"),g.$headerImage=n(".wpforms-email-header-image"),g.$imageSize=n(".wpforms-email-header-image-size"),g.$colorScheme=n("#wpforms-setting-row-email-color-scheme"),g.$typography=n("#wpforms-setting-row-email-typography")},bindEvents(){g.$wrapper.on("change",'.wpforms-email-template input[type="radio"]',r.handleOnUpdateTemplate).on("click",".wpforms-setting-remove-image",r.handleOnRemoveHeaderImage)},handleOnUpdateTemplate(e){var e=n(e.currentTarget).val(),a=g.$wrapper.find(".hide-for-template-none"),t=g.$headerImage.find(".choices"),r=g.$wrapper.find(".email-background-color"),i=g.$wrapper.find(".wpforms-email-legacy-notice"),m=0===g.$wrapper.find(".education-modal").length,o="none"===e,e="default"===e;a.toggle(!o),t.toggle(!e),i.toggle(e),r.toggle((e||!m)&&!o),g.$colorScheme.toggleClass("legacy-template",e),g.$typography.toggleClass("legacy-template",e)},handleOnRemoveHeaderImage(){n(this).closest(".wpforms-setting-row").removeClass("has-external-image-url")},handleOnUpdateImageSize(){var e=n(this).val();g.$headerImage.removeClass((e,a)=>(a.match(/has-image-size-\w+/g)||[]).join(" ")),g.$headerImage.addClass("has-image-size-"+e)},relocateImageSize(){var e=n(".wpforms-setting-remove-image");if(0!==e.length){var e=g.$imageSize.find("select"),a=e.get(0).outerHTML;g.$headerImage.find(".wpforms-setting-remove-image").before(a),e.remove();try{var t=g.$headerImage.find("select");g.$headerImage.addClass("has-image-size-"+(t.val()||"medium")),t.on("change",r.handleOnUpdateImageSize),new Choices(g.$headerImage.find("select").get(0),{searchEnabled:!1,shouldSort:!1,itemSelectText:""}),"default"===g.$wrapper.find(".wpforms-card-image input:checked").val()&&g.$headerImage.find(".choices").toggle()}catch(e){}}}};return r}((document,window,jQuery));WPFormsEmailSettings.init();
|
Reference in New Issue
Block a user