Files
ultimatemember/assets/js/um-modal.js
T

243 lines
8.2 KiB
JavaScript
Raw Normal View History

2014-12-15 22:38:07 +02:00
jQuery(document).ready(function() {
2023-08-11 11:57:43 +03:00
2015-04-15 16:59:27 +02:00
jQuery(document).on('click', '.um-popup-overlay', function(){
2015-04-15 16:59:27 +02:00
remove_Modal();
});
2023-08-11 11:57:43 +03:00
2014-12-15 22:38:07 +02:00
jQuery(document).on('click', '.um-modal-overlay, a[data-action="um_remove_modal"]', function(){
um_remove_modal();
});
2015-01-15 17:15:12 +02:00
2020-05-26 12:49:18 +03:00
jQuery(document).on('click', 'a[data-modal^="um_"], span[data-modal^="um_"], .um-modal:not(:has(.um-form)) a', function(e){
e.preventDefault();
return false;
});
2023-08-11 11:57:43 +03:00
2023-11-03 17:31:18 +02:00
// jQuery(document).on('click', '.um-modal .um-single-file-preview a.cancel', function(e){
// e.preventDefault();
//
// var parent = jQuery(this).parents('.um-modal-body');
// var src = jQuery(this).parents('.um-modal-body').find('.um-single-fileinfo a').attr('href');
// var mode = parent.find('.um-single-file-upload').data('set_mode');
//
// jQuery.ajax({
// url: wp.ajax.settings.url,
// type: 'post',
// data: {
// action: 'um_remove_file',
// src: src,
// mode: mode,
// nonce: um_scripts.nonce
// },
// success: function() {
// parent.find('.um-single-file-preview').hide();
// parent.find('.ajax-upload-dragdrop').show();
// parent.find('.um-modal-btn.um-finish-upload').addClass('disabled');
// um_modal_responsive();
// }
// });
//
// return false;
// });
// jQuery(document).on('click', '.um-modal .um-single-image-preview a.cancel', function(e){
// e.preventDefault();
//
// var parent = jQuery(this).parents('.um-modal-body');
// var src = jQuery(this).parents('.um-modal-body').find('.um-single-image-preview img').attr('src');
// var mode = parent.find('.um-single-image-upload').data('set_mode');
//
// jQuery.ajax({
// url: wp.ajax.settings.url,
// type: 'post',
// data: {
// action: 'um_remove_file',
// src: src,
// mode: mode,
// nonce: um_scripts.nonce
// },
// success: function() {
// wp.hooks.doAction( 'um_after_removing_preview' );
//
// parent.find('.um-single-image-preview img').attr( 'src', '' );
// parent.find('.um-single-image-preview').hide();
// parent.find('.ajax-upload-dragdrop').show();
// parent.find('.um-modal-btn.um-finish-upload').addClass( 'disabled' );
//
// um_modal_responsive();
// }
// });
//
// return false;
// });
2023-08-11 11:57:43 +03:00
jQuery(document).on('click', '.um-finish-upload.file:not(.disabled)', function(){
2023-08-11 11:57:43 +03:00
var key = jQuery(this).attr('data-key');
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
var preview = jQuery(this).parents('.um-modal-body').find('.um-single-file-preview').html();
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
um_remove_modal();
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
jQuery('.um-single-file-preview[data-key='+key+']').fadeIn().html( preview );
2018-07-31 01:35:08 +08:00
var file = jQuery('.um-field[data-key='+key+']').find('.um-single-fileinfo a').data('file');
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
jQuery('.um-single-file-preview[data-key='+key+']').parents('.um-field').find('.um-btn-auto-width').html( jQuery(this).attr('data-change') );
2023-08-11 11:57:43 +03:00
2018-07-31 01:35:08 +08:00
jQuery('.um-single-file-preview[data-key='+key+']').parents('.um-field').find('input[type="hidden"]').val( file );
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
});
2015-01-15 17:15:12 +02:00
jQuery(document).on('click', '.um-finish-upload.image:not(.disabled)', function(){
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
var elem = jQuery(this);
var key = jQuery(this).attr('data-key');
var img_c = jQuery(this).parents('.um-modal-body').find('.um-single-image-preview');
var src = img_c.find('img').attr('src');
2023-10-13 11:31:14 +03:00
2018-07-31 21:06:59 +08:00
var file = img_c.find('img').data('file');
var user_id = 0;
if ( jQuery(this).parents('#um_upload_single').data('user_id') ) {
user_id = jQuery(this).parents('#um_upload_single').data('user_id');
2014-12-29 15:51:55 +02:00
}
2018-07-31 21:06:59 +08:00
var d;
var form_id = 0;
var mode = '';
if ( jQuery('div.um-field-image[data-key="' + key + '"]').length === 1 ) {
2025-01-29 14:49:47 +02:00
let $formWrapper = jQuery('div.um-field-image[data-key="' + key + '"]').closest('.um-form');
2025-01-29 16:01:02 +02:00
form_id = $formWrapper.data('form_id') || $formWrapper.find('input[name="form_id"]').val(); // 'input[name="form_id"]' is a backward compatibility.
2025-01-29 14:49:47 +02:00
mode = $formWrapper.data('mode');
2025-01-29 16:01:02 +02:00
} else {
console.warn( wp.i18n.__( 'UM Warning: No field associated with image uploader.', 'ultimate-member' ) );
return;
}
if ( jQuery('.cropper-hidden').length > 0 && UM.frontend.cropper.obj ) {
2023-11-03 17:31:18 +02:00
var data = UM.frontend.cropper.obj.getData();
2023-10-13 12:43:54 +03:00
var coord = Math.round(data.x) + ',' + Math.round(data.y) + ',' + Math.round(data.width) + ',' + Math.round(data.height);
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
jQuery(this).html( jQuery(this).attr('data-processing') ).addClass('disabled');
2023-10-13 12:43:54 +03:00
2014-12-29 15:51:55 +02:00
jQuery.ajax({
2018-08-14 18:49:48 +03:00
url: wp.ajax.settings.url,
2014-12-29 15:51:55 +02:00
type: 'POST',
2018-07-31 21:06:59 +08:00
dataType: 'json',
2014-12-29 15:51:55 +02:00
data: {
2018-08-14 18:49:48 +03:00
action: 'um_resize_image',
2014-12-29 15:51:55 +02:00
src : src,
coord : coord,
user_id : user_id,
2018-11-21 14:01:18 +02:00
key: key,
set_id: form_id,
set_mode: mode,
2018-11-21 14:01:18 +02:00
nonce: um_scripts.nonce
2014-12-29 15:51:55 +02:00
},
success: function( response ) {
2023-10-13 11:31:14 +03:00
if ( response.success ) {
2018-07-31 01:35:08 +08:00
2018-07-31 21:06:59 +08:00
d = new Date();
2018-07-31 01:35:08 +08:00
if ( key === 'profile_photo' ) {
2018-07-31 21:06:59 +08:00
jQuery('.um-profile-photo-img img').attr('src', response.data.image.source_url + "?"+d.getTime());
2025-01-29 16:01:02 +02:00
let $dropdown = jQuery('.um-profile-photo .um-dropdown');
if ( ! $dropdown.find('.um-reset-profile-photo').hasClass('um-is-visible') ) {
let $dropdownItem = $dropdown.find('.um-manual-trigger[data-parent=".um-profile-photo"]');
let altText = $dropdownItem.data('alt_text');
$dropdownItem.data( 'alt_text', $dropdownItem.text() ).text( altText );
$dropdown.find('.um-reset-profile-photo').addClass('um-is-visible').show();
}
if ( ! jQuery('.um').hasClass('um-editing') ) {
$dropdown.remove();
}
} else if ( key === 'cover_photo' ) {
2018-07-31 21:06:59 +08:00
jQuery('.um-cover-e').empty().html('<img src="' + response.data.image.source_url + "?"+d.getTime() + '" alt="" />');
let $dropdown = jQuery('.um-cover .um-dropdown');
if ( ! $dropdown.find('.um-reset-cover-photo').hasClass('um-is-visible') ) {
let $dropdownItem = $dropdown.find('.um-manual-trigger[data-parent=".um-cover"]');
let altText = $dropdownItem.data('alt_text');
$dropdownItem.data( 'alt_text', $dropdownItem.text() ).text( altText );
$dropdown.find('.um-reset-cover-photo').addClass('um-is-visible').show();
}
2018-07-31 21:06:59 +08:00
if ( jQuery('.um').hasClass('um-editing') ) {
jQuery('.um-cover-overlay').show();
} else {
$dropdown.remove();
2018-07-31 21:06:59 +08:00
}
um_responsive();
2018-07-31 21:06:59 +08:00
}
2018-07-31 01:35:08 +08:00
2018-07-31 21:06:59 +08:00
jQuery('.um-single-image-preview[data-key='+key+']').fadeIn().find('img').attr('src', response.data.image.source_url + "?"+d.getTime());
2018-07-31 21:06:59 +08:00
um_remove_modal();
jQuery('img.cropper-invisible').remove();
2018-07-31 21:06:59 +08:00
jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('.um-btn-auto-width').html( elem.attr('data-change') );
jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('input[type="hidden"]').val( response.data.image.filename );
}
2014-12-29 15:51:55 +02:00
}
});
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
} else {
2023-11-03 17:31:18 +02:00
d = new Date();
2014-12-29 15:51:55 +02:00
2023-11-03 17:31:18 +02:00
jQuery('.um-single-image-preview[data-key='+key+']').fadeIn().find('img').attr('src', src + "?"+d.getTime());
2023-08-11 11:57:43 +03:00
2023-11-03 17:31:18 +02:00
um_remove_modal();
2014-12-30 20:18:29 +02:00
2023-11-03 17:31:18 +02:00
jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('.um-btn-auto-width').html( elem.attr('data-change') );
2023-08-11 11:57:43 +03:00
2023-11-03 17:31:18 +02:00
jQuery('.um-single-image-preview[data-key='+key+']').parents('.um-field').find('input[type=hidden]').val( file );
2014-12-29 15:51:55 +02:00
}
});
2023-08-11 11:57:43 +03:00
2019-05-13 15:14:41 +03:00
jQuery(document.body).on('click', 'a[data-modal^="um_"], span[data-modal^="um_"]', function(e){
2014-12-15 22:38:07 +02:00
var modal_id = jQuery(this).attr('data-modal');
2019-03-14 16:11:30 +02:00
2018-07-31 21:06:59 +08:00
var size = 'normal';
2014-12-15 22:38:07 +02:00
if ( jQuery(this).data('modal-size') ) {
size = jQuery(this).data('modal-size');
2014-12-15 22:38:07 +02:00
}
2023-08-11 11:57:43 +03:00
if ( jQuery(this).data('modal-copy') ) {
2023-08-11 11:57:43 +03:00
jQuery('#' + modal_id).html( jQuery(this).parents('.um-field').find('.um-modal-hidden-content').html() );
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
if ( jQuery(this).parents('.um-profile-photo').attr('data-user_id') ) {
jQuery('#' + modal_id).attr('data-user_id', jQuery(this).parents('.um-profile-photo').attr('data-user_id') );
}
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
if ( jQuery(this).parents('.um-cover').attr('data-ratio') ) {
jQuery('#' + modal_id).attr('data-ratio', jQuery(this).parents('.um-cover').attr('data-ratio') );
}
2023-08-11 11:57:43 +03:00
2014-12-29 15:51:55 +02:00
if ( jQuery(this).parents('.um-cover').attr('data-user_id') ) {
jQuery('#' + modal_id).attr('data-user_id', jQuery(this).parents('.um-cover').attr('data-user_id') );
}
2018-07-31 21:06:59 +08:00
if ( jQuery('input[type="hidden"][name="user_id"]').length > 0 ) {
jQuery('#' + modal_id).attr( 'data-user_id', jQuery('input[type="hidden"][name="user_id"]').val() );
2018-07-31 21:06:59 +08:00
}
2014-12-15 22:38:07 +02:00
}
um_new_modal( modal_id, size );
2014-12-15 22:38:07 +02:00
});
2023-08-11 11:57:43 +03:00
});