diff options
Diffstat (limited to 'plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js')
-rw-r--r-- | plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js index 709085ae..e6749e4b 100644 --- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js +++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js @@ -14,7 +14,7 @@ jQuery( function( $ ) { if ( $( 'body' ).hasClass( 'wp-customizer' ) ) { // set the inside widget 2 top this way we can see the widget settings $widget.find('.widget-inside').css( 'top', 0 ); - + return; } @@ -36,7 +36,7 @@ jQuery( function( $ ) { } else { $widget.css( 'position', 'relative' ).css( 'left', '-' + extra + 'px' ).css( 'width', '400px' ); } - + } } else if ( $widget.data( 'original-style' ) ) { @@ -66,10 +66,13 @@ jQuery( function( $ ) { widgets_shell.on( 'click.widgetconditions', 'a.add-condition', function( e ) { e.preventDefault(); + var $condition = $( this ).closest( 'div.condition' ), $conditionClone = $condition.clone().insertAfter( $condition ); + $conditionClone.find( 'select.conditions-rule-major' ).val( '' ); $conditionClone.find( 'select.conditions-rule-minor' ).html( '' ).attr( 'disabled' ); + $conditionClone.find( 'span.conditions-rule-has-children' ).hide().html( '' ); } ); widgets_shell.on( 'click.widgetconditions', 'a.display-options', function ( e ) { @@ -120,10 +123,15 @@ jQuery( function( $ ) { } ); $( document ).on( 'change.widgetconditions', 'select.conditions-rule-major', function() { - var $conditionsRuleMajor = $ ( this ); - var $conditionsRuleMinor = $conditionsRuleMajor.siblings( 'select.conditions-rule-minor:first' ); + var $conditionsRuleMajor = $ ( this ), + $conditionsRuleMinor = $conditionsRuleMajor.siblings( 'select.conditions-rule-minor:first' ), + $conditionsRuleHasChildren = $conditionsRuleMajor.siblings( 'span.conditions-rule-has-children' ); if ( $conditionsRuleMajor.val() ) { + if ( $conditionsRuleMajor.val() !== 'page' ){ + $conditionsRuleHasChildren.hide().html( '' ); + } + $conditionsRuleMinor.html( '' ).append( $( '<option/>' ).text( $conditionsRuleMinor.data( 'loading-text' ) ) ); var data = { @@ -136,6 +144,27 @@ jQuery( function( $ ) { } ); } else { $conditionsRuleMajor.siblings( 'select.conditions-rule-minor' ).attr( 'disabled', 'disabled' ).html( '' ); + $conditionsRuleHasChildren.hide().html( '' ); + } + } ); + + $( document ).on( 'change.widgetconditions', 'select.conditions-rule-minor', function() { + var $conditionsRuleMinor = $ ( this ), + $conditionsRuleMajor = $conditionsRuleMinor.siblings( 'select.conditions-rule-major' ), + $conditionsRuleHasChildren = $conditionsRuleMinor.siblings( 'span.conditions-rule-has-children' ); + + if ( $conditionsRuleMajor.val() === 'page' ) { + var data = { + action: 'widget_conditions_has_children', + major: $conditionsRuleMajor.val(), + minor: $conditionsRuleMinor.val() + }; + + jQuery.post( ajaxurl, data, function( html ) { + $conditionsRuleHasChildren.html( html ).show(); + } ); + } else { + $conditionsRuleHasChildren.hide().html( '' ); } } ); } ); |