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 }); |