wp/wp-admin/js/link.js
changeset 9 177826044cd9
parent 5 5e2f62d02dcd
child 16 a86126ab1dd4
--- a/wp/wp-admin/js/link.js	Mon Oct 14 18:06:33 2019 +0200
+++ b/wp/wp-admin/js/link.js	Mon Oct 14 18:28:13 2019 +0200
@@ -1,3 +1,7 @@
+/**
+ * @output wp-admin/js/link.js
+ */
+
 /* global postboxes, deleteUserSetting, setUserSetting, getUserSetting */
 
 jQuery(document).ready( function($) {
@@ -8,7 +12,13 @@
 	// postboxes
 	postboxes.add_postbox_toggles('link');
 
-	// category tabs
+	/**
+	 * Adds event that opens a particular category tab.
+	 *
+	 * @ignore
+	 *
+	 * @return {boolean} Always returns false to prevent the default behavior.
+	 */
 	$('#category-tabs a').click(function(){
 		var t = $(this).attr('href');
 		$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
@@ -25,7 +35,24 @@
 
 	// Ajax Cat
 	newCat = $('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ); } );
+
+	/**
+	 * After adding a new category, focus on the category add input field.
+	 *
+	 * @return {void}
+	 */
 	$('#link-category-add-submit').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;
@@ -35,6 +62,21 @@
 		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());
@@ -46,18 +88,43 @@
 		} );
 	};
 
+	/*
+	 * 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"]').click(function(){deleteUserSetting('cats');});
+
+	// Set a preference for the popular categories to cookies.
 	$('a[href="#categories-pop"]').click(function(){setUserSetting('cats','pop');});
+
 	if ( 'pop' == getUserSetting('cats') )
 		$('a[href="#categories-pop"]').click();
 
+	/**
+	 * Adds event handler that shows the interface controls to add a new category.
+	 *
+	 * @ignore
+	 *
+	 * @param {Event} event The event object.
+	 * @returns {boolean} Always returns false to prevent regular link
+	 *                    functionality.
+	 */
 	$('#category-add-toggle').click( function() {
 		$(this).parents('div:first').toggleClass( 'wp-hidden-children' );
 		$('#category-tabs a[href="#categories-all"]').click();