Skip to:
Content

BuddyPress.org

Changeset 12197


Ignore:
Timestamp:
07/26/2018 03:47:11 AM (6 years ago)
Author:
imath
Message:

BP Nouveau: make sure the Group Front Page customizer control exists

When the Groups component is not active, the Group Front page customizer control is not available. To avoid a JavaScript error and play nicer with the customizer we need to check this control is available before manipulating it.

Props r-a-y, cyberwani

Fixes #7934 (Trunk)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-templates/bp-nouveau/js/customizer.js

    r12082 r12197  
    55( function( wp, $ ) {
    66
    7     if ( undefined === typeof wp.customizer ) {
     7    if ( 'undefined' === typeof wp.customize ) {
    88        return;
    99    }
    1010
    11     $( document ).ready( function() {
     11    wp.customize.bind( 'ready', function() {
     12        var groupFrontPage = wp.customize.control( 'group_front_page' ),
     13            userFrontPage  = wp.customize.control( 'user_front_page' );
    1214
    1315        // If the Main Group setting is disabled, hide all others
    14         $( wp.customize.control( 'group_front_page' ).selector ).on( 'click', 'input[type=checkbox]', function( event ) {
    15             var checked = $( event.currentTarget ).prop( 'checked' ), controller = $( event.delegateTarget ).prop( 'id' );
     16        if ( 'undefined' !== typeof groupFrontPage ) {
     17            $( groupFrontPage.selector ).on( 'click', 'input[type=checkbox]', function( event ) {
     18                var checked = $( event.currentTarget ).prop( 'checked' ), controller = $( event.delegateTarget ).prop( 'id' );
    1619
    17             _.each( wp.customize.section( 'bp_nouveau_group_front_page' ).controls(), function( control ) {
    18                 if ( control.selector !== '#' + controller ) {
    19                     if ( true === checked ) {
    20                         $( control.selector ).show();
    21                     } else {
    22                         $( control.selector ).hide();
     20                _.each( wp.customize.section( 'bp_nouveau_group_front_page' ).controls(), function( control ) {
     21                    if ( control.selector !== '#' + controller ) {
     22                        if ( true === checked ) {
     23                            $( control.selector ).show();
     24                        } else {
     25                            $( control.selector ).hide();
     26                        }
    2327                    }
    24                 }
     28                } );
    2529            } );
    26         } );
     30        }
    2731
    2832        // If the Main User setting is disabled, hide all others
    29         $( wp.customize.control( 'user_front_page' ).selector ).on( 'click', 'input[type=checkbox]', function( event ) {
    30             var checked = $( event.currentTarget ).prop( 'checked' ), controller = $( event.delegateTarget ).prop( 'id' );
     33        if ( 'undefined' !== typeof userFrontPage ) {
     34            $( userFrontPage.selector ).on( 'click', 'input[type=checkbox]', function( event ) {
     35                var checked = $( event.currentTarget ).prop( 'checked' ), controller = $( event.delegateTarget ).prop( 'id' );
    3136
    32             _.each( wp.customize.section( 'bp_nouveau_user_front_page' ).controls(), function( control ) {
    33                 if ( control.selector !== '#' + controller ) {
    34                     if ( true === checked ) {
    35                         $( control.selector ).show();
    36                     } else {
    37                         $( control.selector ).hide();
     37                _.each( wp.customize.section( 'bp_nouveau_user_front_page' ).controls(), function( control ) {
     38                    if ( control.selector !== '#' + controller ) {
     39                        if ( true === checked ) {
     40                            $( control.selector ).show();
     41                        } else {
     42                            $( control.selector ).hide();
     43                        }
    3844                    }
    39                 }
     45                } );
    4046            } );
    41         } );
     47        }
    4248
    4349        $( 'ul#customize-control-group_nav_order, ul#customize-control-user_nav_order' ).sortable( {
     
    6066            }
    6167        } ).disableSelection();
    62 
    6368    } );
    6469
Note: See TracChangeset for help on using the changeset viewer.