/** * After adding a new category, focus on the category add input field. * * @return {void} */ $('#link-category-add-submit').on( 'click', function() { newCat.focus(); } );
/** * Synchronize category checkboxes. * * This function makes sure that the checkboxes are synced between the all * categories tab and the most used categories tab. * * @since 2.5.0 * * @return {void} */ syncChecks = function() { if ( noSyncChecks ) return; noSyncChecks = true; var th = $(this), c = th.is(':checked'), id = th.val().toString(); $('#in-link-category-' + id + ', #in-popular-link_category-' + id).prop( 'checked', c ); noSyncChecks = false; };
/** * Adds event listeners to an added category. * * This is run on the addAfter event to make sure the correct event listeners * are bound to the DOM elements. * * @since 2.5.0 * * @param {string} r Raw XML response returned from the server after adding a * category. * @param {Object} s List manager configuration object; settings for the Ajax * request. * * @return {void} */ catAddAfter = function( r, s ) { $(s.what + ' response_data', r).each( function() { var t = $($(this).text()); t.find( 'label' ).each( function() { var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name = th.text().trim(), o; $('#' + id).on( 'change', syncChecks ); o = $( '<option value="' + parseInt( val, 10 ) + '"></option>' ).text( name ); } ); } ); };
/* * Instantiates the list manager. * * @see js/_enqueues/lib/lists.js */ $('#categorychecklist').wpList( { // CSS class name for alternate styling. alt: '',
// The type of list. what: 'link-category',
// ID of the element the parsed Ajax response will be stored in. response: 'category-ajax-response',
// Callback that's run after an item got added to the list. addAfter: catAddAfter } );
// All categories is the default tab, so we delete the user setting. $('a[href="#categories-all"]').on( 'click', function(){deleteUserSetting('cats');});
// Set a preference for the popular categories to cookies. $('a[href="#categories-pop"]').on( 'click', function(){setUserSetting('cats','pop');});
if ( 'pop' == getUserSetting('cats') ) $('a[href="#categories-pop"]').trigger( 'click' );
/** * Adds event handler that shows the interface controls to add a new category. * * @ignore * * @param {Event} event The event object. * @return {boolean} Always returns false to prevent regular link * functionality. */ $('#category-add-toggle').on( 'click', function() { $(this).parents('div:first').toggleClass( 'wp-hidden-children' ); $('#category-tabs a[href="#categories-all"]').trigger( 'click' ); $('#newcategory').trigger( 'focus' ); return false; } );