wp_back/wp-content/plugins/metronet-profile-picture/js/mpp.js

157 lines
5.3 KiB
JavaScript
Raw Permalink Normal View History

2024-05-20 15:37:46 +03:00
jQuery( document ).ready( function( $ ) {
//Refresh the profile image thumbnail
function mt_ajax_thumbnail_refresh() {
var post_id = jQuery( "#metronet_post_id" ).val();
jQuery( '#metronet-profile-image' ).html( '<img class="mpp-loading" alt="Loading" width="150" height="150" src="' + metronet_profile_image.loading_gif + '" />' );
$.post( metronet_profile_image.ajax_url, {
action: 'metronet_get_thumbnail',
post_id: post_id,
_wpnonce: metronet_profile_image.nonce,
user_id: jQuery( "#metronet_profile_id" ).val(),
},
function( response ) {
jQuery( "#metronet-profile-image" ).html( mt_display_block( response.thumb_html ) );
jQuery( '.user-profile-picture img ').replaceWith( response.avatar );
if ( response.user_id === response.logged_in_user_id ) {
jQuery( '#wp-admin-bar-my-account img.avatar-26' ).replaceWith( response.avatar_admin_small );
jQuery( '#wp-admin-bar-my-account img.avatar-64' ).replaceWith( response.avatar_admin_medium );
}
},
'json'
);
};
//Remove the profile image
function mt_remove_profile_image() {
jQuery( '#metronet-profile-image' ).html( '<img class="mpp-loading" alt="Loading" width="150" height="150" src="' + metronet_profile_image.loading_gif + '" />' );
$.post( metronet_profile_image.ajax_url, {
action: 'metronet_remove_thumbnail',
post_id: metronet_profile_image.user_post_id,
user_id: jQuery( "#metronet_profile_id" ).val(),
_wpnonce: metronet_profile_image.nonce
},
function( response ) {
jQuery( "#metronet-profile-image" ).html( mt_display_block( response.thumb_html ) );
jQuery( '.user-profile-picture img ').replaceWith( response.avatar );
if ( response.user_id === response.logged_in_user_id ) {
jQuery( '#wp-admin-bar-my-account img.avatar-26' ).replaceWith( response.avatar_admin_small );
jQuery( '#wp-admin-bar-my-account img.avatar-64' ).replaceWith( response.avatar_admin_medium );
}
},
'json'
);
}
// Set thumbnail img and wrapping a to display:block to fix visual bug
function mt_display_block(htmlString) {
var temp = document.createElement('div');
temp.innerHTML = htmlString;
temp.firstElementChild.style.display = 'block';
temp.firstElementChild.firstElementChild.style.display = 'block';
return temp.innerHTML;
}
$('#mpp').on( "click", '.mpp_add_media', function(e) {
//Assign the default view for the media uploader
var uploader = wp.media({
state: 'featured-image',
states: [ new wp.media.controller.FeaturedImage() ],
title: metronet_profile_image.set_profile_text,
button: {
text: metronet_profile_image.remove_profile_text
},
multiple: false,
});
// CUSTOM TOOLBAR ON BOTTOM OF MEDIA MANAGER. SETS UP THE TWO ACTION BUTTONS
uploader.on( 'toolbar:create', function( toolbar ) {
var options = {};
options.items = {};
options.items.select = {
text: metronet_profile_image.set_profile_text,
style: 'primary',
click: wp.media.view.Toolbar.Select.prototype.clickSelect,
requires: { selection: true },
event: 'select',
reset: false,
close: true,
state: false,
syncSelection: true
};
if ( ! $( '#metronet-profile-image a' ).hasClass('default-image') ) {
options.items.remove = {
text: metronet_profile_image.remove_profile_text,
style: 'secondary',
requires: { selection: false },
click: wp.media.view.Toolbar.Select.prototype.clickSelect,
event: 'remove',
reset: true,
close: true,
state: false,
syncSelection: true
};
}
this.createSelectToolbar( toolbar, options );
}, uploader );
//For when the featured thumbnail is set
uploader.mt_featured_set = function( id ) {
jQuery( '#metronet-profile-image' ).html( '<img class="mpp-loading" alt="Loading" width="150" height="150" src="' + metronet_profile_image.loading_gif + '" />' );
$.post( metronet_profile_image.ajax_url, {
action: 'metronet_add_thumbnail',
post_id: metronet_profile_image.user_post_id,
user_id: jQuery( "#metronet_profile_id" ).val(),
thumbnail_id: id,
_wpnonce: metronet_profile_image.nonce
},
function( response ) {
jQuery( "#metronet-profile-image" ).html( mt_display_block( response.thumb_html ) );
jQuery( '.user-profile-picture img ').replaceWith( response.avatar );
if ( response.user_id === response.logged_in_user_id ) {
jQuery( '#wp-admin-bar-my-account img.avatar-26' ).replaceWith( response.avatar_admin_small );
jQuery( '#wp-admin-bar-my-account img.avatar-64' ).replaceWith( response.avatar_admin_medium );
}
},
'json'
);
};
//For when the Add Profile Image is clicked
uploader.on( 'select', function() {
var featured = uploader.state().get('selection').single();
wp.media.featuredImage.set( featured ? featured.id : -1 );
if ( ! featured.id ) {
return;
}
uploader.mt_featured_set( featured.id );
} );
//When the remove buttons is clicked
uploader.on( 'remove', function() {
wp.media.featuredImage.set( -1 );
mt_remove_profile_image();
} );
//For when the window is closed (update the thumbnail)
uploader.on('escape', function(){
mt_ajax_thumbnail_refresh();
});
//Open the media uploader
uploader.open();
return false;
});
$( "#mpp" ).on( 'click', 'a#metronet-remove', function( e ) {
e.preventDefault();
wp.media.featuredImage.set( -1 );
mt_remove_profile_image();
} );
} );