CaffGeek/MBACNationals

View on GitHub
Web.Admin/2014/wordpress/wp-content/themes/twentytwelve/js/theme-customizer.js

Summary

Maintainability
A
1 hr
Test Coverage
/**
 * Theme Customizer enhancements for a better user experience.
 *
 * Contains handlers to make Theme Customizer preview reload changes asynchronously.
 * Things like site title, description, and background color changes.
 */

( function( $ ) {
    // Site title and description.
    wp.customize( 'blogname', function( value ) {
        value.bind( function( to ) {
            $( '.site-title a' ).text( to );
        } );
    } );
    wp.customize( 'blogdescription', function( value ) {
        value.bind( function( to ) {
            $( '.site-description' ).text( to );
        } );
    } );

    // Header text color
    wp.customize( 'header_textcolor', function( value ) {
        value.bind( function( to ) {
            if ( 'blank' === to ) {
                $( '.site-title, .site-title a, .site-description' ).css( {
                    'clip': 'rect(1px, 1px, 1px, 1px)',
                    'position': 'absolute'
                } );
            } else {
                $( '.site-title, .site-title a, .site-description' ).css( {
                    'clip': 'auto',
                    'color': to,
                    'position': 'relative'
                } );
            }
        } );
    } );

    // Hook into background color/image change and adjust body class value as needed.
    wp.customize( 'background_color', function( value ) {
        value.bind( function( to ) {
            var body = $( 'body' );

            if ( ( '#ffffff' == to || '#fff' == to ) && 'none' == body.css( 'background-image' ) )
                body.addClass( 'custom-background-white' );
            else if ( '' == to && 'none' == body.css( 'background-image' ) )
                body.addClass( 'custom-background-empty' );
            else
                body.removeClass( 'custom-background-empty custom-background-white' );
        } );
    } );
    wp.customize( 'background_image', function( value ) {
        value.bind( function( to ) {
            var body = $( 'body' );

            if ( '' != to )
                body.removeClass( 'custom-background-empty custom-background-white' );
            else if ( 'rgb(255, 255, 255)' == body.css( 'background-color' ) )
                body.addClass( 'custom-background-white' );
            else if ( 'rgb(230, 230, 230)' == body.css( 'background-color' ) && '' == _wpCustomizeSettings.values.background_color )
                body.addClass( 'custom-background-empty' );
        } );
    } );
} )( jQuery );