Files
2026-07-02 15:54:39 -06:00

1609 lines
76 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function( $ ) {
'use strict';
$(document).ready( function() {
// Make page header sticky on scroll. Using https://github.com/AndrewHenderson/jSticky
if (typeof $.fn.sticky === 'function') {
$('#asenha-header').sticky({
topSpacing: 0, // Space between element and top of the viewport (in pixels)
zIndex: 100, // z-index
stopper: '', // Id, class, or number value
stickyClass: 'asenha-sticky' // Class applied to element when it's stuck. Class name or false.
})
}
// Clicking on header save button triggers click of the hidden form submit button
$('.asenha-save-button').click( function(e) {
e.preventDefault();
$('.asenha-saving-changes').fadeIn();
// Get current tab's URL hash and save it in cookie
var hash = decodeURI(window.location.hash).substr(1); // get hash without the # character
Cookies.set('asenha_tab', hash, { expires: 1 }); // expires in 1 day
// Submit the settings form
$('input[type="submit"]#asenha-submit').click();
});
// Search modules
var searchInput = $('#module-search-input');
$(searchInput).keyup(delay(function (e) {
var searchVal = $(this).val();
var filterItems = $('[data-search-filter]');
if ( searchVal != '' ) {
setTimeout(function() {
$(searchInput).addClass('has-text-input');
$('.modules-tab').hide();
$('.search-tab').show();
$('.asenha-fields.section-visible').addClass('originally-visible');
$('.asenha-fields').removeClass('section-visible');
$('.asenha-fields').removeClass('section-hidden');
$('.asenha-fields').addClass('section-visible-for-search');
filterItems.parents('.asenha-toggle').addClass('result-is-hidden');
$('[data-search-filter][data-module-info*="' + searchVal.toLowerCase() + '"]').parents('.asenha-toggle').removeClass('result-is-hidden');
}, 250 );
refreshCodeMirror();
} else {
setTimeout(function() {
searchInput.removeClass('has-text-input');
filterItems.parents('.asenha-toggle').removeClass('result-is-hidden');
clear_search();
refreshCodeMirror();
}, 250 );
}
}, 200));
// Restore all results when the x button on search input field is clicked.
// The click triggers a 'search' event we're listening to below
if ( searchInput.length > 0 ) {
document.getElementById("module-search-input").addEventListener("search", function(event) {
clear_search();
refreshCodeMirror();
});
}
// Ref: https://stackoverflow.com/a/1909508
function delay(fn, ms) {
let timer = 0
return function(...args) {
clearTimeout(timer)
timer = setTimeout(fn.bind(this, ...args), ms || 0)
}
}
function clear_search() {
searchInput.removeClass('has-text-input');
$('[data-search-filter]').each( function() {
$(this).parents('.asenha-toggle').removeClass('result-is-hidden');
$('.modules-tab').show();
$('.search-tab').hide();
$('.asenha-fields').removeClass('section-visible-for-search');
$('.asenha-fields').addClass('section-hidden');
// Has no effect. Compensate with CSS .asenha-fields.section-visible.section-hidden { display: block; }
// $('.asenha-fields.originally-visible').removeClass('section-hidden');
$('.asenha-fields.originally-visible').addClass('section-visible');
$('.asenha-fields').removeClass('originally-visible');
});
}
// Show all / less toggler for field options | Modified from https://codepen.io/symonsays/pen/rzgEgY
$('.asenha-field-with-options.field-show-more > .show-more').click(function(e) {
e.preventDefault();
var $this = $(this);
$this.toggleClass('show-more');
if ($this.hasClass('show-more')) {
$this.next().removeClass('opened',0);
$this.html(adminPageVars.expandText + ' ▼');
} else {
$this.next().addClass('opened',0);
$this.html(adminPageVars.collapseText + ' ▲');
}
});
// Email Delivery >> Send test email
$('#send-test-email').click(function(e) {
e.preventDefault();
var emailTo = $('#test-email-to').val();
var defaultTestEmailFailedMessage = $('#test-email-failed-message').text();
if ( emailTo ) {
$('#ajax-result').show();
$('.sending-test-email').show();
$('.test-email-result').hide();
$('#test-email-success').hide();
$('#test-email-failed').hide();
$('#test-email-failed-message').text(defaultTestEmailFailedMessage);
$.ajax({
url: ajaxurl,
dataType: 'json',
data: {
'action':'send_test_email',
'email_to': emailTo,
'nonce': adminPageVars.sendTestEmailNonce
},
success:function(data) {
var response = data;
if ( response.status == 'success' ) {
setTimeout( function() {
$('.sending-test-email').hide();
// $('.test-email-result').show();
$('#test-email-success').show();
}, 1500);
}
if ( response.status == 'failed' ) {
if ( response.message ) {
$('#test-email-failed-message').text(response.message);
} else {
$('#test-email-failed-message').text(defaultTestEmailFailedMessage);
}
setTimeout( function() {
$('.sending-test-email').hide();
// $('.test-email-result').show();
$('#test-email-failed').show();
}, 1500);
}
},
error:function(errorThrown) {
console.log(errorThrown);
$('#test-email-failed-message').text(defaultTestEmailFailedMessage);
setTimeout( function() {
$('.sending-test-email').hide();
$('.test-email-result').show();
$('#test-email-failed').show();
}, 1500);
}
});
} else {
alert( 'Please enter destination email address first.' );
}
});
// Initialize data tables
var table = $("#login-attempts-log").DataTable({
pageLength: 10,
order: [[2, 'desc']],
columnDefs: [
{ targets: 3, orderable: false, searchable: false }
],
language: {
emptyTable: adminPageVars.dataTable.emptyTable,
info: adminPageVars.dataTable.info,
infoEmpty: adminPageVars.dataTable.infoEmpty,
infoFiltered: adminPageVars.dataTable.infoFiltered,
lengthMenu: adminPageVars.dataTable.lengthMenu,
search: adminPageVars.dataTable.search,
zeroRecords: adminPageVars.dataTable.zeroRecords,
paginate: {
first: adminPageVars.dataTable.paginate.first,
last: adminPageVars.dataTable.paginate.last,
next: adminPageVars.dataTable.paginate.next,
previous: adminPageVars.dataTable.paginate.previous
},
}
});
// Toast notifications
function asenhaShowToast(type, message, duration) {
if ( ! message ) {
return;
}
// Create toast container if it doesn't exist.
var $container = $('#asenha-toast-container');
if ( ! $container.length ) {
$container = $('<div id="asenha-toast-container"></div>');
$('body').append($container);
}
// Create toast element with icon.
var iconMap = {
success: '✓',
error: '✕',
warning: '⚠',
info: ''
};
var toastType = type || 'info';
var $toast = $('<div></div>').addClass('asenha-toast asenha-toast-' + toastType);
var $icon = $('<span></span>').addClass('asenha-toast-icon').text(iconMap[toastType] || '');
var $message = $('<span></span>').addClass('asenha-toast-message').text(message);
var $close = $('<button></button>')
.addClass('asenha-toast-close')
.attr('type', 'button')
.attr('aria-label', 'Dismiss')
.text('×');
$toast.append($icon, $message, $close);
$container.append($toast);
// Trigger slide-in animation after a brief delay for CSS transition.
setTimeout(function() {
$toast.addClass('asenha-toast-visible');
}, 10);
// Auto dismiss after specified duration (default 5 seconds).
var dismissDuration = duration || 5000;
var dismissTimeout = setTimeout(function() {
dismissToast($toast);
}, dismissDuration);
// Manual dismiss on close button click.
$close.on('click', function() {
clearTimeout(dismissTimeout);
dismissToast($toast);
});
function dismissToast($el) {
$el.removeClass('asenha-toast-visible');
setTimeout(function() {
$el.remove();
}, 300);
}
}
// Release lock for an IP address (Limit Login Attempts)
$('body').on('click', '.asenha-release-login-lock', function(e) {
e.preventDefault();
var $btn = $(this);
var ipAddress = $btn.data('ip-address');
if ( ! ipAddress ) {
return false;
}
$btn.addClass('disabled').attr('aria-disabled', 'true');
$.ajax({
url: ajaxurl,
method: 'POST',
dataType: 'json',
data: {
'action': 'asenha_release_login_lock',
'nonce': adminPageVars.nonce,
'ip_address': ipAddress
},
success: function(response) {
if ( response && response.success ) {
table.row( $btn.closest('tr') ).remove().draw(false);
var successTemplate = ( adminPageVars.limitLoginAttempts && adminPageVars.limitLoginAttempts.releaseLockSuccess )
? adminPageVars.limitLoginAttempts.releaseLockSuccess
: '';
if ( successTemplate ) {
var successMessage = successTemplate.replace('%s', ipAddress);
asenhaShowToast('success', successMessage, 5000);
}
} else {
$btn.removeClass('disabled').removeAttr('aria-disabled');
if ( adminPageVars.limitLoginAttempts && adminPageVars.limitLoginAttempts.releaseLockError ) {
asenhaShowToast('error', adminPageVars.limitLoginAttempts.releaseLockError, 5000);
}
}
},
error: function() {
$btn.removeClass('disabled').removeAttr('aria-disabled');
if ( adminPageVars.limitLoginAttempts && adminPageVars.limitLoginAttempts.releaseLockError ) {
asenhaShowToast('error', adminPageVars.limitLoginAttempts.releaseLockError, 5000);
}
}
});
return false;
});
// Place fields into the "Content Management" tab
$('.enable-duplication').appendTo('.fields-content-management > table > tbody');
$('.duplication-redirect-destination').appendTo('.fields-content-management .enable-duplication .asenha-subfields');
$('.content-order').appendTo('.fields-content-management > table > tbody');
// $('.content-order-subfields-heading').appendTo('.fields-content-management .content-order .asenha-subfields');
$('.content-order-for').appendTo('.fields-content-management .content-order .asenha-subfields');
$('.media-files-visibility-control').appendTo('.fields-content-management > table > tbody');
$('.enable-media-replacement').appendTo('.fields-content-management > table > tbody');
$('.disable-media-replacement-cache-busting').appendTo('.fields-content-management .enable-media-replacement .asenha-subfields');
$('.enable-svg-upload').appendTo('.fields-content-management > table > tbody');
$('.enable-svg-upload-for').appendTo('.fields-content-management .enable-svg-upload .asenha-subfields');
$('.enable-avif-upload').appendTo('.fields-content-management > table > tbody');
$('.avif-support-status').appendTo('.fields-content-management .enable-avif-upload .asenha-subfields');
$('.enable-external-permalinks').appendTo('.fields-content-management > table > tbody');
$('.enable-external-permalinks-for').appendTo('.fields-content-management .enable-external-permalinks .asenha-subfields');
$('.external-links-new-tab').appendTo('.fields-content-management > table > tbody');
$('.custom-nav-menu-items-new-tab').appendTo('.fields-content-management > table > tbody');
$('.enable-missed-schedule-posts-auto-publish').appendTo('.fields-content-management > table > tbody');
// Place fields into "Admin Interface" tab
$('.hide-modify-elements').appendTo('.fields-admin-interface > table > tbody');
$('.hide-ab-wp-logo-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-ab-site-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-ab-customize-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-ab-updates-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-ab-comments-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-ab-new-content-menu').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-ab-howdy').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-help-drawer').appendTo('.fields-admin-interface .hide-modify-elements .asenha-subfields');
$('.hide-admin-notices').appendTo('.fields-admin-interface > table > tbody');
$('.disable-dashboard-widgets').appendTo('.fields-admin-interface > table > tbody');
$('.disable-welcome-panel-in-dashboard').appendTo('.fields-admin-interface .disable-dashboard-widgets .asenha-subfields');
$('.disabled-dashboard-widgets').appendTo('.fields-admin-interface .disable-dashboard-widgets .asenha-subfields');
$('.hide-admin-bar').appendTo('.fields-admin-interface > table > tbody');
$('.hide-admin-bar-for').appendTo('.fields-admin-interface .hide-admin-bar .asenha-subfields');
$('.hide-admin-bar-always-show-for-admins').appendTo('.fields-admin-interface .hide-admin-bar .asenha-subfields');
$('.hide-admin-bar-description').appendTo('.fields-admin-interface .hide-admin-bar .asenha-subfields');
$('.wider-admin-menu').appendTo('.fields-admin-interface > table > tbody');
$('.admin-menu-width').appendTo('.fields-admin-interface .wider-admin-menu .asenha-subfields');
$('.customize-admin-menu').appendTo('.fields-admin-interface > table > tbody');
$('.admin-menu-organizer-sticky-collapse-menu').appendTo('.fields-admin-interface .customize-admin-menu .asenha-subfields');
$('.show-custom-taxonomy-filters').appendTo('.fields-admin-interface > table > tbody');
$('.enhance-list-tables').appendTo('.fields-admin-interface > table > tbody');
$('.show-featured-image-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.show-excerpt-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.show-last-modified-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.show-id-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.show-file-size-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.show-id-in-action_row').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.hide-date-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.hide-comments-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.hide-post-tags-column').appendTo('.fields-admin-interface .enhance-list-tables .asenha-subfields');
$('.various-admin-ui-enhancements').appendTo('.fields-admin-interface > table > tbody');
$('.media-library-infinite-scrolling').appendTo('.fields-admin-interface .various-admin-ui-enhancements .asenha-subfields');
$('.display-active-plugins-first').appendTo('.fields-admin-interface .various-admin-ui-enhancements .asenha-subfields');
$('.custom-admin-footer-text').appendTo('.fields-admin-interface > table > tbody');
$('.custom-admin-footer-left').appendTo('.fields-admin-interface .custom-admin-footer-text .asenha-subfields');
reinitWpEditor('admin_site_enhancements--custom_admin_footer_left');
$('.custom-admin-footer-right').appendTo('.fields-admin-interface .custom-admin-footer-text .asenha-subfields');
reinitWpEditor('admin_site_enhancements--custom_admin_footer_right');
// Place fields into "Log In | Log Out" tab
$('.change-login-url').appendTo('.fields-login-logout > table > tbody');
$('.custom-login-slug').appendTo('.fields-login-logout .change-login-url .asenha-subfields');
$('.custom-login-whitelist').appendTo('.fields-login-logout .change-login-url .asenha-subfields');
$('.default-login-redirect-slug').appendTo('.fields-login-logout .change-login-url .asenha-subfields');
$('.change-login-url-description').appendTo('.fields-login-logout .change-login-url .asenha-subfields');
$('.login-id-type-restriction').appendTo('.fields-login-logout > table > tbody');
$('.login-id-type').appendTo('.fields-login-logout .login-id-type-restriction .asenha-subfields');
$('.site-identity-on-login').appendTo('.fields-login-logout > table > tbody');
$('.enable-login-logout-menu').appendTo('.fields-login-logout > table > tbody');
$('.enable-last-login-column').appendTo('.fields-login-logout > table > tbody');
$('.registration-date-column').appendTo('.fields-login-logout > table > tbody');
$('.redirect-after-login').appendTo('.fields-login-logout > table > tbody');
$('.redirect-after-login-to-slug').appendTo('.fields-login-logout .redirect-after-login .asenha-subfields');
$('.redirect-after-login-for').appendTo('.fields-login-logout .redirect-after-login .asenha-subfields');
$('.redirect-after-logout').appendTo('.fields-login-logout > table > tbody');
$('.redirect-after-logout-to-slug').appendTo('.fields-login-logout .redirect-after-logout .asenha-subfields');
$('.redirect-after-logout-for').appendTo('.fields-login-logout .redirect-after-logout .asenha-subfields');
$('.disable-user-account').appendTo('.fields-login-logout > table > tbody');
// Place fields into "Custom Code" tab
$('.enable-custom-admin-css').appendTo('.fields-custom-code > table > tbody');
$('.custom-admin-css').appendTo('.fields-custom-code .enable-custom-admin-css .asenha-subfields');
$('.enable-custom-frontend-css').appendTo('.fields-custom-code > table > tbody');
$('.custom-frontend-css').appendTo('.fields-custom-code .enable-custom-frontend-css .asenha-subfields');
$('.insert-head-body-footer-code').appendTo('.fields-custom-code > table > tbody');
$('.disable-code-unslash').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.head-code-priority').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.head-code').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.body-code-priority').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.body-code').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.footer-code-priority').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.footer-code').appendTo('.fields-custom-code .insert-head-body-footer-code .asenha-subfields');
$('.enable-custom-body-class').appendTo('.fields-custom-code > table > tbody');
$('.enable-custom-body-class-for').appendTo('.fields-custom-code .enable-custom-body-class .asenha-subfields');
$('.manage-ads-appads-txt').appendTo('.fields-custom-code > table > tbody');
$('.ads-txt-content').appendTo('.fields-custom-code .manage-ads-appads-txt .asenha-subfields');
$('.app-ads-txt-content').appendTo('.fields-custom-code .manage-ads-appads-txt .asenha-subfields');
$('.manage-robots-txt').appendTo('.fields-custom-code > table > tbody');
$('.robots-txt-content').appendTo('.fields-custom-code .manage-robots-txt .asenha-subfields');
// Place fields into the "Disable Components" tab
$('.disable-gutenberg').appendTo('.fields-disable-components > table > tbody');
$('.disable-gutenberg-for').appendTo('.fields-disable-components .disable-gutenberg .asenha-subfields');
$('.disable-gutenberg-frontend-styles').appendTo('.fields-disable-components .disable-gutenberg .asenha-subfields');
$('.disable-comments').appendTo('.fields-disable-components > table > tbody');
$('.disable-comments-for').appendTo('.fields-disable-components .disable-comments .asenha-subfields');
$('.disable-comments-all-cpts-description').appendTo('.fields-disable-components .disable-comments .asenha-subfields');
$('.disable-rest-api').appendTo('.fields-disable-components > table > tbody');
$('.disable-feeds').appendTo('.fields-disable-components > table > tbody');
$('.disable-embeds').appendTo('.fields-disable-components > table > tbody');
$('.disable-all-updates').appendTo('.fields-disable-components > table > tbody');
$('.disable-author-archives').appendTo('.fields-disable-components > table > tbody');
$('.disable-smaller-components').appendTo('.fields-disable-components > table > tbody');
$('.disable-head-generator-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-feed-generator-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-resource-version-number').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-head-wlwmanifest-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-head-rsd-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-head-shortlink-tag').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-frontend-dashicons').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-emoji-support').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-jquery-migrate').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-block-widgets').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-lazy-load').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-application-passwords').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-site-admin-email-verification-screen').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-user-email-notification-after-password-change').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-admin-email-notification-after-password-change').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
$('.disable-plugin-theme-editor').appendTo('.fields-disable-components .disable-smaller-components .asenha-subfields');
// Place fields into "Security" tab
$('.limit-login-attempts').appendTo('.fields-security > table > tbody');
$('.login-fails-allowed').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
$('.login-lockout-maxcount').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
$('.limit-login-attempts-header-override').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
$('.limit-login-attempts-header-override-description').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
$('.login-attempts-log-table').appendTo('.fields-security .limit-login-attempts .asenha-subfields');
$('.obfuscate-author-slugs').appendTo('.fields-security > table > tbody');
$('.obfuscate-email-address').appendTo('.fields-security > table > tbody');
$('.obfuscate-email-address-description').appendTo('.fields-security .obfuscate-email-address .asenha-subfields');
$('.obfuscate-email-address-builder-safe-mode').appendTo('.fields-security .obfuscate-email-address .asenha-subfields');
$('.disable-xmlrpc').appendTo('.fields-security > table > tbody');
// Place fields into "Optimizations" tab
$('.image-upload-control').appendTo('.fields-optimizations > table > tbody');
$('.image-max-width').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
$('.image-max-height').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
$('.image-upload-control-description').appendTo('.fields-optimizations .image-upload-control .asenha-subfields');
$('.enable-revisions-control').appendTo('.fields-optimizations > table > tbody');
$('.revisions-max-number').appendTo('.fields-optimizations .enable-revisions-control .asenha-subfields');
$('.enable-revisions-control-for').appendTo('.fields-optimizations .enable-revisions-control .asenha-subfields');
$('.enable-heartbeat-control').appendTo('.fields-optimizations > table > tbody');
$('.heartbeat-control-for-admin-pages').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
$('.heartbeat-interval-for-admin-pages').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
$('.heartbeat-control-for-post-edit').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
$('.heartbeat-interval-for-post-edit').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
$('.heartbeat-control-for-frontend').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
$('.heartbeat-interval-for-frontend').appendTo('.fields-optimizations .enable-heartbeat-control .asenha-subfields');
// Place fields into "Utilities" tab
$('.smtp-email-delivery').appendTo('.fields-utilities > table > tbody');
$('.smtp-default-from-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-default-from-name').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-default-from-email').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-force-from').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp--description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-host').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-port').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-security').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-username').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-password').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-bypass-ssl-verification').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-debug').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-send-test-email-description').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-send-test-email-to').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.smtp-send-test-email-result').appendTo('.fields-utilities .smtp-email-delivery .asenha-subfields');
$('.multiple-user-roles').appendTo('.fields-utilities > table > tbody');
$('.image-sizes-panel').appendTo('.fields-utilities > table > tbody');
$('.view-admin-as-role').appendTo('.fields-utilities > table > tbody');
$('.view-admin-as-role-description').appendTo('.fields-utilities .view-admin-as-role .asenha-subfields');
$('.enable-password-protection').appendTo('.fields-utilities > table > tbody');
$('.password-protection-password').appendTo('.fields-utilities .enable-password-protection .asenha-subfields');
$('.password-protection-notes').appendTo('.fields-utilities .enable-password-protection .asenha-subfields');
$('.maintenance-mode').appendTo('.fields-utilities > table > tbody');
$('.maintenance-page-type-custom').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
$('.maintenance-page-heading').appendTo('.maintenance-page-type-custom');
$('.maintenance-page-description').appendTo('.maintenance-page-type-custom');
$('.maintenance-page-background').appendTo('.maintenance-page-type-custom');
$('.maintenance-mode-description').appendTo('.fields-utilities .maintenance-mode .asenha-subfields');
$('.redirect-404-to-homepage').appendTo('.fields-utilities > table > tbody');
$('.display-system-summary').appendTo('.fields-utilities > table > tbody');
$('.search-engine-visibility-status').appendTo('.fields-utilities > table > tbody');
// Remove empty .form-table that originally holds the fields
const formTableCount = $('.form-table').length;
// $('.form-table')[formTableCount-1].remove();
// Enable Custom Admin CSS => Initialize CodeMirror
var adminCssTextarea = document.getElementById("admin_site_enhancements[custom_admin_css]");
// if ( typeof CodeMirror != "undefined" ) {
// alert('CodeMirror is available');
// }
var adminCssEditor = CodeMirror.fromTextArea(adminCssTextarea, {
mode: "css",
lineNumbers: true,
lineWrapping: true
});
adminCssEditor.setSize("100%",600);
// Enable Custom Frontend CSS => Initialize CodeMirror
var frontendCssTextarea = document.getElementById("admin_site_enhancements[custom_frontend_css]");
var frontendCssEditor = CodeMirror.fromTextArea(frontendCssTextarea, {
mode: "css",
lineNumbers: true,
lineWrapping: true
});
frontendCssEditor.setSize("100%",600);
// Manage ads.txt and app-ads.txt=> Initialize CodeMirror
var adsTxtTextarea = document.getElementById("admin_site_enhancements[ads_txt_content]");
var adsTxtEditor = CodeMirror.fromTextArea(adsTxtTextarea, {
mode: "markdown",
lineNumbers: true,
lineWrapping: true
});
adsTxtEditor.setSize("100%",300);
var appAdsTxtTextarea = document.getElementById("admin_site_enhancements[app_ads_txt_content]");
var appAdsTxtEditor = CodeMirror.fromTextArea(appAdsTxtTextarea, {
mode: "markdown",
lineNumbers: true,
lineWrapping: true
});
appAdsTxtEditor.setSize("100%",300);
// Manage robots.txt => Initialize CodeMirror
var robotsTxtTextarea = document.getElementById("admin_site_enhancements[robots_txt_content]");
var robotsTxtEditor = CodeMirror.fromTextArea(robotsTxtTextarea, {
mode: "markdown",
lineNumbers: true,
lineWrapping: true
});
robotsTxtEditor.setSize("100%",400);
// Insert <head>, <body> and <footer> code => Initialize CodeMirror
var headCodeTextarea = document.getElementById("admin_site_enhancements[head_code]");
var headCodeEditor = CodeMirror.fromTextArea(headCodeTextarea, {
mode: "htmlmixed",
lineNumbers: true,
lineWrapping: true
});
headCodeEditor.setSize("100%",300);
var bodyCodeTextarea = document.getElementById("admin_site_enhancements[body_code]");
var bodyCodeEditor = CodeMirror.fromTextArea(bodyCodeTextarea, {
mode: "htmlmixed",
lineNumbers: true,
lineWrapping: true
});
bodyCodeEditor.setSize("100%",300);
var footerCodeTextarea = document.getElementById("admin_site_enhancements[footer_code]");
var footerCodeEditor = CodeMirror.fromTextArea(footerCodeTextarea, {
mode: "htmlmixed",
lineNumbers: true,
lineWrapping: true
});
footerCodeEditor.setSize("100%",300);
function refreshCodeMirror() {
adminCssEditor.refresh(); // Custom Admin CSS >> CodeMirror
frontendCssEditor.refresh(); // Custom Fronend CSS >> CodeMirror
adsTxtEditor.refresh(); // Manage ads.txt >> CodeMirror
appAdsTxtEditor.refresh(); // Manage app-ads.txt >> CodeMirror
headCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
bodyCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
footerCodeEditor.refresh(); // Insert <head>, <body> and <footer> code >> CodeMirror
robotsTxtEditor.refresh(); // Manage robots.txt >> CodeMirror
}
// Show and hide corresponding fields on tab clicks
function tabSwitcher( tabSlug ) {
$('.asenha-fields.fields-'+tabSlug).addClass('section-visible');
$('.asenha-fields.fields-'+tabSlug).removeClass('section-hidden');
$('.asenha-fields:not(.fields-'+tabSlug+')').removeClass('section-visible');
$('.asenha-fields:not(.fields-'+tabSlug+')').addClass('section-hidden');
window.location.hash = tabSlug;
Cookies.set('asenha_tab', tabSlug, { expires: 1 }); // expires in 1 day
}
$('#tab-content-management + label').click( function() {
tabSwitcher('content-management');
});
$('#tab-admin-interface + label').click( function() {
tabSwitcher('admin-interface');
});
$('#tab-login-logout + label').click( function() {
tabSwitcher('login-logout');
refreshCodeMirror();
});
$('#tab-custom-code + label').click( function() {
tabSwitcher('custom-code');
refreshCodeMirror();
});
$('#tab-disable-components + label').click( function() {
tabSwitcher('disable-components');
});
$('#tab-security + label').click( function() {
tabSwitcher('security');
});
$('#tab-optimizations + label').click( function() {
tabSwitcher('optimizations');
});
$('#tab-utilities + label').click( function() {
tabSwitcher('utilities');
refreshCodeMirror();
});
// Open tab set in 'asenha_tab' cookie set on saving changes. Defaults to content-management tab when cookie is empty
var asenhaTabHash = Cookies.get('asenha_tab');
if (typeof asenhaTabHash === 'undefined') {
$('#tab-content-management + label').trigger('click');
} else {
$('#tab-' + asenhaTabHash + ' + label').trigger('click');
}
// Show or hide subfields on document ready and on toggle click
function subfieldsToggler( fieldId, fieldClass, sortableId, codeMirrorInstances ) {
if (document.getElementById('admin_site_enhancements['+fieldId+']')) {
// Show/hide subfields on document ready, depending on if module is enabled or not
if ( document.getElementById('admin_site_enhancements['+fieldId+']').checked ) {
$('.'+fieldClass+' .asenha-subfields').show();
if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
$('.'+fieldClass+' .asenha-subfield-select-inner').show();
}
$('.asenha-toggle.'+fieldClass+' td .asenha-field-with-options').addClass('is-enabled');
if ( codeMirrorInstances ) {
Object.keys(codeMirrorInstances).forEach(function(key) {
if ( codeMirrorInstances[key] ) {
codeMirrorInstances[key].refresh();
}
});
}
} else {
$('.'+fieldClass+' .asenha-subfields').hide();
if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
$('.'+fieldClass+' .asenha-subfield-select-inner').hide();
}
}
// Show/hide subfields on toggle click
document.getElementById('admin_site_enhancements['+fieldId+']').addEventListener('click', event => {
if (event.target.checked) {
$('.'+fieldClass+' .asenha-subfields').fadeIn();
if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
$('.'+fieldClass+' .asenha-subfield-select-inner').show();
}
$('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
if (document.getElementById(sortableId)) {
// Initialize sortable elements: https://api.jqueryui.com/sortable/
$('#' + sortableId ).sortable();
}
if ( codeMirrorInstances ) {
Object.keys(codeMirrorInstances).forEach(function(key) {
if ( codeMirrorInstances[key] ) {
codeMirrorInstances[key].refresh();
}
});
}
} else {
$('.'+fieldClass+' .asenha-subfields').hide();
if (document.querySelector('.'+fieldClass+' .asenha-subfield-select-inner')) {
$('.'+fieldClass+' .asenha-subfield-select-inner').hide();
}
$('.'+fieldClass+' .asenha-field-with-options').toggleClass('is-enabled');
}
});
}
}
// Re-init wp_editor for snippet description. Required because the wp_editor was moved in the DOM after document ready.
// Ref: https://stackoverflow.com/a/21519323
// Ref: https://core.trac.wordpress.org/ticket/19173
function reinitWpEditor(id) {
tinymce.execCommand('mceRemoveEditor', true, id);
var init = tinymce.extend( {}, tinyMCEPreInit.mceInit[ id ] );
try { tinymce.init( init ); } catch(e){}
$('textarea[id="' + id + '"]').closest('form').find('input[type="submit"]').click(function(){
if( getUserSetting( 'editor' ) == 'tmce' ){
var id = mce.find( 'textarea' ).attr( 'id' );
tinymce.execCommand( 'mceRemoveEditor', false, id );
tinymce.execCommand( 'mceAddEditor', false, id );
}
return true;
});
}
subfieldsToggler( 'enable_duplication', 'enable-duplication' );
subfieldsToggler( 'content_order', 'content-order' );
subfieldsToggler( 'media_files_visibility_control', 'media-files-visibility-control' );
subfieldsToggler( 'enable_media_replacement', 'enable-media-replacement' );
subfieldsToggler( 'enable_svg_upload', 'enable-svg-upload' );
subfieldsToggler( 'enable_avif_upload', 'enable-avif-upload' );
subfieldsToggler( 'enable_external_permalinks', 'enable-external-permalinks' );
subfieldsToggler( 'enhance_list_tables', 'enhance-list-tables' );
subfieldsToggler( 'custom_admin_footer_text', 'custom-admin-footer-text' );
subfieldsToggler( 'wider_admin_menu', 'wider-admin-menu' );
subfieldsToggler( 'customize_admin_menu', 'customize-admin-menu', 'custom-admin-menu' );
subfieldsToggler( 'disable_dashboard_widgets', 'disable-dashboard-widgets' );
subfieldsToggler( 'various_admin_ui_enhancements', 'various-admin-ui-enhancements' );
// Clean Up Admin Bar
subfieldsToggler( 'hide_modify_elements', 'hide-modify-elements' );
subfieldsToggler( 'hide_admin_bar', 'hide-admin-bar' );
subfieldsToggler( 'change_login_url', 'change-login-url' );
subfieldsToggler( 'login_id_type_restriction', 'login-id-type-restriction' );
subfieldsToggler( 'redirect_after_login', 'redirect-after-login' );
subfieldsToggler( 'redirect_after_logout', 'redirect-after-logout' );
subfieldsToggler( 'enable_custom_admin_css', 'enable-custom-admin-css', '', {adminCssEditor} );
subfieldsToggler( 'enable_custom_frontend_css', 'enable-custom-frontend-css', '', {frontendCssEditor} );
subfieldsToggler( 'insert_head_body_footer_code', 'insert-head-body-footer-code', '', {headCodeEditor,bodyCodeEditor,footerCodeEditor} );
subfieldsToggler( 'enable_custom_body_class', 'enable-custom-body-class' );
subfieldsToggler( 'manage_ads_appads_txt', 'manage-ads-appads-txt', '', {adsTxtEditor,appAdsTxtEditor} );
subfieldsToggler( 'manage_robots_txt', 'manage-robots-txt', '', {robotsTxtEditor} );
subfieldsToggler( 'disable_gutenberg', 'disable-gutenberg' );
subfieldsToggler( 'disable_comments', 'disable-comments' );
subfieldsToggler( 'disable_smaller_components', 'disable-smaller-components' );
subfieldsToggler( 'limit_login_attempts', 'limit-login-attempts' );
subfieldsToggler( 'obfuscate_email_address', 'obfuscate-email-address' );
subfieldsToggler( 'image_upload_control', 'image-upload-control' );
subfieldsToggler( 'enable_revisions_control', 'enable-revisions-control' );
subfieldsToggler( 'enable_heartbeat_control', 'enable-heartbeat-control' );
// Enable Heartbeat Control => Check if "Modify interval" is chosen/clicked and show/hide the corresponding select field
if ( $('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]:checked').val() == 'modify' ) {
$('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
}
// Two-Factor Authentication (2FA) => Show "Email code validity" only when Email codes is enabled.
function toggleTwoFactorEmailTokenTtlVisibility() {
var twoFactorSettingsMode = $( 'input[name="admin_site_enhancements[two_factor_settings_mode]"]:checked' ).val() || 'same_for_all_roles';
var emailCodesEnabled = $( '#two_factor_available_providers_email' ).is( ':checked' );
if ( 'same_for_all_roles' !== twoFactorSettingsMode ) {
$( '.two-factor-email-token-ttl' ).hide();
$( '.two-factor-email-auto-enable' ).hide();
} else if ( emailCodesEnabled ) {
$( '.two-factor-email-token-ttl' ).show();
$( '.two-factor-email-auto-enable' ).show();
} else {
$( '.two-factor-email-token-ttl' ).hide();
$( '.two-factor-email-auto-enable' ).hide();
}
}
function getTwoFactorSettingsMode() {
return $( 'input[name="admin_site_enhancements[two_factor_settings_mode]"]:checked' ).val() || 'same_for_all_roles';
}
function getTwoFactorRoleSlugFromName( fieldName ) {
var matches = fieldName.match( /two_factor_role_settings\]\[([^\]]+)\]\[enabled\]/ );
return matches ? matches[1] : '';
}
function toggleTwoFactorRoleEmailTokenTtlVisibility( roleSlug ) {
if ( ! roleSlug ) {
return;
}
var emailFieldSelector = 'input[name="admin_site_enhancements[two_factor_role_settings][' + roleSlug + '][available_providers][]"][value="email"]';
var emailCodesEnabled = $( emailFieldSelector ).is( ':checked' );
if ( emailCodesEnabled ) {
$( 'tr.two-factor-role-email-token-ttl-' + roleSlug ).show();
$( 'tr.two-factor-role-email-auto-enable-' + roleSlug ).show();
} else {
$( 'tr.two-factor-role-email-token-ttl-' + roleSlug ).hide();
$( 'tr.two-factor-role-email-auto-enable-' + roleSlug ).hide();
}
}
function toggleTwoFactorRoleSettingsPanels() {
var isPerRoleMode = ( 'different_per_role' === getTwoFactorSettingsMode() );
$( 'tr.two-factor-role-settings-panel' ).hide();
if ( ! isPerRoleMode ) {
return;
}
$( 'input[name^="admin_site_enhancements[two_factor_role_settings]"][name$="[enabled]"]' ).each( function() {
var roleSlug = getTwoFactorRoleSlugFromName( $( this ).attr( 'name' ) );
if ( ! roleSlug || ! $( this ).is( ':checked' ) ) {
return;
}
$( 'tr.two-factor-role-settings-panel-' + roleSlug ).show();
toggleTwoFactorRoleEmailTokenTtlVisibility( roleSlug );
} );
}
function toggleTwoFactorSettingsModeVisibility() {
var isPerRoleMode = ( 'different_per_role' === getTwoFactorSettingsMode() );
if ( isPerRoleMode ) {
$( 'tr.two-factor-settings-mode-shared' ).hide();
$( 'tr.two-factor-settings-mode-per-role' ).show();
} else {
$( 'tr.two-factor-settings-mode-shared' ).show();
$( 'tr.two-factor-settings-mode-per-role' ).hide();
}
toggleTwoFactorEmailTokenTtlVisibility();
toggleTwoFactorRoleSettingsPanels();
}
toggleTwoFactorEmailTokenTtlVisibility();
toggleTwoFactorSettingsModeVisibility();
$( document ).on( 'change', '#two_factor_available_providers_email', toggleTwoFactorEmailTokenTtlVisibility );
$( document ).on( 'change', 'input[name="admin_site_enhancements[two_factor_authentication]"]', toggleTwoFactorEmailTokenTtlVisibility );
$( document ).on( 'change', 'input[name="admin_site_enhancements[two_factor_settings_mode]"]', toggleTwoFactorSettingsModeVisibility );
$( document ).on( 'change', 'input[name^="admin_site_enhancements[two_factor_role_settings]"][name$="[enabled]"]', toggleTwoFactorRoleSettingsPanels );
$( document ).on( 'change', 'input[name^="admin_site_enhancements[two_factor_role_settings]"][name*="[available_providers]"]', function() {
var matches = $( this ).attr( 'name' ).match( /two_factor_role_settings\]\[([^\]]+)\]\[available_providers\]/ );
if ( matches && matches[1] ) {
toggleTwoFactorRoleEmailTokenTtlVisibility( matches[1] );
}
} );
$('input[name="admin_site_enhancements[heartbeat_control_for_admin_pages]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'modify' ) {
$('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').show();
} else {
$('.heartbeat-interval-for-admin-pages .asenha-subfield-select-inner').hide();
}
});
if ( $('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]:checked').val() == 'modify' ) {
$('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
}
$('input[name="admin_site_enhancements[heartbeat_control_for_post_edit]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'modify' ) {
$('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').show();
} else {
$('.heartbeat-interval-for-post-edit .asenha-subfield-select-inner').hide();
}
});
if ( $('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]:checked').val() == 'modify' ) {
$('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
}
$('input[name="admin_site_enhancements[heartbeat_control_for_frontend]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'modify' ) {
$('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').show();
} else {
$('.heartbeat-interval-for-frontend .asenha-subfield-select-inner').hide();
}
});
subfieldsToggler( 'smtp_email_delivery', 'smtp-email-delivery' );
subfieldsToggler( 'view_admin_as_role', 'view-admin-as-role' );
subfieldsToggler( 'enable_password_protection', 'enable-password-protection' );
// Enable Password protection => Empty field value on click, so new password can be easily entered
var oldValue = '';
$('input[name="admin_site_enhancements[password_protection_password]"]').focusin(function() {
oldValue = $(this).val();
$(this).val('');
});
$('input[name="admin_site_enhancements[password_protection_password]"]').focusout(function() {
if ( $(this).val() == '' ) {
$(this).val(oldValue);
}
});
subfieldsToggler( 'maintenance_mode', 'maintenance-mode' );
// Disable Gutenberg
if ( $('input[name="admin_site_enhancements[disable_gutenberg_type]"]:checked').val() == 'all-post-types' ) {
$('.asenha-checkbox-item.disable-gutenberg-for').hide();
$('.disable-gutenberg-type').removeClass('asenha-th-border-bottom');
} else {
$('.asenha-checkbox-item.disable-gutenberg-for').show();
$('.disable-gutenberg-type').addClass('asenha-th-border-bottom');
}
$('input[name="admin_site_enhancements[disable_gutenberg_type]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'all-post-types' ) {
$('.asenha-checkbox-item.disable-gutenberg-for').hide();
$('.disable-gutenberg-type').removeClass('asenha-th-border-bottom');
} else {
$('.asenha-checkbox-item.disable-gutenberg-for').show();
$('.disable-gutenberg-type').addClass('asenha-th-border-bottom');
}
});
// Disable Comments
if ( $('input[name="admin_site_enhancements[disable_comments_type]"]:checked').val() == 'all-post-types' ) {
$('.asenha-checkbox-item.disable-comments-for').hide();
$('.disable-comments-type').removeClass('asenha-th-border-bottom');
} else {
$('.asenha-checkbox-item.disable-comments-for').show();
$('.disable-comments-type').addClass('asenha-th-border-bottom');
}
$('input[name="admin_site_enhancements[disable_comments_type]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'all-post-types' ) {
$('.asenha-checkbox-item.disable-comments-for').hide();
$('.disable-comments-type').removeClass('asenha-th-border-bottom');
} else {
$('.asenha-checkbox-item.disable-comments-for').show();
$('.disable-comments-type').addClass('asenha-th-border-bottom');
}
});
// CAPTCHA Protection
// CAPTCHA Type conditional show/hide
$(document).on('change', 'select[name="admin_site_enhancements[captcha_protection_types]"]', function() {
var selectValue = this.value;
if ( 'altcha' == selectValue ) {
$('.captcha-protection-altcha-wrapper').show();
$('.captcha-protection-recaptcha-wrapper').hide();
$('.captcha-protection-turnstile-wrapper').hide();
// $('input#captcha_woo_locations_woo_checkout_form').prop('disabled', '');
// $('input#captcha_woo_locations_woo_checkout_form').show();
// $('label[for="captcha_woo_locations_woo_checkout_form"]').show();
} else if ( 'recaptcha' == selectValue ) {
$('.captcha-protection-altcha-wrapper').hide();
$('.captcha-protection-recaptcha-wrapper').show();
$('.captcha-protection-turnstile-wrapper').hide();
// $('input#captcha_woo_locations_woo_checkout_form').prop('disabled', '');
// $('input#captcha_woo_locations_woo_checkout_form').show();
// $('label[for="captcha_woo_locations_woo_checkout_form"]').show();
} else if ( 'turnstile' == selectValue ) {
$('.captcha-protection-altcha-wrapper').hide();
$('.captcha-protection-recaptcha-wrapper').hide();
$('.captcha-protection-turnstile-wrapper').show();
// $('input#captcha_woo_locations_woo_checkout_form').prop('disabled', 'disabled');
// $('input#captcha_woo_locations_woo_checkout_form').hide();
// $('label[for="captcha_woo_locations_woo_checkout_form"]').hide();
}
});
if ( 'altcha' == $('select[name="admin_site_enhancements[captcha_protection_types]"]').val() ) {
$('.captcha-protection-altcha-wrapper').show();
$('.captcha-protection-recaptcha-wrapper').hide();
$('.captcha-protection-turnstile-wrapper').hide();
$('input#captcha_woo_locations_woo_checkout_form').prop('disabled', '');
$('input#captcha_woo_locations_woo_checkout_form').show();
$('label[for="captcha_woo_locations_woo_checkout_form"]').show();
} else if ( 'recaptcha' == $('select[name="admin_site_enhancements[captcha_protection_types]"]').val() ) {
$('.captcha-protection-altcha-wrapper').hide();
$('.captcha-protection-recaptcha-wrapper').show();
$('.captcha-protection-turnstile-wrapper').hide();
$('input#captcha_woo_locations_woo_checkout_form').prop('disabled', '');
$('input#captcha_woo_locations_woo_checkout_form').show();
$('label[for="captcha_woo_locations_woo_checkout_form"]').show();
} else if ( 'turnstile' == $('select[name="admin_site_enhancements[captcha_protection_types]"]').val() ) {
$('.captcha-protection-altcha-wrapper').hide();
$('.captcha-protection-recaptcha-wrapper').hide();
$('.captcha-protection-turnstile-wrapper').show();
$('input#captcha_woo_locations_woo_checkout_form').prop('disabled', 'disabled');
$('input#captcha_woo_locations_woo_checkout_form').hide();
$('label[for="captcha_woo_locations_woo_checkout_form"]').hide();
}
// ALTCHA Floating UI conditional value selection
$(document).on('change', 'select[name="admin_site_enhancements[altcha_widget]"]', function() {
var selectValue = this.value;
if ( 'checkbox' == selectValue ) {
$('select[name="admin_site_enhancements[altcha_auto_verification]"]').val('');
} else if ( 'invisible' == selectValue ) {
$('select[name="admin_site_enhancements[altcha_auto_verification]"]').val('onsubmit');
}
});
if ( 'checkbox' == $('select[name="admin_site_enhancements[altcha_widget]"]').val() ) {
$('select[name="admin_site_enhancements[altcha_auto_verification]"]').val('');
} else if ( 'invisible' == $('select[name="admin_site_enhancements[altcha_widget]"]').val() ) {
$('select[name="admin_site_enhancements[altcha_auto_verification]"]').val('onsubmit');
}
// reCAPTCHA Type conditional show/hide
$(document).on('change', 'select[name="admin_site_enhancements[recaptcha_widget]"]', function() {
var selectValue = this.value;
if ( 'v2_checkbox' == selectValue ) {
$('.recaptcha-site-key-v2-checkbox').show();
$('.recaptcha-secret-key-v2-checkbox').show();
$('.recaptcha-site-key-v3-invisible').hide();
$('.recaptcha-secret-key-v3-invisible').hide();
} else if ( 'v3_invisible' == selectValue ) {
$('.recaptcha-site-key-v2-checkbox').hide();
$('.recaptcha-secret-key-v2-checkbox').hide();
$('.recaptcha-site-key-v3-invisible').show();
$('.recaptcha-secret-key-v3-invisible').show();
}
});
if ( 'v2_checkbox' == $('select[name="admin_site_enhancements[recaptcha_widget]"]').val() ) {
$('.recaptcha-site-key-v2-checkbox').show();
$('.recaptcha-secret-key-v2-checkbox').show();
$('.recaptcha-site-key-v3-invisible').hide();
$('.recaptcha-secret-key-v3-invisible').hide();
} else if ( 'v3_invisible' == $('select[name="admin_site_enhancements[recaptcha_widget]"]').val() ) {
$('.recaptcha-site-key-v2-checkbox').hide();
$('.recaptcha-secret-key-v2-checkbox').hide();
$('.recaptcha-site-key-v3-invisible').show();
$('.recaptcha-secret-key-v3-invisible').show();
}
// Email Address Obfuscator
if ( $('input[name="admin_site_enhancements[obfuscate_email_address_in_content]"]').is(':checked') ) {
$('.obfuscate-email-address-visitor-only').show();
} else {
$('.obfuscate-email-address-visitor-only').hide();
}
$('input[name="admin_site_enhancements[obfuscate_email_address_in_content]"]').click(function() {
if ($(this).is(':checked')) {
$('.obfuscate-email-address-visitor-only').show();
} else {
$('.obfuscate-email-address-visitor-only').hide();
}
});
// Image Upload Control
if ( $('input[name="admin_site_enhancements[convert_to_webp]"]').is(':checked') ) {
$('.convert-to-jpg-quality').hide();
$('.convert-to-webp-quality').show();
} else {
$('.convert-to-jpg-quality').show();
$('.convert-to-webp-quality').hide();
}
$('input[name="admin_site_enhancements[convert_to_webp]"]').click(function() {
if ($(this).is(':checked')) {
$('.convert-to-jpg-quality').hide();
$('.convert-to-webp-quality').show();
} else {
$('.convert-to-jpg-quality').show();
$('.convert-to-webp-quality').hide();
}
});
if ( $('input[name="admin_site_enhancements[disable_image_conversion]"]').is(':checked') ) {
$('.image-conversion-wrapper').hide();
} else {
$('.image-conversion-wrapper').show();
}
$('input[name="admin_site_enhancements[disable_image_conversion]"]').click(function() {
if ($(this).is(':checked')) {
$('.image-conversion-wrapper').hide();
} else {
$('.image-conversion-wrapper').show();
}
});
function field_value_initial_sync( originSelector, targetSelector ) {
if ( $(originSelector).val() != '' ) {
$(targetSelector).val($(originSelector).val());
}
}
function field_value_live_sync( originSelector, targetSelector ) {
$('.asenha-body').on('input', originSelector, function() {
var originValue = $(this).val();
$(targetSelector).val(originValue);
});
}
function field_value_syncing( originSelector, targetSelector ) {
field_value_initial_sync( originSelector, targetSelector );
field_value_live_sync( originSelector, targetSelector );
}
// Form Builder site and secret keys syncing
field_value_syncing('input[name="admin_site_enhancements[altcha_secret_key]"]', 'input[name="admin_site_enhancements[form_builder_altcha_secret_key]"]');
field_value_syncing('input[name="admin_site_enhancements[recaptcha_site_key_v2_checkbox]"]', 'input[name="admin_site_enhancements[form_builder_recaptcha_site_key_v2_checkbox]"]');
field_value_syncing('input[name="admin_site_enhancements[recaptcha_secret_key_v2_checkbox]"]', 'input[name="admin_site_enhancements[form_builder_recaptcha_secret_key_v2_checkbox]"]');
field_value_syncing('input[name="admin_site_enhancements[recaptcha_site_key_v3_invisible]"]', 'input[name="admin_site_enhancements[form_builder_recaptcha_site_key_v3_invisible]"]');
field_value_syncing('input[name="admin_site_enhancements[recaptcha_secret_key_v3_invisible]"]', 'input[name="admin_site_enhancements[form_builder_recaptcha_secret_key_v3_invisible]"]');
field_value_syncing('input[name="admin_site_enhancements[turnstile_site_key]"]', 'input[name="admin_site_enhancements[form_builder_turnstile_site_key]"]');
field_value_syncing('input[name="admin_site_enhancements[turnstile_secret_key]"]', 'input[name="admin_site_enhancements[form_builder_turnstile_secret_key]"]');
// Maintenance Mode => Use a customizable page vs Use an existing page
if ( $('input[name="admin_site_enhancements[maintenance_page_type]"]:checked').val() == 'custom' ) {
$('.maintenance-page-type-custom').show();
$('tr.maintenance-page-slug').hide();
} else if ( $('input[name="admin_site_enhancements[maintenance_page_type]"]:checked').val() == 'existing' ) {
$('.maintenance-page-type-custom').hide();
$('tr.maintenance-page-slug').show();
} else {
$('.maintenance-page-type-custom').show();
$('tr.maintenance-page-slug').hide();
}
$('input[name="admin_site_enhancements[maintenance_page_type]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'custom' ) {
$('.maintenance-page-type-custom').show();
$('tr.maintenance-page-slug').hide();
} else if ( radioValue == 'existing' ) {
$('.maintenance-page-type-custom').hide();
$('tr.maintenance-page-slug').show();
} else {
$('.maintenance-page-type-custom').show();
$('tr.maintenance-page-slug').hide();
}
});
// Maintenance Mode => Check if 'Image' or 'Color' is chosen/clicked and show/hide the corresponding select field
if ( $('input[name="admin_site_enhancements[maintenance_page_background]"]:checked').val() == 'pattern' ) {
$('tr.maintenance-page-background-pattern').show();
$('tr.maintenance-page-background-image').hide();
$('tr.maintenance-page-background-color').hide();
} else if( $('input[name="admin_site_enhancements[maintenance_page_background]"]:checked').val() == 'image' ) {
$('tr.maintenance-page-background-pattern').hide();
$('tr.maintenance-page-background-image').show();
$('tr.maintenance-page-background-color').hide();
} else if ( $('input[name="admin_site_enhancements[maintenance_page_background]"]:checked').val() == 'solid_color' ) {
$('tr.maintenance-page-background-pattern').hide();
$('tr.maintenance-page-background-image').hide();
$('tr.maintenance-page-background-color').show();
} else {
$('tr.maintenance-page-background-pattern').hide();
$('tr.maintenance-page-background-image').hide();
$('tr.maintenance-page-background-color').hide();
}
$('input[name="admin_site_enhancements[maintenance_page_background]"]').click(function() {
var radioValue = $(this).attr('value');
if ( radioValue == 'pattern' ) {
$('tr.maintenance-page-background-pattern').show();
$('tr.maintenance-page-background-image').hide();
$('tr.maintenance-page-background-color').hide();
} else if ( radioValue == 'image' ) {
$('tr.maintenance-page-background-pattern').hide();
$('tr.maintenance-page-background-image').show();
$('tr.maintenance-page-background-color').hide();
} else if ( radioValue == 'solid_color' ) {
$('tr.maintenance-page-background-pattern').hide();
$('tr.maintenance-page-background-image').hide();
$('tr.maintenance-page-background-color').show();
} else {
$('tr.maintenance-page-background-pattern').hide();
$('tr.maintenance-page-background-image').hide();
$('tr.maintenance-page-background-color').hide();
}
});
/*! </fs_premium_only> */
// Content Toggler
$('.asenha-body').on('click', '.asenha-content-toggler', function(e) {
e.preventDefault();
var targetSelector = $(this).data('target-selector');
var showText = $(this).data('show-text');
var hideText = $(this).data('hide-text');
var expanded = $(this).attr('data-expanded');
// $(targetSelector).toggle();
if (expanded == 'no') {
$(targetSelector).slideDown(200);
$(this).html(hideText + ' <span>▲</span>');
$(this).attr('data-expanded','yes');
} else {
$(targetSelector).slideUp(200);
$(this).html(showText + ' <span>▼</span>');
$(this).attr('data-expanded','no');
}
});
// Media frame handler for image selection / upload fields
// Reference: https://plugins.trac.wordpress.org/browser/bm-custom-login/trunk/bm-custom-login.php
function media_frame_init( selector, button_selector ) {
// media_frame_init( '#login-page-logo-image', '#login-page-logo-image-button' );
var theSelector = $(selector);
var button = $(button_selector);
button.click(function (event) {
event.preventDefault();
// Configuration of the media frame new instance
wp.media.frames.frame = wp.media({
title: adminPageVars.mediaFrameTitle,
multiple: false,
library: {
type: 'image'
},
button: {
text: adminPageVars.mediaFrameButtonText
}
});
// Function used for the image selection and media manager closing
var media_set_image = function() {
var selection = wp.media.frames.frame.state().get('selection');
// Nothing is selected
if (!selection) {
return;
}
// Iterate through selected elements
selection.each(function(attachment) {
// console.log(attachment);
var rawUrl = attachment.attributes.url;
var url = rawUrl;
url = url.replace( adminPageVars.wpcontentUrl, '' );
theSelector.val(url);
if ( '#login-page-logo-image' == selector ) {
var attachmentId = $('.login-page-logo-image-attachment-id input');
var originalWidthInput = $('.login-page-logo-image-width-original input');
var originalHeightInput = $('.login-page-logo-image-height-original input');
var widthInput = $('.login-page-logo-image-width input');
var heightInput = $('.login-page-logo-image-height input');
attachmentId.val(attachment.attributes.id);
originalWidthInput.val(attachment.attributes.width);
originalHeightInput.val(attachment.attributes.height);
widthInput.val(attachment.attributes.width);
heightInput.val(attachment.attributes.height);
}
if ( '#form-builder-email-header-image' == selector ) {
var attachmentId = $('.form-builder-email-header-image-attachment-id input');
attachmentId.val(attachment.attributes.id);
}
});
};
wp.media.frames.frame.on('close', media_set_image);
wp.media.frames.frame.on('select', media_set_image);
wp.media.frames.frame.open();
});
}
// Form Builder - Empty out stored/hidden attachment ID when "Email header image" field is emptied
var emailHeaderImage = $('#form-builder-email-header-image');
var emailHeaderImageAttachmentId = $('.form-builder-email-header-image-attachment-id input');
$(emailHeaderImage).keyup(delay(function (e) {
if ($(this).val().length === 0) {
emailHeaderImageAttachmentId.val("");
}
}, 200));
// =============== Image Ratio Calculator / Preservation for Login Page Customizer >> Logo Image =================
// Code modified from: https://codepen.io/tobiasdev/pen/XNjxdZ by Tobias Bogliolo
var initialWidth, initialHeight, newWidth, newHeight, aspectRatio;
//Get new values:
function getValues(){
initialWidth = $(".login-page-logo-image-width-original input").val();
initialHeight = $(".login-page-logo-image-height-original input").val();
newWidth = $(".login-page-logo-image-width input").val();
newHeight = $(".login-page-logo-image-height input").val();
};
//Aspect ratio:
function getAspectRatio(){
// Formula: "Aspect Ratio = Width / Height".
return aspectRatio = initialWidth/initialHeight;
};
//Get new height:
$(".login-page-logo-image-width input").on("change keyup", function(){
// Refresh data.
getValues();
getAspectRatio();
// New height = new width / (original width / original height).
newHeight = Math.round(newWidth/aspectRatio);
// Output:
$(".login-page-logo-image-height input").val(newHeight);
});
//Get new width:
$(".login-page-logo-image-height input").on("change keyup", function(){
// Refresh data.
getValues();
getAspectRatio();
// New width = (original width / original height) * new height.
newWidth = Math.round(newHeight*aspectRatio);
// Output:
$(".login-page-logo-image-width input").val(newWidth);
});
//Reset:
$(".login-page-logo-image-width-original input, .login-page-logo-image-height-original input").on("change keyup", function(){
// Output:
$(".login-page-logo-image-width input").val("");
$(".login-page-logo-image-height input").val("");
});
// =============== ASE PRO =================
if ( asenhaStats.isYearEndPromoPeriod ) {
// Promo nudge
if ( asenhaStats.hidePromoNudge ) {
$('.asenha-promo-nudge').hide();
$('#bottom-upgrade-nudge').show();
} else {
$('.asenha-promo-nudge').show();
$('#bottom-upgrade-nudge').hide();
}
$('#dismiss-promo-nudge').click(function(e) {
e.preventDefault();
$.ajax({
url: ajaxurl,
data: {
'action':'dismiss_promo_nudge',
'nonce': adminPageVars.nonce
},
success:function(data) {
$('.asenha-promo-nudge').hide();
},
error:function(errorThrown) {
console.log(errorThrown);
}
});
});
} else {
// Upgrade nudge to Pro
if ( asenhaStats.hideUpgradeNudge ) {
$('.asenha-upgrade-nudge').hide();
$('#bottom-upgrade-nudge').show();
} else {
$('.asenha-upgrade-nudge').show();
$('#bottom-upgrade-nudge').hide();
}
$('#dismiss-upgrade-nudge').click(function(e) {
e.preventDefault();
$.ajax({
url: ajaxurl,
data: {
'action':'dismiss_upgrade_nudge',
'nonce': adminPageVars.nonce
},
success:function(data) {
$('.asenha-upgrade-nudge').hide();
// $('#bottom-upgrade-nudge').show();
},
error:function(errorThrown) {
console.log(errorThrown);
}
});
});
}
// =============== SPONSORSHIP =================
// Stats on saving changes from asenha_admin_scripts() wp_localize_script() is availble in the 'asenhaStats' object-----
// console.log( asenhaStats );
// alert(JSON.stringify(asenhaStats));
if ( asenhaStats.showSupportNudge ) {
$('.asenha-support-nudge').show();
} else {
$('.asenha-support-nudge').hide();
}
$('#have-shared,#have-reviewed').click(function(e) {
e.preventDefault();
// $.ajax({
// url: 'https://bowo.io/asenha-sp-ndg',
// method: 'GET',
// dataType: 'jsonp',
// crossDomain: true
// });
$.ajax({
url: ajaxurl,
data: {
'action':'have_supported',
'nonce': adminPageVars.nonce
},
success:function(data) {
$('.asenha-support-nudge').hide();
},
error:function(errorThrown) {
console.log(errorThrown);
}
});
});
$('#support-nudge-dismiss').click(function(e) {
e.preventDefault();
// $.ajax({
// url: 'https://bowo.io/asenha-sp-ndg',
// method: 'GET',
// dataType: 'jsonp',
// crossDomain: true
// });
$.ajax({
url: ajaxurl,
data: {
'action':'dismiss_support_nudge',
'nonce': adminPageVars.nonce
},
success:function(data) {
$('.asenha-support-nudge').hide();
},
error:function(errorThrown) {
console.log(errorThrown);
}
});
});
// Expand support notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
$('.asenha-support-nudge.nudge-show-more > .show-more').click(function(e) {
e.preventDefault();
var $this = $(this);
$this.toggleClass('show-more');
$this.hide();
if ($this.hasClass('show-more')) {
$this.next().removeClass('opened',0);
} else {
$this.next().addClass('opened',0);
}
});
// Collapse support notice | Modified from https://codepen.io/symonsays/pen/rzgEgY
$('#support-nudge-show-less').click(function(e) {
e.preventDefault();
$('.nudge-wrapper-show-more').removeClass('opened',0);
$('#support-nudge-show-moreless').addClass('show-more');
$('#support-nudge-show-moreless').show();
});
// Modal for sponsoring plugin dev and maintenance: https://stephanwagner.me/jBox
// var sponsorModal = new jBox('Modal', {
// attach: '#plugin-sponsor',
// trigger: 'click', // or 'mouseenter'
// // content: 'Test'
// content: $('#asenha-sponsor'),
// width: 740, // pixels
// closeButton: 'box',
// addClass: 'plugin-sponsor-modal',
// overlayClass: 'plugin-sponsor-modal-overlay',
// target: '#wpwrap', // where to anchor the modal
// position: {
// x: 'center',
// y: 'top'
// },
// // fade: 1000,
// animation: {
// open: 'slide:top',
// close: 'slide:top'
// }
// });
// $('#plugin-sponsor').click( function() {
// $.ajax({
// url: 'https://bowo.io/asenha-sp-btn',
// method: 'GET',
// dataType: 'jsonp',
// crossDomain: true
// // success: function(response) {
// // console.log(response);
// // }
// });
// });
}); // END OF $(document).ready()
})( jQuery );