wp/wp-admin/js/media.js
changeset 22 8c2e4d02f4ef
parent 21 48c4eec2b7e6
equal deleted inserted replaced
21:48c4eec2b7e6 22:8c2e4d02f4ef
   142 	 */
   142 	 */
   143 	$( function() {
   143 	$( function() {
   144 		var settings,
   144 		var settings,
   145 			$mediaGridWrap             = $( '#wp-media-grid' ),
   145 			$mediaGridWrap             = $( '#wp-media-grid' ),
   146 			copyAttachmentURLClipboard = new ClipboardJS( '.copy-attachment-url.media-library' ),
   146 			copyAttachmentURLClipboard = new ClipboardJS( '.copy-attachment-url.media-library' ),
   147 			copyAttachmentURLSuccessTimeout;
   147 			copyAttachmentURLSuccessTimeout,
       
   148 			previousSuccessElement = null;
   148 
   149 
   149 		// Opens a manage media frame into the grid.
   150 		// Opens a manage media frame into the grid.
   150 		if ( $mediaGridWrap.length && window.wp && window.wp.media ) {
   151 		if ( $mediaGridWrap.length && window.wp && window.wp.media ) {
   151 			settings = _wpMediaGridSettings;
   152 			settings = _wpMediaGridSettings;
   152 
   153 
   222 				successElement = $( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) );
   223 				successElement = $( '.success', triggerElement.closest( '.copy-to-clipboard-container' ) );
   223 
   224 
   224 			// Clear the selection and move focus back to the trigger.
   225 			// Clear the selection and move focus back to the trigger.
   225 			event.clearSelection();
   226 			event.clearSelection();
   226 
   227 
       
   228 			// Checking if the previousSuccessElement is present, adding the hidden class to it.
       
   229 			if ( previousSuccessElement ) {
       
   230 				previousSuccessElement.addClass( 'hidden' );
       
   231 			}
       
   232 
   227 			// Show success visual feedback.
   233 			// Show success visual feedback.
   228 			clearTimeout( copyAttachmentURLSuccessTimeout );
   234 			clearTimeout( copyAttachmentURLSuccessTimeout );
   229 			successElement.removeClass( 'hidden' );
   235 			successElement.removeClass( 'hidden' );
   230 
   236 
   231 			// Hide success visual feedback after 3 seconds since last success and unfocus the trigger.
   237 			// Hide success visual feedback after 3 seconds since last success and unfocus the trigger.
   232 			copyAttachmentURLSuccessTimeout = setTimeout( function() {
   238 			copyAttachmentURLSuccessTimeout = setTimeout( function() {
   233 				successElement.addClass( 'hidden' );
   239 				successElement.addClass( 'hidden' );
       
   240 				// No need to store the previous success element further.
       
   241 				previousSuccessElement = null;
   234 			}, 3000 );
   242 			}, 3000 );
       
   243 
       
   244 			previousSuccessElement = successElement;
   235 
   245 
   236 			// Handle success audible feedback.
   246 			// Handle success audible feedback.
   237 			wp.a11y.speak( wp.i18n.__( 'The file URL has been copied to your clipboard' ) );
   247 			wp.a11y.speak( wp.i18n.__( 'The file URL has been copied to your clipboard' ) );
   238 		} );
   248 		} );
   239 	});
   249 	});