179 lines
5.9 KiB
JavaScript
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');
|
||
|
|
||
|
|
||
|
});
|
||
|
});
|
||
|
});
|