PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 8.2.2
Admin and Site Enhancements (ASE) v8.2.2
9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / assets / js / media-replace.js
admin-site-enhancements / assets / js Last commit date
codemirror 7 months ago datatables 7 months ago admin-menu-organizer.js 7 months ago admin-page.js 7 months ago content-order-sort.js 7 months ago custom-admin-menu.js 7 months ago external-permalinks.js 7 months ago gutenberg-content-duplication.js 7 months ago hide-admin-notices.js 7 months ago jBox.all.min.js 7 months ago jquery.jsticky.mod.js 7 months ago jquery.jsticky.mod.min.js 7 months ago jquery.mjs.nestedSortable.js 7 months ago jquery.ui.touch-punch.min.js 7 months ago js.cookie.min.js 7 months ago list-tables-content-order.js 7 months ago media-replace.js 7 months ago multiple-user-roles.js 7 months ago select2.full.min.js 7 months ago toggle-hidden-menu.js 7 months ago
media-replace.js
99 lines
1 (function( $ ) {
2 'use strict';
3
4 $(document).ready( function() {
5
6 // Place the Replace Media section after the side metaboxes
7 $('#media-replace-div').appendTo('#postbox-container-1');
8
9 });
10
11 })( jQuery );
12
13 // let asenhaMRVars = asenhaMR;
14
15 // Open media modal on clicking Select New Media File button.
16 // This is set with onclick="replaceMedia('mime/type')" on the button HTML
17 function replaceMedia(originalAttachmentId,oldImageMimeType) {
18 if ( oldImageMimeType ) {
19 // There's a mime type defined. Do nothing.
20 } else {
21 // We're in the grid view of an image. Get the mime type form the file info in DOM.
22 if ( jQuery('.details .file-type').length ) {
23 var oldImageMimeTypeFromDom = jQuery('.details .file-type').html();
24 }
25 // Sometimes .file-type div is not there, and instead, a second .filename div is used to display file type info
26 else if ( jQuery('.details .filename:nth-child(2)').length ) {
27 var oldImageMimeTypeFromDom = jQuery('.details .filename:nth-child(2)').html();
28 }
29 // Replace '<strong>File type:</strong>' in any language with empty string
30 oldImageMimeTypeFromDom = oldImageMimeTypeFromDom.replace(/<strong>(.*?)<\/strong>/, '');
31 // Replace one blank spacing with an empty space / no space
32 oldImageMimeType = oldImageMimeTypeFromDom.replace(' ', '');
33 }
34
35 // https://codex.wordpress.org/Javascript_Reference/wp.media
36 // https://github.com/ericandrewlewis/wp-media-javascript-guide
37
38 // Instantiate the media frame
39 mediaFrame = wp.media({
40 title: mediaReplace.selectMediaText,
41 button: {
42 text: mediaReplace.performReplacementText
43 },
44 multiple: false // Enable/disable multiple select
45 });
46
47
48 // Open the media dialog and store it in a variable
49 var mediaFrameEl = jQuery(mediaFrame.open().el);
50
51 // Open the "Upload files" tab on load
52 mediaFrameEl.find('#menu-item-upload').click();
53
54 // When an image is selected
55 mediaFrameEl.on('click', 'li.attachment', function(e) {
56 var mimeTypeWarning = '<div class="mime-type-warning">The selected image is of a different type than the image to replace. Please choose an image with the same type.</div>';
57 var selectedAttachment = mediaFrame.state().get('selection').first().toJSON();
58 var selectedAttachmentMimeType = selectedAttachment.mime;
59
60 if ( oldImageMimeType != selectedAttachmentMimeType ) {
61 jQuery('.media-frame-toolbar .media-toolbar-primary .mime-type-warning').remove();
62 jQuery('.media-frame-toolbar .media-toolbar-primary').prepend(mimeTypeWarning);
63 jQuery('.media-frame-toolbar .media-toolbar-primary .media-button-select').prop('disabled', true);
64 } else {
65 jQuery('.media-frame-toolbar .media-toolbar-primary .mime-type-warning').remove();
66 jQuery('.media-frame-toolbar .media-toolbar-primary .media-button-select').prop('disabled', false);
67 }
68 });
69
70 // Make sure the "Drop files to upload" blue overlay is closed after dropping one or more files
71 jQuery('.supports-drag-drop:not(.upload.php)').on( 'drop', function() {
72 jQuery('.uploader-window').hide();
73 });
74
75 // When Perform Replacement button is clicked in the media frame...
76 mediaFrame.on('select', function() {
77
78 // Get media attachment details from the frame state
79 var attachment = mediaFrame.state().get('selection').first().toJSON();
80 var newImageMimeType = attachment.mime;
81
82 if ( oldImageMimeType == newImageMimeType ) {
83
84 // Send the attachment id of the replacement / new image to our hidden input
85 jQuery('#new-attachment-id-'+originalAttachmentId).val(attachment.id);
86
87 if (jQuery('#new-attachment-id-'+originalAttachmentId).closest('.media-modal').length) {
88
89 } else {
90 // For media library list view
91 // "Perform Replacement" button has been clicked. Submit the edit form, which includes 'new-attachment-id'
92 jQuery('#new-attachment-id-'+originalAttachmentId).closest("form").submit();
93 jQuery(mediaFrame.close());
94 }
95 }
96
97 });
98
99 }