Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../public_h.../wp-admin/js
File: customize-controls.js
* @borrows wp.customize~Container#activate as this#activate
[3500] Fix | Delete
* @borrows wp.customize~Container#deactivate as this#deactivate
[3501] Fix | Delete
* @borrows wp.customize~Container#_toggleActive as this#_toggleActive
[3502] Fix | Delete
*
[3503] Fix | Delete
* @param {string} id - Unique identifier for the control instance.
[3504] Fix | Delete
* @param {Object} options - Options hash for the control instance.
[3505] Fix | Delete
* @param {Object} options.type - Type of control (e.g. text, radio, dropdown-pages, etc.)
[3506] Fix | Delete
* @param {string} [options.content] - The HTML content for the control or at least its container. This should normally be left blank and instead supplying a templateId.
[3507] Fix | Delete
* @param {string} [options.templateId] - Template ID for control's content.
[3508] Fix | Delete
* @param {string} [options.priority=10] - Order of priority to show the control within the section.
[3509] Fix | Delete
* @param {string} [options.active=true] - Whether the control is active.
[3510] Fix | Delete
* @param {string} options.section - The ID of the section the control belongs to.
[3511] Fix | Delete
* @param {mixed} [options.setting] - The ID of the main setting or an instance of this setting.
[3512] Fix | Delete
* @param {mixed} options.settings - An object with keys (e.g. default) that maps to setting IDs or Setting/Value objects, or an array of setting IDs or Setting/Value objects.
[3513] Fix | Delete
* @param {mixed} options.settings.default - The ID of the setting the control relates to.
[3514] Fix | Delete
* @param {string} options.settings.data - @todo Is this used?
[3515] Fix | Delete
* @param {string} options.label - Label.
[3516] Fix | Delete
* @param {string} options.description - Description.
[3517] Fix | Delete
* @param {number} [options.instanceNumber] - Order in which this instance was created in relation to other instances.
[3518] Fix | Delete
* @param {Object} [options.params] - Deprecated wrapper for the above properties.
[3519] Fix | Delete
* @return {void}
[3520] Fix | Delete
*/
[3521] Fix | Delete
initialize: function( id, options ) {
[3522] Fix | Delete
var control = this, deferredSettingIds = [], settings, gatherSettings;
[3523] Fix | Delete
[3524] Fix | Delete
control.params = _.extend(
[3525] Fix | Delete
{},
[3526] Fix | Delete
control.defaults,
[3527] Fix | Delete
control.params || {}, // In case subclass already defines.
[3528] Fix | Delete
options.params || options || {} // The options.params property is deprecated, but it is checked first for back-compat.
[3529] Fix | Delete
);
[3530] Fix | Delete
[3531] Fix | Delete
if ( ! api.Control.instanceCounter ) {
[3532] Fix | Delete
api.Control.instanceCounter = 0;
[3533] Fix | Delete
}
[3534] Fix | Delete
api.Control.instanceCounter++;
[3535] Fix | Delete
if ( ! control.params.instanceNumber ) {
[3536] Fix | Delete
control.params.instanceNumber = api.Control.instanceCounter;
[3537] Fix | Delete
}
[3538] Fix | Delete
[3539] Fix | Delete
// Look up the type if one was not supplied.
[3540] Fix | Delete
if ( ! control.params.type ) {
[3541] Fix | Delete
_.find( api.controlConstructor, function( Constructor, type ) {
[3542] Fix | Delete
if ( Constructor === control.constructor ) {
[3543] Fix | Delete
control.params.type = type;
[3544] Fix | Delete
return true;
[3545] Fix | Delete
}
[3546] Fix | Delete
return false;
[3547] Fix | Delete
} );
[3548] Fix | Delete
}
[3549] Fix | Delete
[3550] Fix | Delete
if ( ! control.params.content ) {
[3551] Fix | Delete
control.params.content = $( '<li></li>', {
[3552] Fix | Delete
id: 'customize-control-' + id.replace( /]/g, '' ).replace( /\[/g, '-' ),
[3553] Fix | Delete
'class': 'customize-control customize-control-' + control.params.type
[3554] Fix | Delete
} );
[3555] Fix | Delete
}
[3556] Fix | Delete
[3557] Fix | Delete
control.id = id;
[3558] Fix | Delete
control.selector = '#customize-control-' + id.replace( /\]/g, '' ).replace( /\[/g, '-' ); // Deprecated, likely dead code from time before #28709.
[3559] Fix | Delete
if ( control.params.content ) {
[3560] Fix | Delete
control.container = $( control.params.content );
[3561] Fix | Delete
} else {
[3562] Fix | Delete
control.container = $( control.selector ); // Likely dead, per above. See #28709.
[3563] Fix | Delete
}
[3564] Fix | Delete
[3565] Fix | Delete
if ( control.params.templateId ) {
[3566] Fix | Delete
control.templateSelector = control.params.templateId;
[3567] Fix | Delete
} else {
[3568] Fix | Delete
control.templateSelector = 'customize-control-' + control.params.type + '-content';
[3569] Fix | Delete
}
[3570] Fix | Delete
[3571] Fix | Delete
control.deferred = _.extend( control.deferred || {}, {
[3572] Fix | Delete
embedded: new $.Deferred()
[3573] Fix | Delete
} );
[3574] Fix | Delete
control.section = new api.Value();
[3575] Fix | Delete
control.priority = new api.Value();
[3576] Fix | Delete
control.active = new api.Value();
[3577] Fix | Delete
control.activeArgumentsQueue = [];
[3578] Fix | Delete
control.notifications = new api.Notifications({
[3579] Fix | Delete
alt: control.altNotice
[3580] Fix | Delete
});
[3581] Fix | Delete
[3582] Fix | Delete
control.elements = [];
[3583] Fix | Delete
[3584] Fix | Delete
control.active.bind( function ( active ) {
[3585] Fix | Delete
var args = control.activeArgumentsQueue.shift();
[3586] Fix | Delete
args = $.extend( {}, control.defaultActiveArguments, args );
[3587] Fix | Delete
control.onChangeActive( active, args );
[3588] Fix | Delete
} );
[3589] Fix | Delete
[3590] Fix | Delete
control.section.set( control.params.section );
[3591] Fix | Delete
control.priority.set( isNaN( control.params.priority ) ? 10 : control.params.priority );
[3592] Fix | Delete
control.active.set( control.params.active );
[3593] Fix | Delete
[3594] Fix | Delete
api.utils.bubbleChildValueChanges( control, [ 'section', 'priority', 'active' ] );
[3595] Fix | Delete
[3596] Fix | Delete
control.settings = {};
[3597] Fix | Delete
[3598] Fix | Delete
settings = {};
[3599] Fix | Delete
if ( control.params.setting ) {
[3600] Fix | Delete
settings['default'] = control.params.setting;
[3601] Fix | Delete
}
[3602] Fix | Delete
_.extend( settings, control.params.settings );
[3603] Fix | Delete
[3604] Fix | Delete
// Note: Settings can be an array or an object, with values being either setting IDs or Setting (or Value) objects.
[3605] Fix | Delete
_.each( settings, function( value, key ) {
[3606] Fix | Delete
var setting;
[3607] Fix | Delete
if ( _.isObject( value ) && _.isFunction( value.extended ) && value.extended( api.Value ) ) {
[3608] Fix | Delete
control.settings[ key ] = value;
[3609] Fix | Delete
} else if ( _.isString( value ) ) {
[3610] Fix | Delete
setting = api( value );
[3611] Fix | Delete
if ( setting ) {
[3612] Fix | Delete
control.settings[ key ] = setting;
[3613] Fix | Delete
} else {
[3614] Fix | Delete
deferredSettingIds.push( value );
[3615] Fix | Delete
}
[3616] Fix | Delete
}
[3617] Fix | Delete
} );
[3618] Fix | Delete
[3619] Fix | Delete
gatherSettings = function() {
[3620] Fix | Delete
[3621] Fix | Delete
// Fill-in all resolved settings.
[3622] Fix | Delete
_.each( settings, function ( settingId, key ) {
[3623] Fix | Delete
if ( ! control.settings[ key ] && _.isString( settingId ) ) {
[3624] Fix | Delete
control.settings[ key ] = api( settingId );
[3625] Fix | Delete
}
[3626] Fix | Delete
} );
[3627] Fix | Delete
[3628] Fix | Delete
// Make sure settings passed as array gets associated with default.
[3629] Fix | Delete
if ( control.settings[0] && ! control.settings['default'] ) {
[3630] Fix | Delete
control.settings['default'] = control.settings[0];
[3631] Fix | Delete
}
[3632] Fix | Delete
[3633] Fix | Delete
// Identify the main setting.
[3634] Fix | Delete
control.setting = control.settings['default'] || null;
[3635] Fix | Delete
[3636] Fix | Delete
control.linkElements(); // Link initial elements present in server-rendered content.
[3637] Fix | Delete
control.embed();
[3638] Fix | Delete
};
[3639] Fix | Delete
[3640] Fix | Delete
if ( 0 === deferredSettingIds.length ) {
[3641] Fix | Delete
gatherSettings();
[3642] Fix | Delete
} else {
[3643] Fix | Delete
api.apply( api, deferredSettingIds.concat( gatherSettings ) );
[3644] Fix | Delete
}
[3645] Fix | Delete
[3646] Fix | Delete
// After the control is embedded on the page, invoke the "ready" method.
[3647] Fix | Delete
control.deferred.embedded.done( function () {
[3648] Fix | Delete
control.linkElements(); // Link any additional elements after template is rendered by renderContent().
[3649] Fix | Delete
control.setupNotifications();
[3650] Fix | Delete
control.ready();
[3651] Fix | Delete
});
[3652] Fix | Delete
},
[3653] Fix | Delete
[3654] Fix | Delete
/**
[3655] Fix | Delete
* Link elements between settings and inputs.
[3656] Fix | Delete
*
[3657] Fix | Delete
* @since 4.7.0
[3658] Fix | Delete
* @access public
[3659] Fix | Delete
*
[3660] Fix | Delete
* @return {void}
[3661] Fix | Delete
*/
[3662] Fix | Delete
linkElements: function () {
[3663] Fix | Delete
var control = this, nodes, radios, element;
[3664] Fix | Delete
[3665] Fix | Delete
nodes = control.container.find( '[data-customize-setting-link], [data-customize-setting-key-link]' );
[3666] Fix | Delete
radios = {};
[3667] Fix | Delete
[3668] Fix | Delete
nodes.each( function () {
[3669] Fix | Delete
var node = $( this ), name, setting;
[3670] Fix | Delete
[3671] Fix | Delete
if ( node.data( 'customizeSettingLinked' ) ) {
[3672] Fix | Delete
return;
[3673] Fix | Delete
}
[3674] Fix | Delete
node.data( 'customizeSettingLinked', true ); // Prevent re-linking element.
[3675] Fix | Delete
[3676] Fix | Delete
if ( node.is( ':radio' ) ) {
[3677] Fix | Delete
name = node.prop( 'name' );
[3678] Fix | Delete
if ( radios[name] ) {
[3679] Fix | Delete
return;
[3680] Fix | Delete
}
[3681] Fix | Delete
[3682] Fix | Delete
radios[name] = true;
[3683] Fix | Delete
node = nodes.filter( '[name="' + name + '"]' );
[3684] Fix | Delete
}
[3685] Fix | Delete
[3686] Fix | Delete
// Let link by default refer to setting ID. If it doesn't exist, fallback to looking up by setting key.
[3687] Fix | Delete
if ( node.data( 'customizeSettingLink' ) ) {
[3688] Fix | Delete
setting = api( node.data( 'customizeSettingLink' ) );
[3689] Fix | Delete
} else if ( node.data( 'customizeSettingKeyLink' ) ) {
[3690] Fix | Delete
setting = control.settings[ node.data( 'customizeSettingKeyLink' ) ];
[3691] Fix | Delete
}
[3692] Fix | Delete
[3693] Fix | Delete
if ( setting ) {
[3694] Fix | Delete
element = new api.Element( node );
[3695] Fix | Delete
control.elements.push( element );
[3696] Fix | Delete
element.sync( setting );
[3697] Fix | Delete
element.set( setting() );
[3698] Fix | Delete
}
[3699] Fix | Delete
} );
[3700] Fix | Delete
},
[3701] Fix | Delete
[3702] Fix | Delete
/**
[3703] Fix | Delete
* Embed the control into the page.
[3704] Fix | Delete
*/
[3705] Fix | Delete
embed: function () {
[3706] Fix | Delete
var control = this,
[3707] Fix | Delete
inject;
[3708] Fix | Delete
[3709] Fix | Delete
// Watch for changes to the section state.
[3710] Fix | Delete
inject = function ( sectionId ) {
[3711] Fix | Delete
var parentContainer;
[3712] Fix | Delete
if ( ! sectionId ) { // @todo Allow a control to be embedded without a section, for instance a control embedded in the front end.
[3713] Fix | Delete
return;
[3714] Fix | Delete
}
[3715] Fix | Delete
// Wait for the section to be registered.
[3716] Fix | Delete
api.section( sectionId, function ( section ) {
[3717] Fix | Delete
// Wait for the section to be ready/initialized.
[3718] Fix | Delete
section.deferred.embedded.done( function () {
[3719] Fix | Delete
parentContainer = ( section.contentContainer.is( 'ul' ) ) ? section.contentContainer : section.contentContainer.find( 'ul:first' );
[3720] Fix | Delete
if ( ! control.container.parent().is( parentContainer ) ) {
[3721] Fix | Delete
parentContainer.append( control.container );
[3722] Fix | Delete
}
[3723] Fix | Delete
control.renderContent();
[3724] Fix | Delete
control.deferred.embedded.resolve();
[3725] Fix | Delete
});
[3726] Fix | Delete
});
[3727] Fix | Delete
};
[3728] Fix | Delete
control.section.bind( inject );
[3729] Fix | Delete
inject( control.section.get() );
[3730] Fix | Delete
},
[3731] Fix | Delete
[3732] Fix | Delete
/**
[3733] Fix | Delete
* Triggered when the control's markup has been injected into the DOM.
[3734] Fix | Delete
*
[3735] Fix | Delete
* @return {void}
[3736] Fix | Delete
*/
[3737] Fix | Delete
ready: function() {
[3738] Fix | Delete
var control = this, newItem;
[3739] Fix | Delete
if ( 'dropdown-pages' === control.params.type && control.params.allow_addition ) {
[3740] Fix | Delete
newItem = control.container.find( '.new-content-item-wrapper' );
[3741] Fix | Delete
newItem.hide(); // Hide in JS to preserve flex display when showing.
[3742] Fix | Delete
control.container.on( 'click', '.add-new-toggle', function( e ) {
[3743] Fix | Delete
$( e.currentTarget ).slideUp( 180 );
[3744] Fix | Delete
newItem.slideDown( 180 );
[3745] Fix | Delete
newItem.find( '.create-item-input' ).focus();
[3746] Fix | Delete
});
[3747] Fix | Delete
control.container.on( 'click', '.add-content', function() {
[3748] Fix | Delete
control.addNewPage();
[3749] Fix | Delete
});
[3750] Fix | Delete
control.container.on( 'keydown', '.create-item-input', function( e ) {
[3751] Fix | Delete
if ( 13 === e.which ) { // Enter.
[3752] Fix | Delete
control.addNewPage();
[3753] Fix | Delete
}
[3754] Fix | Delete
});
[3755] Fix | Delete
}
[3756] Fix | Delete
},
[3757] Fix | Delete
[3758] Fix | Delete
/**
[3759] Fix | Delete
* Get the element inside of a control's container that contains the validation error message.
[3760] Fix | Delete
*
[3761] Fix | Delete
* Control subclasses may override this to return the proper container to render notifications into.
[3762] Fix | Delete
* Injects the notification container for existing controls that lack the necessary container,
[3763] Fix | Delete
* including special handling for nav menu items and widgets.
[3764] Fix | Delete
*
[3765] Fix | Delete
* @since 4.6.0
[3766] Fix | Delete
* @return {jQuery} Setting validation message element.
[3767] Fix | Delete
*/
[3768] Fix | Delete
getNotificationsContainerElement: function() {
[3769] Fix | Delete
var control = this, controlTitle, notificationsContainer;
[3770] Fix | Delete
[3771] Fix | Delete
notificationsContainer = control.container.find( '.customize-control-notifications-container:first' );
[3772] Fix | Delete
if ( notificationsContainer.length ) {
[3773] Fix | Delete
return notificationsContainer;
[3774] Fix | Delete
}
[3775] Fix | Delete
[3776] Fix | Delete
notificationsContainer = $( '<div class="customize-control-notifications-container"></div>' );
[3777] Fix | Delete
[3778] Fix | Delete
if ( control.container.hasClass( 'customize-control-nav_menu_item' ) ) {
[3779] Fix | Delete
control.container.find( '.menu-item-settings:first' ).prepend( notificationsContainer );
[3780] Fix | Delete
} else if ( control.container.hasClass( 'customize-control-widget_form' ) ) {
[3781] Fix | Delete
control.container.find( '.widget-inside:first' ).prepend( notificationsContainer );
[3782] Fix | Delete
} else {
[3783] Fix | Delete
controlTitle = control.container.find( '.customize-control-title' );
[3784] Fix | Delete
if ( controlTitle.length ) {
[3785] Fix | Delete
controlTitle.after( notificationsContainer );
[3786] Fix | Delete
} else {
[3787] Fix | Delete
control.container.prepend( notificationsContainer );
[3788] Fix | Delete
}
[3789] Fix | Delete
}
[3790] Fix | Delete
return notificationsContainer;
[3791] Fix | Delete
},
[3792] Fix | Delete
[3793] Fix | Delete
/**
[3794] Fix | Delete
* Set up notifications.
[3795] Fix | Delete
*
[3796] Fix | Delete
* @since 4.9.0
[3797] Fix | Delete
* @return {void}
[3798] Fix | Delete
*/
[3799] Fix | Delete
setupNotifications: function() {
[3800] Fix | Delete
var control = this, renderNotificationsIfVisible, onSectionAssigned;
[3801] Fix | Delete
[3802] Fix | Delete
// Add setting notifications to the control notification.
[3803] Fix | Delete
_.each( control.settings, function( setting ) {
[3804] Fix | Delete
if ( ! setting.notifications ) {
[3805] Fix | Delete
return;
[3806] Fix | Delete
}
[3807] Fix | Delete
setting.notifications.bind( 'add', function( settingNotification ) {
[3808] Fix | Delete
var params = _.extend(
[3809] Fix | Delete
{},
[3810] Fix | Delete
settingNotification,
[3811] Fix | Delete
{
[3812] Fix | Delete
setting: setting.id
[3813] Fix | Delete
}
[3814] Fix | Delete
);
[3815] Fix | Delete
control.notifications.add( new api.Notification( setting.id + ':' + settingNotification.code, params ) );
[3816] Fix | Delete
} );
[3817] Fix | Delete
setting.notifications.bind( 'remove', function( settingNotification ) {
[3818] Fix | Delete
control.notifications.remove( setting.id + ':' + settingNotification.code );
[3819] Fix | Delete
} );
[3820] Fix | Delete
} );
[3821] Fix | Delete
[3822] Fix | Delete
renderNotificationsIfVisible = function() {
[3823] Fix | Delete
var sectionId = control.section();
[3824] Fix | Delete
if ( ! sectionId || ( api.section.has( sectionId ) && api.section( sectionId ).expanded() ) ) {
[3825] Fix | Delete
control.notifications.render();
[3826] Fix | Delete
}
[3827] Fix | Delete
};
[3828] Fix | Delete
[3829] Fix | Delete
control.notifications.bind( 'rendered', function() {
[3830] Fix | Delete
var notifications = control.notifications.get();
[3831] Fix | Delete
control.container.toggleClass( 'has-notifications', 0 !== notifications.length );
[3832] Fix | Delete
control.container.toggleClass( 'has-error', 0 !== _.where( notifications, { type: 'error' } ).length );
[3833] Fix | Delete
} );
[3834] Fix | Delete
[3835] Fix | Delete
onSectionAssigned = function( newSectionId, oldSectionId ) {
[3836] Fix | Delete
if ( oldSectionId && api.section.has( oldSectionId ) ) {
[3837] Fix | Delete
api.section( oldSectionId ).expanded.unbind( renderNotificationsIfVisible );
[3838] Fix | Delete
}
[3839] Fix | Delete
if ( newSectionId ) {
[3840] Fix | Delete
api.section( newSectionId, function( section ) {
[3841] Fix | Delete
section.expanded.bind( renderNotificationsIfVisible );
[3842] Fix | Delete
renderNotificationsIfVisible();
[3843] Fix | Delete
});
[3844] Fix | Delete
}
[3845] Fix | Delete
};
[3846] Fix | Delete
[3847] Fix | Delete
control.section.bind( onSectionAssigned );
[3848] Fix | Delete
onSectionAssigned( control.section.get() );
[3849] Fix | Delete
control.notifications.bind( 'change', _.debounce( renderNotificationsIfVisible ) );
[3850] Fix | Delete
},
[3851] Fix | Delete
[3852] Fix | Delete
/**
[3853] Fix | Delete
* Render notifications.
[3854] Fix | Delete
*
[3855] Fix | Delete
* Renders the `control.notifications` into the control's container.
[3856] Fix | Delete
* Control subclasses may override this method to do their own handling
[3857] Fix | Delete
* of rendering notifications.
[3858] Fix | Delete
*
[3859] Fix | Delete
* @deprecated in favor of `control.notifications.render()`
[3860] Fix | Delete
* @since 4.6.0
[3861] Fix | Delete
* @this {wp.customize.Control}
[3862] Fix | Delete
*/
[3863] Fix | Delete
renderNotifications: function() {
[3864] Fix | Delete
var control = this, container, notifications, hasError = false;
[3865] Fix | Delete
[3866] Fix | Delete
if ( 'undefined' !== typeof console && console.warn ) {
[3867] Fix | Delete
console.warn( '[DEPRECATED] wp.customize.Control.prototype.renderNotifications() is deprecated in favor of instantiating a wp.customize.Notifications and calling its render() method.' );
[3868] Fix | Delete
}
[3869] Fix | Delete
[3870] Fix | Delete
container = control.getNotificationsContainerElement();
[3871] Fix | Delete
if ( ! container || ! container.length ) {
[3872] Fix | Delete
return;
[3873] Fix | Delete
}
[3874] Fix | Delete
notifications = [];
[3875] Fix | Delete
control.notifications.each( function( notification ) {
[3876] Fix | Delete
notifications.push( notification );
[3877] Fix | Delete
if ( 'error' === notification.type ) {
[3878] Fix | Delete
hasError = true;
[3879] Fix | Delete
}
[3880] Fix | Delete
} );
[3881] Fix | Delete
[3882] Fix | Delete
if ( 0 === notifications.length ) {
[3883] Fix | Delete
container.stop().slideUp( 'fast' );
[3884] Fix | Delete
} else {
[3885] Fix | Delete
container.stop().slideDown( 'fast', null, function() {
[3886] Fix | Delete
$( this ).css( 'height', 'auto' );
[3887] Fix | Delete
} );
[3888] Fix | Delete
}
[3889] Fix | Delete
[3890] Fix | Delete
if ( ! control.notificationsTemplate ) {
[3891] Fix | Delete
control.notificationsTemplate = wp.template( 'customize-control-notifications' );
[3892] Fix | Delete
}
[3893] Fix | Delete
[3894] Fix | Delete
control.container.toggleClass( 'has-notifications', 0 !== notifications.length );
[3895] Fix | Delete
control.container.toggleClass( 'has-error', hasError );
[3896] Fix | Delete
container.empty().append(
[3897] Fix | Delete
control.notificationsTemplate( { notifications: notifications, altNotice: Boolean( control.altNotice ) } ).trim()
[3898] Fix | Delete
);
[3899] Fix | Delete
},
[3900] Fix | Delete
[3901] Fix | Delete
/**
[3902] Fix | Delete
* Normal controls do not expand, so just expand its parent
[3903] Fix | Delete
*
[3904] Fix | Delete
* @param {Object} [params]
[3905] Fix | Delete
*/
[3906] Fix | Delete
expand: function ( params ) {
[3907] Fix | Delete
api.section( this.section() ).expand( params );
[3908] Fix | Delete
},
[3909] Fix | Delete
[3910] Fix | Delete
/*
[3911] Fix | Delete
* Documented using @borrows in the constructor.
[3912] Fix | Delete
*/
[3913] Fix | Delete
focus: focus,
[3914] Fix | Delete
[3915] Fix | Delete
/**
[3916] Fix | Delete
* Update UI in response to a change in the control's active state.
[3917] Fix | Delete
* This does not change the active state, it merely handles the behavior
[3918] Fix | Delete
* for when it does change.
[3919] Fix | Delete
*
[3920] Fix | Delete
* @since 4.1.0
[3921] Fix | Delete
*
[3922] Fix | Delete
* @param {boolean} active
[3923] Fix | Delete
* @param {Object} args
[3924] Fix | Delete
* @param {number} args.duration
[3925] Fix | Delete
* @param {Function} args.completeCallback
[3926] Fix | Delete
*/
[3927] Fix | Delete
onChangeActive: function ( active, args ) {
[3928] Fix | Delete
if ( args.unchanged ) {
[3929] Fix | Delete
if ( args.completeCallback ) {
[3930] Fix | Delete
args.completeCallback();
[3931] Fix | Delete
}
[3932] Fix | Delete
return;
[3933] Fix | Delete
}
[3934] Fix | Delete
[3935] Fix | Delete
if ( ! $.contains( document, this.container[0] ) ) {
[3936] Fix | Delete
// jQuery.fn.slideUp is not hiding an element if it is not in the DOM.
[3937] Fix | Delete
this.container.toggle( active );
[3938] Fix | Delete
if ( args.completeCallback ) {
[3939] Fix | Delete
args.completeCallback();
[3940] Fix | Delete
}
[3941] Fix | Delete
} else if ( active ) {
[3942] Fix | Delete
this.container.slideDown( args.duration, args.completeCallback );
[3943] Fix | Delete
} else {
[3944] Fix | Delete
this.container.slideUp( args.duration, args.completeCallback );
[3945] Fix | Delete
}
[3946] Fix | Delete
},
[3947] Fix | Delete
[3948] Fix | Delete
/**
[3949] Fix | Delete
* @deprecated 4.1.0 Use this.onChangeActive() instead.
[3950] Fix | Delete
*/
[3951] Fix | Delete
toggle: function ( active ) {
[3952] Fix | Delete
return this.onChangeActive( active, this.defaultActiveArguments );
[3953] Fix | Delete
},
[3954] Fix | Delete
[3955] Fix | Delete
/*
[3956] Fix | Delete
* Documented using @borrows in the constructor
[3957] Fix | Delete
*/
[3958] Fix | Delete
activate: Container.prototype.activate,
[3959] Fix | Delete
[3960] Fix | Delete
/*
[3961] Fix | Delete
* Documented using @borrows in the constructor
[3962] Fix | Delete
*/
[3963] Fix | Delete
deactivate: Container.prototype.deactivate,
[3964] Fix | Delete
[3965] Fix | Delete
/*
[3966] Fix | Delete
* Documented using @borrows in the constructor
[3967] Fix | Delete
*/
[3968] Fix | Delete
_toggleActive: Container.prototype._toggleActive,
[3969] Fix | Delete
[3970] Fix | Delete
// @todo This function appears to be dead code and can be removed.
[3971] Fix | Delete
dropdownInit: function() {
[3972] Fix | Delete
var control = this,
[3973] Fix | Delete
statuses = this.container.find('.dropdown-status'),
[3974] Fix | Delete
params = this.params,
[3975] Fix | Delete
toggleFreeze = false,
[3976] Fix | Delete
update = function( to ) {
[3977] Fix | Delete
if ( 'string' === typeof to && params.statuses && params.statuses[ to ] ) {
[3978] Fix | Delete
statuses.html( params.statuses[ to ] ).show();
[3979] Fix | Delete
} else {
[3980] Fix | Delete
statuses.hide();
[3981] Fix | Delete
}
[3982] Fix | Delete
};
[3983] Fix | Delete
[3984] Fix | Delete
// Support the .dropdown class to open/close complex elements.
[3985] Fix | Delete
this.container.on( 'click keydown', '.dropdown', function( event ) {
[3986] Fix | Delete
if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
[3987] Fix | Delete
return;
[3988] Fix | Delete
}
[3989] Fix | Delete
[3990] Fix | Delete
event.preventDefault();
[3991] Fix | Delete
[3992] Fix | Delete
if ( ! toggleFreeze ) {
[3993] Fix | Delete
control.container.toggleClass( 'open' );
[3994] Fix | Delete
}
[3995] Fix | Delete
[3996] Fix | Delete
if ( control.container.hasClass( 'open' ) ) {
[3997] Fix | Delete
control.container.parent().parent().find( 'li.library-selected' ).focus();
[3998] Fix | Delete
}
[3999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function