553 lines
23 KiB
JavaScript
553 lines
23 KiB
JavaScript
/* global jQuery */
|
|
/* global wp */
|
|
function consultstreet_media_upload(button_class) {
|
|
'use strict';
|
|
jQuery('body').on('click', button_class, function () {
|
|
var button_id = '#' + jQuery(this).attr('id');
|
|
var display_field = jQuery(this).parent().children('input:text');
|
|
var _custom_media = true;
|
|
|
|
wp.media.editor.send.attachment = function (props, attachment) {
|
|
|
|
if (_custom_media) {
|
|
if (typeof display_field !== 'undefined') {
|
|
switch (props.size) {
|
|
case 'full':
|
|
display_field.val(attachment.sizes.full.url);
|
|
display_field.trigger('change');
|
|
break;
|
|
case 'medium':
|
|
display_field.val(attachment.sizes.medium.url);
|
|
display_field.trigger('change');
|
|
break;
|
|
case 'thumbnail':
|
|
display_field.val(attachment.sizes.thumbnail.url);
|
|
display_field.trigger('change');
|
|
break;
|
|
default:
|
|
display_field.val(attachment.url);
|
|
display_field.trigger('change');
|
|
}
|
|
}
|
|
_custom_media = false;
|
|
} else {
|
|
return wp.media.editor.send.attachment(button_id, [props, attachment]);
|
|
}
|
|
};
|
|
wp.media.editor.open(button_class);
|
|
window.send_to_editor = function (html) {
|
|
|
|
};
|
|
return false;
|
|
});
|
|
}
|
|
|
|
/********************************************
|
|
*** Generate unique id ***
|
|
*********************************************/
|
|
function consultstreet_customizer_repeater_uniqid(prefix, more_entropy) {
|
|
'use strict';
|
|
if (typeof prefix === 'undefined') {
|
|
prefix = '';
|
|
}
|
|
|
|
var retId;
|
|
var php_js;
|
|
var formatSeed = function (seed, reqWidth) {
|
|
seed = parseInt(seed, 10)
|
|
.toString(16); // to hex str
|
|
if (reqWidth < seed.length) { // so long we split
|
|
return seed.slice(seed.length - reqWidth);
|
|
}
|
|
if (reqWidth > seed.length) { // so short we pad
|
|
return new Array(1 + (reqWidth - seed.length))
|
|
.join('0') + seed;
|
|
}
|
|
return seed;
|
|
};
|
|
|
|
// BEGIN REDUNDANT
|
|
if (!php_js) {
|
|
php_js = {};
|
|
}
|
|
// END REDUNDANT
|
|
if (!php_js.uniqidSeed) { // init seed with big random int
|
|
php_js.uniqidSeed = Math.floor(Math.random() * 0x75bcd15);
|
|
}
|
|
php_js.uniqidSeed++;
|
|
|
|
retId = prefix; // start with prefix, add current milliseconds hex string
|
|
retId += formatSeed(parseInt(new Date()
|
|
.getTime() / 1000, 10), 8);
|
|
retId += formatSeed(php_js.uniqidSeed, 5); // add seed hex string
|
|
if (more_entropy) {
|
|
// for more entropy we add a float lower to 10
|
|
retId += (Math.random() * 10)
|
|
.toFixed(8)
|
|
.toString();
|
|
}
|
|
|
|
return retId;
|
|
}
|
|
|
|
|
|
/********************************************
|
|
*** General Repeater ***
|
|
*********************************************/
|
|
function consultstreet_customizer_repeater_refresh_social_icons(th) {
|
|
'use strict';
|
|
var icons_repeater_values = [];
|
|
th.find('.customizer-repeater-social-repeater-container').each(function () {
|
|
var icon = jQuery(this).find('.icp').val();
|
|
var link = jQuery(this).find('.customizer-repeater-social-repeater-link').val();
|
|
var id = jQuery(this).find('.customizer-repeater-social-repeater-id').val();
|
|
|
|
if (!id) {
|
|
id = 'customizer-repeater-social-repeater-' + consultstreet_customizer_repeater_uniqid();
|
|
jQuery(this).find('.customizer-repeater-social-repeater-id').val(id);
|
|
}
|
|
|
|
if (icon !== '' && link !== '') {
|
|
icons_repeater_values.push({
|
|
'icon': icon,
|
|
'link': link,
|
|
'id': id
|
|
});
|
|
}
|
|
});
|
|
|
|
th.find('.social-repeater-socials-repeater-colector').val(JSON.stringify(icons_repeater_values));
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
}
|
|
|
|
|
|
function consultstreet_customizer_repeater_refresh_general_control_values() {
|
|
|
|
'use strict';
|
|
jQuery('.customizer-repeater-general-control-repeater').each(function () {
|
|
var values = [];
|
|
var th = jQuery(this);
|
|
th.find('.customizer-repeater-general-control-repeater-container').each(function () {
|
|
|
|
var icon_value = jQuery(this).find('.icp').val();
|
|
var text = jQuery(this).find('.customizer-repeater-text-control').val();
|
|
var button_text = jQuery(this).find('.customizer-repeater-button-text-control').val();
|
|
var link = jQuery(this).find('.customizer-repeater-link-control').val();
|
|
var color = jQuery(this).find('.customizer-repeater-color-control').val();
|
|
var designation = jQuery(this).find('.customizer-repeater-designation-control').val();
|
|
var open_new_tab = jQuery(this).find('.customizer-repeater-checkbox').val();
|
|
var image_url = jQuery(this).find('.custom-media-url').val();
|
|
var choice = jQuery(this).find('.customizer-repeater-image-choice').val();
|
|
var title = jQuery(this).find('.customizer-repeater-title-control').val();
|
|
var subtitle = jQuery(this).find('.customizer-repeater-subtitle-control').val();
|
|
var slide_format = jQuery(this).find('.customizer-repeater-slide-format').val();
|
|
var video_url = jQuery(this).find('.customizer-repeater-video-url-control').val();
|
|
var id = jQuery(this).find('.social-repeater-box-id').val();
|
|
if (!id) {
|
|
id = 'social-repeater-' + consultstreet_customizer_repeater_uniqid();
|
|
jQuery(this).find('.social-repeater-box-id').val(id);
|
|
}
|
|
var social_repeater = jQuery(this).find('.social-repeater-socials-repeater-colector').val();
|
|
var shortcode = jQuery(this).find('.customizer-repeater-shortcode-control').val();
|
|
|
|
if (text !== '' || image_url !== '' || title !== '' || subtitle !== '' || icon_value !== '' || link !== '' || designation !== '' || open_new_tab !== '' || choice !== '' || social_repeater !== '' || shortcode !== '' || color !== '' || button_text !== '' || slide_format !== '' || video_url !== '') {
|
|
values.push({
|
|
'icon_value': (choice === 'customizer_repeater_none' ? '' : icon_value),
|
|
'color': color,
|
|
'text': consultstreet_escapeHtml(text),
|
|
'link': link,
|
|
'image_url': (choice === 'customizer_repeater_none' ? '' : image_url),
|
|
'choice': choice,
|
|
'title': consultstreet_escapeHtml(title),
|
|
'subtitle': consultstreet_escapeHtml(subtitle),
|
|
'social_repeater': consultstreet_escapeHtml(social_repeater),
|
|
'id': id,
|
|
'shortcode': consultstreet_escapeHtml(shortcode),
|
|
'button_text' : button_text,
|
|
'designation' : designation,
|
|
'open_new_tab' : open_new_tab,
|
|
'slide_format' : slide_format,
|
|
'video_url' : video_url
|
|
});
|
|
}
|
|
|
|
});
|
|
th.find('.customizer-repeater-colector').val(JSON.stringify(values));
|
|
th.find('.customizer-repeater-colector').trigger('change');
|
|
});
|
|
}
|
|
|
|
|
|
jQuery(document).ready(function () {
|
|
'use strict';
|
|
var theme_conrols = jQuery('#customize-theme-controls');
|
|
theme_conrols.on('click', '.customizer-repeater-customize-control-title', function () {
|
|
jQuery(this).next().slideToggle('medium', function () {
|
|
if (jQuery(this).is(':visible')){
|
|
jQuery(this).prev().addClass('repeater-expanded');
|
|
jQuery(this).css('display', 'block');
|
|
} else {
|
|
jQuery(this).prev().removeClass('repeater-expanded');
|
|
}
|
|
});
|
|
});
|
|
|
|
theme_conrols.on('change', '.icp',function(){
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
return false;
|
|
});
|
|
|
|
theme_conrols.on('change','.customizer-repeater-slide-format', function(){
|
|
if(jQuery(this).val() === 'customizer_repeater_slide_forma_video'){
|
|
jQuery(this).parent().parent().find('.customizer-repeater-video-url-control').show();
|
|
jQuery(this).parent().parent().find('.Video').show();
|
|
}else{
|
|
jQuery(this).parent().parent().find('.customizer-repeater-video-url-control').hide();
|
|
jQuery(this).parent().parent().find('.Video').hide();
|
|
}
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
return false;
|
|
|
|
});
|
|
|
|
theme_conrols.on('change', '.customizer-repeater-image-choice', function () {
|
|
if (jQuery(this).val() === 'customizer_repeater_image') {
|
|
jQuery(this).parent().parent().find('.social-repeater-general-control-icon').hide();
|
|
jQuery(this).parent().parent().find('.customizer-repeater-image-control').show();
|
|
}
|
|
if (jQuery(this).val() === 'customizer_repeater_icon') {
|
|
jQuery(this).parent().parent().find('.social-repeater-general-control-icon').show();
|
|
jQuery(this).parent().parent().find('.customizer-repeater-image-control').hide();
|
|
}
|
|
if (jQuery(this).val() === 'customizer_repeater_none') {
|
|
jQuery(this).parent().parent().find('.social-repeater-general-control-icon').hide();
|
|
jQuery(this).parent().parent().find('.customizer-repeater-image-control').hide();
|
|
}
|
|
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
return false;
|
|
});
|
|
consultstreet_media_upload('.customizer-repeater-custom-media-button');
|
|
jQuery('.custom-media-url').on('change', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
return false;
|
|
});
|
|
|
|
var color_options = {
|
|
change: function(event, ui){
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
}
|
|
};
|
|
|
|
/**
|
|
* This adds a new box to repeater
|
|
*
|
|
*/
|
|
theme_conrols.on('click', '.customizer-repeater-new-field', function () {
|
|
|
|
var parentid = jQuery(this).parent().attr("id");
|
|
|
|
if(parentid == 'customize-control-consultstreet_top_header_info_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_top_header_info_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 3){
|
|
jQuery( "#customize-control-consultstreet_top_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if(parentid == 'customize-control-consultstreet_top_header_social_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_top_header_social_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 4){
|
|
jQuery( "#customize-control-consultstreet_social_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if(parentid == 'customize-control-consultstreet_main_slider_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_main_slider_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 2){
|
|
jQuery( "#customize-control-consultstreet_slider_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if(parentid == 'customize-control-consultstreet_theme_info_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_theme_info_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 3){
|
|
jQuery( "#customize-control-consultstreet_info_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
if(parentid == 'customize-control-consultstreet_service_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_service_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 3){
|
|
jQuery( "#customize-control-consultstreet_service_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
if(parentid == 'customize-control-consultstreet_project_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_project_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 4){
|
|
jQuery( "#customize-control-consultstreet_project_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
if(parentid == 'customize-control-consultstreet_testimonial_content')
|
|
{
|
|
var numItems = jQuery("#customize-control-consultstreet_testimonial_content .customizer-repeater-general-control-repeater-container").length
|
|
if(numItems >= 3){
|
|
jQuery( "#customize-control-consultstreet_testimonial_upgrade .consultstreet-upgrade-pro-message" ).show();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
var th = jQuery(this).parent();
|
|
var id = 'customizer-repeater-' + consultstreet_customizer_repeater_uniqid();
|
|
if (typeof th !== 'undefined') {
|
|
/* Clone the first box*/
|
|
var field = th.find('.customizer-repeater-general-control-repeater-container:first').clone( true, true );
|
|
|
|
if (typeof field !== 'undefined') {
|
|
/*Set the default value for choice between image and icon to icon*/
|
|
field.find('.customizer-repeater-image-choice').val('customizer_repeater_icon');
|
|
|
|
/*Show icon selector*/
|
|
field.find('.social-repeater-general-control-icon').show();
|
|
|
|
/*Hide image selector*/
|
|
if (field.find('.social-repeater-general-control-icon').length > 0) {
|
|
field.find('.customizer-repeater-image-control').hide();
|
|
}
|
|
|
|
/*Show delete box button because it's not the first box*/
|
|
field.find('.social-repeater-general-control-remove-field').show();
|
|
|
|
/* Empty control for icon */
|
|
field.find('.input-group-addon').find('.fa').attr('class', 'fa');
|
|
|
|
|
|
/*Remove all repeater fields except first one*/
|
|
|
|
field.find('.customizer-repeater-social-repeater').find('.customizer-repeater-social-repeater-container').not(':first').remove();
|
|
field.find('.customizer-repeater-social-repeater-link').val('');
|
|
field.find('.social-repeater-socials-repeater-colector').val('');
|
|
|
|
/*Remove value from icon field*/
|
|
field.find('.icp').val('');
|
|
|
|
/*Remove value from text field*/
|
|
field.find('.customizer-repeater-text-control').val('');
|
|
|
|
/*Remove value from button text field*/
|
|
field.find('.customizer-repeater-button-text-control').val('');
|
|
|
|
field.find('.customizer-repeater-video-url-control').val('');
|
|
|
|
/*Remove value from designation text field*/
|
|
field.find('.customizer-repeater-designation-control').val('');
|
|
|
|
/*Set the default value in slide format*/
|
|
field.find('.customizer-repeater-slide-format').val('left');
|
|
|
|
/*Remove value from link field*/
|
|
field.find('.customizer-repeater-link-control').val('');
|
|
|
|
/*Set box id*/
|
|
field.find('.social-repeater-box-id').val(id);
|
|
|
|
/*Remove value from media field*/
|
|
field.find('.custom-media-url').val('');
|
|
|
|
/*Remove value from title field*/
|
|
field.find('.customizer-repeater-title-control').val('');
|
|
|
|
/*Remove value from color field*/
|
|
field.find('.wp-picker-container').replaceWith('<input type="text" class="customizer-repeater-color-control ' + id + '">');
|
|
field.find('.customize-control-notifications-container').remove();
|
|
field.find('.customizer-repeater-color-control').wpColorPicker(color_options);
|
|
|
|
/*Remove value from subtitle field*/
|
|
field.find('.customizer-repeater-subtitle-control').val('');
|
|
|
|
/*Remove value from shortcode field*/
|
|
field.find('.customizer-repeater-shortcode-control').val('');
|
|
|
|
/*Set the default value in checkbox*/
|
|
field.find('.customizer-repeater-checkbox').val('');
|
|
|
|
/*Append new box*/
|
|
th.find('.customizer-repeater-general-control-repeater-container:first').parent().append(field);
|
|
|
|
/*Refresh values*/
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
}
|
|
|
|
}
|
|
return false;
|
|
});
|
|
|
|
|
|
theme_conrols.on('click', '.social-repeater-general-control-remove-field', function () {
|
|
if (typeof jQuery(this).parent() !== 'undefined') {
|
|
jQuery(this).parent().hide(500, function(){
|
|
|
|
var main_top_items = jQuery("#customize-control-consultstreet_top_header_info_content .customizer-repeater-general-control-repeater-container").length
|
|
if(main_top_items < 4){
|
|
jQuery( "#customize-control-consultstreet_top_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
|
|
var main_social_items = jQuery("#customize-control-consultstreet_top_header_social_content .customizer-repeater-general-control-repeater-container").length
|
|
if(main_social_items < 5){
|
|
jQuery( "#customize-control-consultstreet_social_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
|
|
var main_slider_items = jQuery("#customize-control-consultstreet_main_slider_content .customizer-repeater-general-control-repeater-container").length
|
|
if(main_slider_items < 3){
|
|
jQuery( "#customize-control-consultstreet_slider_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
var theme_info_items = jQuery("#customize-control-consultstreet_theme_info_content .customizer-repeater-general-control-repeater-container").length
|
|
if(theme_info_items < 4){
|
|
jQuery( "#customize-control-consultstreet_info_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
var theme_info_items = jQuery("#customize-control-consultstreet_service_content .customizer-repeater-general-control-repeater-container").length
|
|
if(theme_info_items < 4){
|
|
jQuery( "#customize-control-consultstreet_service_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
var project_items = jQuery("#customize-control-consultstreet_project_content .customizer-repeater-general-control-repeater-container").length
|
|
if(project_items < 5){
|
|
jQuery( "#customize-control-consultstreet_project_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
var testimonial_items = jQuery("#customize-control-consultstreet_testimonial_content .customizer-repeater-general-control-repeater-container").length
|
|
if(testimonial_items < 4){
|
|
jQuery( "#customize-control-consultstreet_testimonial_upgrade .consultstreet-upgrade-pro-message" ).hide();
|
|
}
|
|
|
|
jQuery(this).parent().remove();
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
|
|
});
|
|
}
|
|
return false;
|
|
});
|
|
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-title-control', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
jQuery('.customizer-repeater-color-control').wpColorPicker(color_options);
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-subtitle-control', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-shortcode-control', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-video-url-control', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-text-control', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
theme_conrols.on('keyup','.customizer-repeater-button-text-control', function(){
|
|
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
})
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-link-control', function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
theme_conrols.on('keyup','.customizer-repeater-designation-control', function(){
|
|
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
theme_conrols.on('change','.customizer-repeater-checkbox', function(){
|
|
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
});
|
|
|
|
/*Drag and drop to change icons order*/
|
|
|
|
jQuery('.customizer-repeater-general-control-droppable').sortable({
|
|
axis: 'y',
|
|
update: function () {
|
|
consultstreet_customizer_repeater_refresh_general_control_values();
|
|
}
|
|
});
|
|
|
|
|
|
/*----------------- Socials Repeater ---------------------*/
|
|
theme_conrols.on('click', '.social-repeater-add-social-item', function (event) {
|
|
event.preventDefault();
|
|
var th = jQuery(this).parent();
|
|
var id = 'customizer-repeater-social-repeater-' + consultstreet_customizer_repeater_uniqid();
|
|
if (typeof th !== 'undefined') {
|
|
var field = th.find('.customizer-repeater-social-repeater-container:first').clone( true, true );
|
|
if (typeof field !== 'undefined') {
|
|
field.find( '.icp' ).val('');
|
|
field.find( '.input-group-addon' ).find('.fa').attr('class','fa');
|
|
field.find('.social-repeater-remove-social-item').show();
|
|
field.find('.customizer-repeater-social-repeater-link').val('');
|
|
field.find('.customizer-repeater-social-repeater-id').val(id);
|
|
th.find('.customizer-repeater-social-repeater-container:first').parent().append(field);
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
|
|
theme_conrols.on('click', '.social-repeater-remove-social-item', function (event) {
|
|
event.preventDefault();
|
|
var th = jQuery(this).parent();
|
|
var repeater = jQuery(this).parent().parent();
|
|
th.remove();
|
|
consultstreet_customizer_repeater_refresh_social_icons(repeater);
|
|
return false;
|
|
});
|
|
|
|
theme_conrols.on('keyup', '.customizer-repeater-social-repeater-link', function (event) {
|
|
event.preventDefault();
|
|
var repeater = jQuery(this).parent().parent();
|
|
consultstreet_customizer_repeater_refresh_social_icons(repeater);
|
|
return false;
|
|
});
|
|
|
|
theme_conrols.on('change', '.customizer-repeater-social-repeater-container .icp', function (event) {
|
|
event.preventDefault();
|
|
var repeater = jQuery(this).parent().parent().parent();
|
|
consultstreet_customizer_repeater_refresh_social_icons(repeater);
|
|
return false;
|
|
});
|
|
|
|
});
|
|
|
|
var entityMap = {
|
|
'&': '&',
|
|
'<': '<',
|
|
'>': '>',
|
|
'"': '"',
|
|
'\'': ''',
|
|
'/': '/'
|
|
};
|
|
|
|
function consultstreet_escapeHtml(string) {
|
|
'use strict';
|
|
//noinspection JSUnresolvedFunction
|
|
string = String(string).replace(new RegExp('\r?\n', 'g'), '<br />');
|
|
string = String(string).replace(/\\/g, '\');
|
|
return String(string).replace(/[&<>"'\/]/g, function (s) {
|
|
return entityMap[s];
|
|
});
|
|
|
|
} |