( function( $ ) { /** * Handles logic for the theme layout admin edit interface. * * @class AstraPageTitleBarAdminEdit * @since 1.0 */ AstraPageTitleBarAdmin = { /** * Initializes the theme layout admin edit interface. * * @since 1.0 * @access private * @method _init */ _init: function() { this._bind(); this._initLayoutSettings(); this._inputFileInit(); }, /** * Binds events for the theme layout admin edit interface. * * @since 1.0 * @access private * @method _bind */ _bind: function() { // Instead of updating PHP globals $parent_file, $submenu_file, used following JS for making Custom Layout menu active while editing any post. $( 'li#menu-appearance.wp-has-current-submenu, li#menu-appearance.wp-has-current-submenu > a' ).removeClass('wp-has-current-submenu'); $( 'li#toplevel_page_' + astraPageHeaderVars.home_slug + ', li#toplevel_page_' + astraPageHeaderVars.home_slug + ' > a' ).removeClass('wp-not-current-submenu').addClass('wp-has-current-submenu'); $( 'li#toplevel_page_' + astraPageHeaderVars.home_slug + ' a[href="edit.php?post_type=astra_adv_header"]' ).parent().addClass('current'); // Call Tooltip $('.ast-advanced-headers-heading-help').tooltip({ content: function() { return $(this).prop('title'); }, tooltipClass: 'ast-advanced-headers-ui-tooltip', position: { my: 'center top', at: 'center bottom+10', }, hide: { duration: 200, }, show: { duration: 200, }, }); $('.ast-advanced-headers-heading-img-help').tooltip({ content: function() { return $(this).prop('title'); }, tooltipClass: 'ast-advanced-headers-ui-img-tooltip', position: { my: 'center top', at: 'center bottom+10', }, hide: { duration: 0, }, show: { duration: 0, }, }); // Call color picker $('.ast-advanced-headers-color-picker').wpColorPicker(); // General events $( '.ast-advanced-header-layout-radio-button-wrap label' ).on( 'click', this._astraPageTitleRadioImagesClicked ); $( '#ast-advanced-headers-tabs ul li a' ).on( 'click', this._astraPageTitleTabsClicked ); $( '#ast-advanced-header-layout-breadcrumb' ).on( 'change', this._astraBreadcrumbChecked ); $( '#ast-advanced-header-layout-merged' ).on( 'change', this._astrPageTitleMergeChecked ); $( '#ast-advanced-header-design-bg-size' ).on( 'change', this._astrPageTitleBgSizeChecked ); $( '#ast-advanced-header-layout-above-header' ).on( 'change', this._astrAboveHeaderChecked ); $( '#ast-advanced-header-layout-below-header' ).on( 'change', this._astrBelowHeaderChecked ); $( '#ast-advanced-headers-design-custom-menu-item' ).on( 'change', this._astrCustomMenuChanged ); $( '#ast-advanced-headers-design-custom-menu-item' ).trigger('change'); // Force disable transparent header on archive pages. $('input[name="ast-advanced-headers-layout[force-transparent-disabled]"]').on('change', function() { $('input[name="ast-advanced-headers-layout[force-transparent-disabled]"]').not(this).prop('checked', false); }); $( '#ast-advanced-header-diff-header-logo' ).on( 'change', this._astrToggleLogo ); $( '#ast-advanced-header-diff-header-retina-logo' ).on( 'change', this._astrToggleRetinaLogo ); }, /** * Callback for when click button on image upload * builder is clicked. * * @since 1.0 * @access private * @method _inputFileInit */ _inputFileInit: function() { var file_frame; window.inputWrapper = ''; $( document.body ).on('click', '.ast-advanced-headers-bg-image-select', function(e) { e.preventDefault(); var button = $(this); window.inputWrapper = $(this).closest('.ast-advanced-headers-row-content'); if ( file_frame ) { file_frame.open(); return; } // Create the media frame. file_frame = wp.media( { multiple: false } ); // When an image is selected, run a callback. file_frame.on( 'select', function() { var attachment = file_frame.state().get( 'selection' ).first().toJSON(); // place first attachment in field window.inputWrapper.find( '#ast-advanced-headers-preview-img' ).children('.saved-image').remove(); window.inputWrapper.find( '#ast-advanced-headers-preview-img' ).append(''); window.inputWrapper.find( '.ast-advanced-headers-bg-image-id' ).val( attachment.id ); window.inputWrapper.find( '.ast-advanced-headers-bg-image' ).val( attachment.url ); $('.ast-advanced-headers-bg-image-remove').show(); }); // Finally, open the modal file_frame.open(); }); $( '.ast-advanced-headers-bg-image-remove' ).on( 'click', function( e ) { e.preventDefault(); var button = $(this), closeRow = $(this).closest('.ast-advanced-headers-row-content'); closeRow.find( '#ast-advanced-headers-preview-img img' ).hide(); closeRow.find( '.ast-advanced-headers-bg-image-id' ).val(''); closeRow.find( '.ast-advanced-headers-bg-image' ).val(''); button.hide(); }); // Logo Upload. $( document.body ).on('click', '.ast-advanced-header-logo-select', function(e) { e.preventDefault(); var button = $(this); window.inputWrapper = $(this).closest('.ast-advanced-headers-row-content'); if ( file_frame ) { file_frame.open(); return; } // Create the media frame. file_frame = wp.media( { multiple: false } ); // When an image is selected, run a callback. file_frame.on( 'select', function() { var attachment = file_frame.state().get( 'selection' ).first().toJSON(); // place first attachment in field window.inputWrapper.find( '#ast-advanced-headers-preview-logo' ).children('.saved-image').remove(); window.inputWrapper.find( '#ast-advanced-headers-preview-logo' ).append(''); window.inputWrapper.find( '.ast-advanced-headers-logo-id' ).val( attachment.id ); window.inputWrapper.find( '.ast-advanced-headers-logo' ).val( attachment.url ); window.inputWrapper.find('.ast-advanced-headers-logo-remove').show(); }); // Finally, open the modal file_frame.open(); }); $( '.ast-advanced-headers-logo-remove' ).on( 'click', function( e ) { e.preventDefault(); var button = $(this), closeRow = $(this).closest('.ast-advanced-headers-row-content'); closeRow.find( '#ast-advanced-headers-preview-logo img' ).hide(); closeRow.find( '.ast-advanced-headers-logo-id' ).val(''); closeRow.find( '.ast-advanced-headers-logo' ).val(''); button.hide(); }); }, /** * Callback for when the button to launch the * builder is clicked. * * @since 1.0 * @access private * @method _astraBreadcrumbChecked */ _astraBreadcrumbChecked: function( e ) { if( $(this).is(':checked') ){ $('.ast-advanced-headers-row.breadcrumb-row').show(); } else{ $('.ast-advanced-headers-row.breadcrumb-row').hide(); } }, /** * Callback for when the button to launch the * builder is clicked. * * @since 1.0 * @access private * @method _astrPageTitleBgSizeChecked */ _astrPageTitleBgSizeChecked: function( e ) { if( 'custom-bg-size' == $(this).val() ){ $('.ast-advanced-haeders-design-bg-custom-size-wrap').show(); } else{ $('.ast-advanced-haeders-design-bg-custom-size-wrap').hide(); } }, /** * Callback for when the above header is checked * * @since 1.0 * @access private * @method _astrAboveHeaderChecked */ _astrAboveHeaderChecked: function( e ) { if( $(this).is(':checked') ) { $('.ast-advanced-headers-row.ast-above-header-required').show(); } else{ $('.ast-advanced-headers-row.ast-above-header-required').hide(); } }, /** * Callback for when the Below header is checked * * @since 1.0 * @access private * @method _astrBelowHeaderChecked */ _astrBelowHeaderChecked: function( e ) { if( $(this).is(':checked') ) { $('.ast-advanced-headers-row.ast-below-header-required').show(); } else{ $('.ast-advanced-headers-row.ast-below-header-required').hide(); } }, /** * Callback for when the Below header is checked * * @since 1.0 * @access private * @method _astrCustomMenuChanged */ _astrCustomMenuChanged: function( e ) { var custom_menu = $(this).val(); if( 'default' != custom_menu && 'none' != custom_menu ) { $('.ast-advanced-headers-row.ast-custom-menu-item-enabled').show(); } else{ $('.ast-advanced-headers-row.ast-custom-menu-item-enabled').hide(); } if( 'text-html' == custom_menu ) { $('.ast-advanced-headers-row.ast-custom-menu-item-text-enabled').show(); } else{ $('.ast-advanced-headers-row.ast-custom-menu-item-text-enabled').hide(); } if( 'search' == custom_menu ) { $('#ast-advanced-headers-design-search-style').parents('.ast-advanced-headers-row').show(); } else{ $('#ast-advanced-headers-design-search-style').parents('.ast-advanced-headers-row').hide(); } }, /** * Callback for when the button to launch the * builder is clicked. * * @since 1.0 * @access private * @method _astrPageTitleMergeChecked */ _astrPageTitleMergeChecked: function( e ) { if( $(this).is(':checked') ){ $('.require-merge-ast-advanced-header').show(); } else{ $('.require-merge-ast-advanced-header').hide(); } }, /** * Callback for when the button to launch the * builder is clicked. * * @since 1.0 * @access private * @method _astraPageTitleTabsClicked */ _astraPageTitleTabsClicked: function( e ) { e.preventDefault(); var current = $(this), href = current.attr('href'); //custom ui tabs select $('#ast-advanced-headers-tabs ul li a').removeClass('nav-tab-active'); $(current).addClass('nav-tab-active'); $('.ast-adv-headers-tabs-section').removeClass('tab-active'); $(href).addClass('tab-active'); tabId = current.attr( 'id' ); $('#advanced-headers-current-tab').val( tabId ); }, /** * Init the layout settings based on type. * * @since 1.0 * @access private * @method _initLayoutSettings */ _initLayoutSettings: function() { var type = $( 'input[name="ast-advanced-headers-layout[layout]"]:checked' ).val(), // all element dependent ti title bar layout. allStylingWrap = $( '.ast-advanced-header-layout-breadcrumb-wrap, .ast-advanced-headers-table.design-wrap' ), allNotRequired = $('.ast-required-no-headers'), breadcrumbCheck = $( '#ast-advanced-header-layout-breadcrumb' ), mergeHeaderCheck = $ ( '#ast-advanced-header-layout-merged'), backgroundSizeCheck = $( '#ast-advanced-header-design-bg-size' ).val(), differentLogoCheck = $( '#ast-advanced-header-diff-header-logo' ), differentRetinaLogoCheck = $( '#ast-advanced-header-diff-header-retina-logo' ); // If Advanced Headers is desabled. if ( 'disable' == type ) { // Hide all dependent element for advanced header layout. allStylingWrap.hide(); allNotRequired.show(); $('.ast-transparent-notice-wrap').show(); } else{ allNotRequired.hide(); $('.ast-transparent-notice-wrap').hide(); } if( ! breadcrumbCheck.is(':checked') ) { $('.ast-advanced-headers-row.breadcrumb-row').hide(); } if( ! mergeHeaderCheck.is(':checked') ) { $('.require-merge-ast-advanced-header').hide(); } if ( 'custom-bg-size' != backgroundSizeCheck ) { $('.ast-advanced-haeders-design-bg-custom-size-wrap').hide(); } if ( ! $( '#ast-advanced-header-layout-above-header' ).is(':checked') ) { $('.ast-advanced-headers-row.ast-above-header-required').hide(); } if ( ! $( '#ast-advanced-header-layout-below-header' ).is(':checked') ) { $('.ast-advanced-headers-row.ast-below-header-required').hide(); } if( differentLogoCheck.is(':checked') ) { $('.ast-logo-settings-wrap').show(); $('.ast-diff-header-retina-logo').show(); } else { $('.ast-logo-settings-wrap').hide(); $('.ast-diff-header-retina-logo').hide(); } if( differentRetinaLogoCheck.is(':checked') && differentLogoCheck.is(':checked') ) { $('.ast-retina-logo-settings-wrap').show(); } else { $('.ast-retina-logo-settings-wrap').hide(); } }, /** * Radio button Images clicked. * * @since 1.0 * @access private * @method _astraPageTitleRadioImagesClicked */ _astraPageTitleRadioImagesClicked: function() { var allRadioLabels = $('.ast-advanced-header-layout-radio-button-wrap label'), radioButtonWrap = $('.ast-advanced-header-layout-radio-button-wrap'), allStylingWrap = $('.ast-advanced-header-layout-breadcrumb-wrap, .ast-advanced-headers-table.design-wrap'), allNotRequired = $('.ast-required-no-headers'); allRadioLabels.attr("checked",false); $(this).attr("checked", true); radioButtonWrap.children( "input[type='radio']" ).attr("checked",false); $(this).children( "input[type='radio']" ).attr("checked",true); // Disable Breadcrumb for no advanced header layout. if ( 'disable' == $(this).children( "input[type='radio']" ).val()) { allStylingWrap.hide(); allNotRequired.show(); $('.ast-transparent-notice-wrap').show(); } else{ allStylingWrap.show(); allNotRequired.hide(); $('.ast-transparent-notice-wrap').hide(); } }, _astrToggleLogo: function() { if( $(this).is(':checked') ){ $( ".ast-logo-settings-wrap" ).show(); $( ".ast-diff-header-retina-logo" ).show(); if( $(this).is(':checked') && $( '#ast-advanced-header-diff-header-retina-logo' ).is(':checked') ){ $( ".ast-retina-logo-settings-wrap" ).show(); } else { $( ".ast-retina-logo-settings-wrap" ).hide(); } } else { $( ".ast-logo-settings-wrap" ).hide(); $( ".ast-diff-header-retina-logo" ).hide(); if( $(this).is(':checked') && $( '#ast-advanced-header-diff-header-retina-logo' ).is(':checked') ){ $( ".ast-retina-logo-settings-wrap" ).show(); } else { $( ".ast-retina-logo-settings-wrap" ).hide(); } } }, _astrToggleRetinaLogo: function() { if( $(this).is(':checked') && $( '#ast-advanced-header-diff-header-logo' ).is(':checked') ){ $( ".ast-retina-logo-settings-wrap" ).show(); } else { $( ".ast-retina-logo-settings-wrap" ).hide(); } } }; $( function() { AstraPageTitleBarAdmin._init(); } ); } )( jQuery );