You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
9 months ago
|
( function ( $, rwmb ) {
|
||
|
'use strict';
|
||
|
|
||
|
function toggleTree() {
|
||
|
var $this = $( this ),
|
||
|
$children = $this.closest( 'li' ).children( 'ul' );
|
||
|
|
||
|
if ( $this.is( ':checked' ) ) {
|
||
|
$children.removeClass( 'hidden' );
|
||
|
} else {
|
||
|
$children.addClass( 'hidden' ).find( 'input' ).prop( 'checked', false );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function toggleAll( e ) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
var $this = $( this ),
|
||
|
checked = $this.data( 'checked' );
|
||
|
|
||
|
if ( undefined === checked ) {
|
||
|
checked = true;
|
||
|
}
|
||
|
|
||
|
$this.parent().siblings( '.rwmb-input-list' ).find( 'input' ).prop( 'checked', checked ).trigger( 'change' );
|
||
|
|
||
|
checked = !checked;
|
||
|
$this.data( 'checked', checked );
|
||
|
}
|
||
|
|
||
|
function init( e ) {
|
||
|
$( e.target ).find( '.rwmb-input-list.rwmb-collapse input[type="checkbox"]' ).each( toggleTree );
|
||
|
}
|
||
|
|
||
|
rwmb.$document
|
||
|
.on( 'mb_ready', init )
|
||
|
.on( 'change', '.rwmb-input-list.rwmb-collapse input[type="checkbox"]', toggleTree )
|
||
|
.on( 'clone', '.rwmb-input-list.rwmb-collapse input[type="checkbox"]', toggleTree )
|
||
|
.on( 'click', '.rwmb-input-list-select-all-none', toggleAll );
|
||
|
} )( jQuery, rwmb );
|