plugin updates
This commit is contained in:
@@ -1,415 +0,0 @@
|
||||
/* eslint-env jquery */
|
||||
(function ($) {
|
||||
const { __ } = wp.i18n;
|
||||
const temp = {
|
||||
person: __('Website Owner Name'),
|
||||
organization: __('Organization Name', 'wp-schema-pro'),
|
||||
Webshop: __('Webshop Name', 'wp-schema-pro'),
|
||||
personblog: __('Website Owner Name', 'wp-schema-pro'),
|
||||
Smallbusiness: __('Blog Website Name', 'wp-schema-pro'),
|
||||
Otherbusiness: __('Business Name', 'wp-schema-pro'),
|
||||
};
|
||||
|
||||
/**
|
||||
* AIOSRS Frontend
|
||||
*
|
||||
* @class WPSchemaProSettings
|
||||
* @since 1.0
|
||||
*/
|
||||
const WPSchemaProSettings = {
|
||||
init() {
|
||||
const self = this;
|
||||
this.customFieldDependecy();
|
||||
this.customImageSelect();
|
||||
this.initRepeater();
|
||||
this.toolTips();
|
||||
this.regenerateSchema();
|
||||
|
||||
$('select.wp-select2').each(function (index, el) {
|
||||
self.init_target_rule_select2(el);
|
||||
});
|
||||
},
|
||||
regenerateSchema() {
|
||||
$('#wpsp-regenerate-schema').click(function () {
|
||||
$(this).next('span.spinner').addClass('is-active');
|
||||
|
||||
jQuery
|
||||
.ajax({
|
||||
url: ajaxurl,
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
action: 'regenerate_schema',
|
||||
nonce: $(this).data('nonce'),
|
||||
},
|
||||
})
|
||||
.success(function () {
|
||||
$('#wpsp-regenerate-schema')
|
||||
.next('span.spinner')
|
||||
.removeClass('is-active');
|
||||
|
||||
$('#wpsp-regenerate-notice')
|
||||
.show()
|
||||
.delay(2000)
|
||||
.fadeOut();
|
||||
});
|
||||
});
|
||||
},
|
||||
toolTips() {
|
||||
$(document).on(
|
||||
'click',
|
||||
'.wp-schema-pro-tooltip-icon',
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
$('.wp-schema-pro-tooltip-wrapper').removeClass('activate');
|
||||
$(this).parent().addClass('activate');
|
||||
}
|
||||
);
|
||||
|
||||
$(document).on('click', function (e) {
|
||||
if (
|
||||
!$(e.target).hasClass(
|
||||
'wp-schema-pro-tooltip-description'
|
||||
) &&
|
||||
!$(e.target).hasClass('wp-schema-pro-tooltip-icon') &&
|
||||
$(e.target).closest('.wp-schema-pro-tooltip-description')
|
||||
.length === 0
|
||||
) {
|
||||
$('.wp-schema-pro-tooltip-wrapper').removeClass('activate');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
customImageSelect() {
|
||||
let fileFrame;
|
||||
window.inputWrapper = '';
|
||||
|
||||
$(document.body).on(
|
||||
'click',
|
||||
'.image-field-wrap .aiosrs-image-select',
|
||||
function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
window.inputWrapper = $(this).closest('td');
|
||||
|
||||
// Create the media frame.
|
||||
fileFrame = wp.media({
|
||||
button: {
|
||||
text: 'Select Image',
|
||||
close: false,
|
||||
},
|
||||
states: [
|
||||
new wp.media.controller.Library({
|
||||
title: 'Select Custom Image',
|
||||
library: wp.media.query({ type: 'image' }),
|
||||
multiple: false,
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
// When an image is selected, run a callback.
|
||||
fileFrame.on('select', function () {
|
||||
const attachment = fileFrame
|
||||
.state()
|
||||
.get('selection')
|
||||
.first()
|
||||
.toJSON();
|
||||
|
||||
const image = window.inputWrapper.find(
|
||||
'.image-field-wrap img'
|
||||
);
|
||||
if (image.length === 0) {
|
||||
window.inputWrapper
|
||||
.find('.image-field-wrap')
|
||||
.append(
|
||||
'<a href="#" class="aiosrs-image-select img"><img src="' +
|
||||
attachment.url +
|
||||
'" /></a>'
|
||||
);
|
||||
} else {
|
||||
image.attr('src', attachment.url);
|
||||
}
|
||||
window.inputWrapper
|
||||
.find('.image-field-wrap')
|
||||
.addClass('bsf-custom-image-selected');
|
||||
window.inputWrapper
|
||||
.find('.single-image-field')
|
||||
.val(attachment.id);
|
||||
|
||||
fileFrame.close();
|
||||
});
|
||||
|
||||
fileFrame.open();
|
||||
}
|
||||
);
|
||||
|
||||
$(document).on('click', '.aiosrs-image-remove', function (e) {
|
||||
e.preventDefault();
|
||||
const parent = $(this).closest('td');
|
||||
parent
|
||||
.find('.image-field-wrap')
|
||||
.removeClass('bsf-custom-image-selected');
|
||||
parent.find('.single-image-field').val('');
|
||||
parent.find('.image-field-wrap img').removeAttr('src');
|
||||
});
|
||||
window.inputWrapper = '';
|
||||
},
|
||||
|
||||
customFieldDependecy() {
|
||||
jQuery(document).on(
|
||||
'change',
|
||||
'#post-body-content .wp-schema-pro-custom-option-select, .aiosrs-pro-setup-wizard-content.general-setting-content-wrap .wp-schema-pro-custom-option-select',
|
||||
function () {
|
||||
const customWrap = jQuery(this).next(
|
||||
'.custom-field-wrapper'
|
||||
);
|
||||
|
||||
customWrap.css('display', 'none');
|
||||
if ('custom' === jQuery(this).val()) {
|
||||
customWrap.css('display', '');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
jQuery(document).on(
|
||||
'change',
|
||||
'select[name="wp-schema-pro-general-settings[site-represent]"]',
|
||||
function () {
|
||||
const wrapper = jQuery(this).closest('table'),
|
||||
logoWrap = wrapper.find(
|
||||
'.wp-schema-pro-site-logo-wrap'
|
||||
),
|
||||
companyNameWrap = wrapper.find(
|
||||
'.wp-schema-pro-site-name-wrap'
|
||||
),
|
||||
personNameWrap = wrapper.find(
|
||||
'.wp-schema-pro-person-name-wrap'
|
||||
);
|
||||
|
||||
companyNameWrap.css('display', 'none');
|
||||
personNameWrap.css('display', 'none');
|
||||
if ('' !== jQuery(this).val()) {
|
||||
if (
|
||||
'organization' === jQuery(this).val() ||
|
||||
'Webshop' === jQuery(this).val() ||
|
||||
'Smallbusiness' === jQuery(this).val() ||
|
||||
'Otherbusiness' === jQuery(this).val()
|
||||
) {
|
||||
logoWrap.css('display', '');
|
||||
companyNameWrap.css('display', '');
|
||||
} else {
|
||||
personNameWrap.css('display', '');
|
||||
logoWrap.css('display', '');
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
jQuery(document).on(
|
||||
'change',
|
||||
'select[name="wp-schema-pro-general-settings[site-represent]"]',
|
||||
function () {
|
||||
const organizationType = jQuery(this).val();
|
||||
if ('' !== jQuery(this).val()) {
|
||||
if (organizationType in temp) {
|
||||
$('.wpsp-organization-label').text(
|
||||
temp[organizationType]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
jQuery(document).on(
|
||||
'change',
|
||||
'select[name="wp-schema-pro-corporate-contact[contact-type]"]',
|
||||
function () {
|
||||
const wrapper = jQuery(this).closest('table'),
|
||||
contactPointWrap = wrapper.find(
|
||||
'.wp-schema-pro-other-wrap'
|
||||
);
|
||||
contactPointWrap.css('display', 'none');
|
||||
if ('' !== jQuery(this).val()) {
|
||||
if ('other' === jQuery(this).val()) {
|
||||
contactPointWrap.css('display', '');
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
$('#add-row').on('click', function () {
|
||||
const row = $('.empty-row.screen-reader-text').clone(true);
|
||||
row.removeClass('empty-row screen-reader-text');
|
||||
row.insertBefore('#repeatable-fieldset-one >tr:last');
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.remove-row').on('click', function () {
|
||||
$(this).parents('tr').remove();
|
||||
return false;
|
||||
});
|
||||
},
|
||||
|
||||
initRepeater() {
|
||||
$(document).on(
|
||||
'click',
|
||||
'.bsf-repeater-add-new-btn',
|
||||
function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
const selector = $(this),
|
||||
parentWrap = selector.closest(
|
||||
'.bsf-aiosrs-schema-type-wrap'
|
||||
),
|
||||
totalCount = parentWrap.find(
|
||||
'.aiosrs-pro-repeater-table-wrap'
|
||||
).length,
|
||||
template = parentWrap
|
||||
.find('.aiosrs-pro-repeater-table-wrap')
|
||||
.first()
|
||||
.clone();
|
||||
|
||||
template.find('input, textarea, select').each(function () {
|
||||
$(this).val('');
|
||||
|
||||
const fieldName =
|
||||
'undefined' !== typeof $(this).attr('name')
|
||||
? $(this)
|
||||
.attr('name')
|
||||
.replace(
|
||||
'[0]',
|
||||
'[' + totalCount + ']'
|
||||
)
|
||||
: '',
|
||||
fieldClass =
|
||||
'undefined' !== typeof $(this).attr('class')
|
||||
? $(this)
|
||||
.attr('class')
|
||||
.replace(
|
||||
'-0-',
|
||||
'-' + totalCount + '-'
|
||||
)
|
||||
: '',
|
||||
fieldId =
|
||||
'undefined' !== typeof $(this).attr('id')
|
||||
? $(this)
|
||||
.attr('id')
|
||||
.replace(
|
||||
'-0-',
|
||||
'-' + totalCount + '-'
|
||||
)
|
||||
: '';
|
||||
|
||||
$(this).attr('name', fieldName);
|
||||
$(this).attr('class', fieldClass);
|
||||
$(this).attr('id', fieldId);
|
||||
});
|
||||
|
||||
template.insertBefore(selector);
|
||||
}
|
||||
);
|
||||
|
||||
$(document).on('click', '.bsf-repeater-close', function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
const selector = $(this),
|
||||
parentWrap = selector.closest(
|
||||
'.bsf-aiosrs-schema-type-wrap'
|
||||
),
|
||||
repeaterCount = parentWrap.find(
|
||||
'> .aiosrs-pro-repeater-table-wrap'
|
||||
).length;
|
||||
|
||||
if (repeaterCount > 1) {
|
||||
selector
|
||||
.closest('.aiosrs-pro-repeater-table-wrap')
|
||||
.remove();
|
||||
}
|
||||
});
|
||||
},
|
||||
init_target_rule_select2(selector) {
|
||||
$(selector).select2({
|
||||
placeholder: 'Search Fields...',
|
||||
|
||||
ajax: {
|
||||
url: ajaxurl,
|
||||
dataType: 'json',
|
||||
method: 'post',
|
||||
delay: 250,
|
||||
data(params) {
|
||||
return {
|
||||
nonce_ajax: AIOSRS_search.search_field,
|
||||
q: params.term, // search term
|
||||
page: params.page,
|
||||
action: 'bsf_get_specific_pages',
|
||||
};
|
||||
},
|
||||
processResults(data) {
|
||||
return {
|
||||
results: data,
|
||||
};
|
||||
},
|
||||
cache: true,
|
||||
},
|
||||
minimumInputLength: 2,
|
||||
});
|
||||
},
|
||||
};
|
||||
const loadDefaultValues = function () {
|
||||
const field = jQuery(
|
||||
'select[name="wp-schema-pro-general-settings[site-represent]"]'
|
||||
),
|
||||
wrapper = field.closest('table'),
|
||||
logoWrap = wrapper.find('.wp-schema-pro-site-logo-wrap'),
|
||||
companyNameWrap = wrapper.find('.wp-schema-pro-site-name-wrap'),
|
||||
personNameWrap = wrapper.find('.wp-schema-pro-person-name-wrap');
|
||||
|
||||
companyNameWrap.css('display', 'none');
|
||||
personNameWrap.css('display', 'none');
|
||||
if ('' !== field.val()) {
|
||||
if (
|
||||
'organization' === field.val() ||
|
||||
'Webshop' === field.val() ||
|
||||
'Smallbusiness' === field.val() ||
|
||||
'Otherbusiness' === field.val()
|
||||
) {
|
||||
logoWrap.css('display', '');
|
||||
companyNameWrap.css('display', '');
|
||||
} else {
|
||||
personNameWrap.css('display', '');
|
||||
logoWrap.css('display', '');
|
||||
}
|
||||
}
|
||||
};
|
||||
const loadDefaultOrganizationLabel = function () {
|
||||
const field = jQuery(
|
||||
'select[name="wp-schema-pro-general-settings[site-represent]"]'
|
||||
),
|
||||
organizationType = field.val();
|
||||
if ('' !== field) {
|
||||
if (organizationType in temp) {
|
||||
$('.wpsp-organization-label').text(temp[organizationType]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready(function () {
|
||||
$('.wp-select2').select2();
|
||||
$('.wpsp-setup-configuration-settings').select2();
|
||||
loadDefaultValues();
|
||||
loadDefaultOrganizationLabel();
|
||||
$('#add-row').on('click', function () {
|
||||
const row = $('.empty-row.screen-reader-text').clone(true);
|
||||
row.removeClass('empty-row screen-reader-text');
|
||||
row.insertBefore('#repeatable-fieldset-one tbody>tr:last');
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.remove-row').on('click', function () {
|
||||
$(this).parents('tr').remove();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
/* Initializes the AIOSRS Frontend. */
|
||||
$(function () {
|
||||
WPSchemaProSettings.init();
|
||||
});
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user