themotion-lemondropproductions/js/themotion_customizer.js

179 lines
5.9 KiB
JavaScript

/********************************************
*** General Repeater ***
*********************************************/
function themotion_uniqid(prefix, more_entropy) {
if (typeof prefix === 'undefined') {
prefix = '';
}
var retId;
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 Array(1 + (reqWidth - seed.length))
.join('0') + seed;
}
return seed;
};
// BEGIN REDUNDANT
if (!this.php_js) {
this.php_js = {};
}
// END REDUNDANT
if (!this.php_js.uniqidSeed) { // init seed with big random int
this.php_js.uniqidSeed = Math.floor(Math.random() * 0x75bcd15);
}
this.php_js.uniqidSeed++;
retId = prefix; // start with prefix, add current milliseconds hex string
retId += formatSeed(parseInt(new Date()
.getTime() / 1000, 10), 8);
retId += formatSeed(this.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;
}
function themotion_refresh_general_control_values(){
'use strict';
jQuery('.themotion_general_control_repeater').each(function(){
var values = [];
var th = jQuery(this);
th.find('.themotion_general_control_repeater_container').each(function(){
var link = jQuery(this).find('.themotion_link_control').val();
var text = jQuery(this).find('.themotion_text_control').val();
var id = jQuery(this).find('.themotion_box_id').val();
if( link !== '' && text !== '' ){
values.push({
'link' : link,
'text' : text,
'id' : id
});
}
});
th.find('.themotion_repeater_colector').val(JSON.stringify(values));
th.find('.themotion_repeater_colector').trigger('change');
});
}
jQuery(document).ready(function(){
'use strict';
/* Dropdown control */
jQuery('#customize-theme-controls').on('click','.themotion-customize-control-title',function(){
jQuery(this).next().slideToggle('medium', function() {
if (jQuery(this).is(':visible')){
jQuery(this).css('display','block');
}
});
});
jQuery('.themotion_general_control_new_field').on('click',function(){
var th = jQuery(this).parent();
var id = 'themotion_' + themotion_uniqid();
if(typeof th !== 'undefined') {
var field = th.find('.themotion_general_control_repeater_container:first').clone();
if(typeof field !== 'undefined'){
field.find('.themotion_general_control_remove_field').show();
field.find('.themotion_box_id').val(id);
field.find('.themotion_link_control').val('');
field.find('.themotion_text_control').val('');
th.find('.themotion_general_control_repeater_container:first').parent().append(field);
themotion_refresh_general_control_values();
}
}
return false;
});
jQuery('#customize-theme-controls').on('click', '.themotion_general_control_remove_field',function(){
if( typeof jQuery(this).parent() !== 'undefined'){
jQuery(this).parent().parent().remove();
themotion_refresh_general_control_values();
}
return false;
});
jQuery('#customize-theme-controls').on('keyup', '.themotion_text_control',function(){
themotion_refresh_general_control_values();
});
jQuery('#customize-theme-controls').on('keyup', '.themotion_link_control',function(){
themotion_refresh_general_control_values();
});
/*Drag and drop to change icons order*/
jQuery('.themotion_general_control_droppable').sortable({
update: function( ) {
themotion_refresh_general_control_values();
}
});
/********************************************
*** Palette Control ***
*********************************************/
jQuery(document).ready(function () {
var custom_controls = jQuery('#customize-control-themotion_custom_1, #customize-control-themotion_custom_2, #customize-control-themotion_custom_3, #customize-control-themotion_custom_4, #customize-control-themotion_custom_5');
var palette = JSON.parse( jQuery('.themotion_palette_colector').val() );
if( palette !== 'themotion_palette_custom'){
custom_controls.css('visibility','hidden');
custom_controls.css('position','absolute');
} else {
custom_controls.css('visibility','visible');
custom_controls.css('position','relative');
}
jQuery('.themotion_dropdown').on('click', function () {
jQuery('.themotion_palette_picker').slideToggle('medium');
});
jQuery('.themotion_palette_input').on('click', function () {
jQuery('.themotion_palette_picker').slideToggle('medium');
});
jQuery('.themotion_palette_picker').on('click', 'li', function () {
var th = jQuery(this);
var palette = jQuery(this).html();
var palette_name = jQuery(this).attr('class');
jQuery('.themotion_palette_input').html(palette);
if (!jQuery(this).hasClass('themotion_palette_custom')) {
custom_controls.css('visibility', 'hidden');
custom_controls.css('position', 'absolute');
} else {
custom_controls.css('visibility','visible');
custom_controls.css('position','relative');
}
th.parent().parent().find('.themotion_palette_colector').val(JSON.stringify(palette_name));
th.parent().parent().find('.themotion_palette_colector').trigger('change');
});
});
});