You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
6.5 KiB
JavaScript
193 lines
6.5 KiB
JavaScript
(function($){
|
|
|
|
/**
|
|
* Bsf Custom Fonts
|
|
*
|
|
* @class BsfCustomFonts
|
|
* @since 1.0.0
|
|
*/
|
|
|
|
BsfCustomFonts = {
|
|
|
|
/**
|
|
* Initializes a Bsf Custom Fonts.
|
|
*
|
|
* @since 1.0
|
|
* @method init
|
|
*/
|
|
init: function()
|
|
{
|
|
// Init.
|
|
this._fileUploads();
|
|
},
|
|
/**
|
|
* Font File Uploads
|
|
* parallax.
|
|
*
|
|
* @since 1.0.0
|
|
* @access private
|
|
* @method _fileUploads
|
|
*/
|
|
_fileUploads: function()
|
|
{
|
|
var file_frame;
|
|
window.inputWrapper = '';
|
|
$( document.body ).on('click', '.bsf-custom-fonts-upload', function(event) {
|
|
event.preventDefault();
|
|
var button = $(this),
|
|
button_type = button.data('upload-type');
|
|
window.inputWrapper = $(this).closest('.bsf-custom-fonts-file-wrap');
|
|
|
|
// If the media frame already exists, reopen it.
|
|
if ( file_frame ) {
|
|
file_frame.open();
|
|
return;
|
|
}
|
|
|
|
// Create a new media frame
|
|
file_frame = wp.media.frames.file_frame = wp.media({
|
|
multiple: false // Set to true to allow multiple files to be selected
|
|
});
|
|
|
|
// When an image is selected in the media frame...
|
|
file_frame.on( 'select', function() {
|
|
|
|
// Get media attachment details from the frame state
|
|
var attachment = file_frame.state().get('selection').first().toJSON();
|
|
window.inputWrapper.find( '.bsf-custom-fonts-link' ).val(attachment.url);
|
|
});
|
|
// Finally, open the modal
|
|
file_frame.open();
|
|
});
|
|
var file_frame;
|
|
window.inputWrapper = '';
|
|
},
|
|
}
|
|
|
|
function remove_button_disable(){
|
|
if (1 === $('.repeater-remove-btn .remove-btn').length ){
|
|
$('.repeater-remove-btn .remove-btn').addClass('disabled');
|
|
}else{
|
|
$('.repeater-remove-btn .remove-btn').removeClass('disabled');
|
|
}
|
|
}
|
|
|
|
var addButton = $('.repeater-add-btn:last');
|
|
|
|
addButton.on('click', function () {
|
|
var repeaterFieldCount = $('input[name=repeater-field-count]').val();
|
|
var item = $('#repeater .cf-bsf-items').first().clone().prop('id', 'item-' + ( parseInt( repeaterFieldCount ) ) );
|
|
|
|
item.appendTo('#repeater');
|
|
var newItem = $('#item-' + parseInt( repeaterFieldCount ) );
|
|
var input = newItem.find('input,select');
|
|
input.each(function (index, el) {
|
|
var clonedElement = newItem.find(el);
|
|
var attrName = clonedElement.data('name');
|
|
if( attrName == '[font-weight-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font-weight-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
}
|
|
if( attrName == '[font_woff_2-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_woff_2-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == '[font_woff-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_woff-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == '[font_ttf-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_ttf-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == '[font_eot-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_eot-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == '[font_svg-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_svg-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == '[font_otf-0]' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_otf-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
});
|
|
$('input[name=repeater-field-count]').val( parseInt( repeaterFieldCount ) + 1 );
|
|
|
|
remove_button_disable();
|
|
$('html, body').animate({
|
|
scrollTop: newItem.offset().top
|
|
}, 500);
|
|
});
|
|
|
|
var editAddButton = $('.edit-repeater-add-btn:last');
|
|
|
|
editAddButton.on('click', function () {
|
|
var repeaterFieldCount = $('input[name=repeater-field-count]').val();
|
|
var item = $('#repeater .cf-bsf-items').first().clone().prop('id', 'item-' + ( parseInt( repeaterFieldCount ) ) );
|
|
item.appendTo('#repeater');
|
|
var newItem = $('#item-' + repeaterFieldCount);
|
|
var newItemId = $('#repeater .cf-bsf-items').first().find('select').attr('id').replace( /^\D+/g, '');
|
|
var input = newItem.find('input,select');
|
|
input.each(function (index, el) {
|
|
var clonedElement = newItem.find(el);
|
|
var attrName = clonedElement.attr('name');
|
|
if( attrName == 'bsf_custom_fonts[font-weight-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font-weight-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
}
|
|
if( attrName == 'bsf_custom_fonts[font_woff_2-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_woff_2-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == 'bsf_custom_fonts[font_woff-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_woff-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == 'bsf_custom_fonts[font_ttf-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_ttf-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == 'bsf_custom_fonts[font_eot-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_eot-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == 'bsf_custom_fonts[font_svg-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_svg-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
if( attrName == 'bsf_custom_fonts[font_otf-' + newItemId + ']' ) {
|
|
clonedElement.attr('name', 'bsf_custom_fonts[font_otf-' + ( parseInt( repeaterFieldCount ) ) + ']');
|
|
clonedElement.attr('value', '');
|
|
}
|
|
});
|
|
$('input[name=repeater-field-count]').val( parseInt( repeaterFieldCount ) + 1 );
|
|
|
|
remove_button_disable();
|
|
$('html, body').animate({
|
|
scrollTop: newItem.offset().top
|
|
}, 500);
|
|
});
|
|
|
|
$(document).on('click', '.remove-btn', function () {
|
|
$this = $(this)
|
|
if ( $this.hasClass( 'disabled' ) ) {
|
|
return false;
|
|
}
|
|
$this.parents('.cf-bsf-items').remove();
|
|
remove_button_disable();
|
|
});
|
|
|
|
$( document ).ajaxComplete(function( event, request, settings ) {
|
|
if( settings.data && "action=add-tag" === settings.data.split("&")[0]){
|
|
location.reload();
|
|
}
|
|
});
|
|
|
|
/* Initializes the Bsf Custom Fonts. */
|
|
$(function(){
|
|
BsfCustomFonts.init();
|
|
remove_button_disable();
|
|
});
|
|
|
|
})(jQuery);
|