140 lines
5.6 KiB
JavaScript
140 lines
5.6 KiB
JavaScript
jQuery( function ($) {
|
|
|
|
// Browse for file
|
|
jQuery( 'body' ).on( 'click', 'a.dlm_insert_download', function () {
|
|
|
|
tb_show( dlm_id_strings.insert_download, 'media-upload.php?type=add_download&from=wpdlm01&TB_iframe=true&height=200' );
|
|
|
|
return false;
|
|
} );
|
|
|
|
// Browse for file
|
|
jQuery( 'body' ).on( 'click', '.dlm-extension-filtering a', function (event) {
|
|
event.preventDefault();
|
|
|
|
const target = jQuery(this).attr('id'),
|
|
paidExtensions = jQuery('.dlm_extensions .feature-list > .feature-block').not('.free-extension'),
|
|
freeExtensions = jQuery('.dlm_extensions .feature-list > .feature-block.free-extension'),
|
|
tabs = jQuery(this).parents('.dlm-extension-filtering').find('li').not(jQuery(this).parent());
|
|
jQuery(this).parent().addClass('active-section');
|
|
tabs.removeClass('active-section');
|
|
if ( 'free-extensions' === target ) {
|
|
freeExtensions.show( );
|
|
paidExtensions.hide( );
|
|
} else if ( 'pro-extensions' === target ){
|
|
freeExtensions.hide( );
|
|
paidExtensions.show( );
|
|
} else {
|
|
freeExtensions.show( );
|
|
paidExtensions.show( );
|
|
}
|
|
} );
|
|
|
|
$(document).on('click', '#dlm-protect-file', function (e) {
|
|
// Prevent default for form submission
|
|
e.preventDefault();
|
|
|
|
const objectData = $(this).data(),
|
|
button = $(this),
|
|
buttonText = button.text(),
|
|
data = {
|
|
action : ('protect_file' === objectData.action) ? 'dlm_protect_file' : 'dlm_unprotect_file',
|
|
_ajax_nonce : objectData.nonce,
|
|
user_id : objectData.user_id,
|
|
file : objectData.file,
|
|
attachment_id: objectData.post_id
|
|
}
|
|
button.attr('disabled', 'disabled');
|
|
button.text('Please wait...');
|
|
|
|
$.post(ajaxurl, data, function (response) {
|
|
if (response.success) {
|
|
button.text(response.data.text);
|
|
if (response.data.url) {
|
|
button.parents('.attachment-info').find('#attachment-details-two-column-copy-link').val(response.data.url);
|
|
jQuery('#attachment_url').val(response.data.url);
|
|
}
|
|
const nextAction = ('protect_file' === objectData.action) ? 'unprotect_file' : 'protect_file';
|
|
button.data('action', nextAction);
|
|
|
|
setTimeout(function () {
|
|
const nextButtonText = ('protect_file' === nextAction) ? 'Protect File' : 'Unprotect File';
|
|
button.text(nextButtonText);
|
|
button.removeAttr('disabled');
|
|
}, 3000);
|
|
} else {
|
|
button.text(response.data);
|
|
setTimeout(function () {
|
|
button.text(buttonText);
|
|
button.removeAttr('disabled');
|
|
}, 3000);
|
|
}
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Display the dropdown select settings
|
|
*/
|
|
jQuery('.dlm-dropdown-select-settings').on('click', function (e) {
|
|
e.stopPropagation();
|
|
jQuery(this).parent().find('.dlm-dropdown-select-settings__body').toggleClass('dlm-dropdown-select-settings__body--open');
|
|
});
|
|
|
|
/**
|
|
* Save the dropdown select settings
|
|
*/
|
|
jQuery('.dlm-dropdown-select-wrapper__settings input[type="checkbox"]').on('change', function (e) {
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
const inputs = jQuery(this).parents('.dlm-dropdown-select-wrapper__settings').find('input[type="checkbox"]'),
|
|
wrapperId = jQuery(this).parents('.dlm-dropdown-select-wrapper').attr('id');
|
|
let options = [];
|
|
|
|
Object.values(inputs).forEach((element) => {
|
|
$element = jQuery(element);
|
|
if ($element.is(':checked')) {
|
|
options.push($element.val());
|
|
}
|
|
});
|
|
|
|
// Get all the values from the inputs
|
|
const data = {
|
|
action : 'dlm_save_dropdown_select_settings_' + wrapperId,
|
|
_ajax_nonce: dlm_ajax_nonce,
|
|
options : options,
|
|
}
|
|
|
|
// Send the data to the server
|
|
jQuery.post(ajaxurl, data, function (response) {
|
|
if (response.success) {
|
|
jQuery(document).trigger('dlm_after_dropdown_select_save_' + wrapperId, [response, options]);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
jQuery(document).ready(function () {
|
|
if (undefined !== wp.media) {
|
|
wp.media.view.Attachment.Library = wp.media.view.Attachment.Library.extend(
|
|
{
|
|
className: function () {
|
|
// Mainly class for attachment.
|
|
let attachmentClass = 'attachment';
|
|
|
|
// If the dlmCustomClass attribute exists than apply it.
|
|
if ('undefined' !== this.model.get('dlmCustomClass')) {
|
|
attachmentClass += ' ' + this.model.get('dlmCustomClass');
|
|
}
|
|
// If the customClass attirbute exists than apply it.
|
|
if ('undefined' !== this.model.get('customClass')) {
|
|
attachmentClass += ' ' + this.model.get('customClass');
|
|
}
|
|
// Trigger this event in case other plugins want to attach to this.
|
|
jQuery(document).trigger('dlm_custom_attachment_class', [this.model, attachmentClass]);
|
|
// Return the class for attachment.
|
|
return attachmentClass;
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}); |