/************************************************************************************ * jquery.themepunch.essential.js - jQuery Plugin for esg Portfolio Slider * @version: 2.2.5 (12.07.2018) * @requires jQuery v1.7 or later * @author ThemePunch ************************************************************************************/ var GridEditorEssentials = new function(){ var t = this; var selected_layer = null; var init_layers = {}; var init_elements = {}; var layers = []; var all_attributes = {}; var essapi; var eg_codemirror_global_css = null; var save_needed = false; var arr_font_types = []; var arr_init_font_types = []; var arr_meta_keys = []; t.initDraggable = function() { jQuery( ".eg-draggable" ).draggable({ handle:".dragme"}); } /** * set init layers object (from db from skin item) */ t.setInitLayersJson = function(json_layers){ init_layers = jQuery.parseJSON(json_layers); for(var key in init_layers) { // 2.2.6 // line break detected if(typeof init_layers[key] === 'string') continue; if(typeof init_layers[key]['settings'] == 'undefined') init_layers[key]['settings'] = {}; // 2.2.6 var settings = init_layers[key]['settings']; if(!settings.hasOwnProperty('min-height')) init_layers[key]['settings']['min-height'] = 0; if(!settings.hasOwnProperty('max-height')) init_layers[key]['settings']['max-height'] = 'none'; if(!settings.hasOwnProperty('duration')) init_layers[key]['settings']['duration'] = 'default'; if(!settings.hasOwnProperty('letter-spacing')) init_layers[key]['settings']['letter-spacing'] = 'normal'; if(!settings.hasOwnProperty('letter-spacing-hover')) init_layers[key]['settings']['letter-spacing-hover'] = 'normal'; } } /** * set init elements object (from db from predefined elements) */ t.setInitElementsJson = function(json_elements){ init_elements = jQuery.parseJSON(json_elements); for(var key in init_elements){ //strip slashes from element settings if(typeof init_elements[key]['settings']['font-family'] !== 'undefined') init_elements[key]['settings']['font-family'] = AdminEssentials.stripslashes(init_elements[key]['settings']['font-family']); } } /** * set init font */ t.setInitFontsJson = function(fonts_elements){ arr_init_font_types = jQuery.parseJSON(fonts_elements); } /** * set init elements object (from db from predefined elements) */ t.refreshInitElements = function(obj_elements){ init_elements = obj_elements; for(var key in init_elements){ //strip slashes from element settings if(typeof init_elements[key]['settings']['font-family'] !== 'undefined') init_elements[key]['settings']['font-family'] = AdminEssentials.stripslashes(init_elements[key]['settings']['font-family']); } } /** * set init meta keys */ t.setInitMetaKeysJson = function(json_meta){ arr_meta_keys = jQuery.parseJSON(json_meta); // console.log(arr_meta_keys); } /** * set init style elements object */ t.setInitAllAttributesJson = function(json_elements){ all_attributes = jQuery.parseJSON(json_elements); } t.update_layers = function(){ //get all layers if(selected_layer == null) return(false); //check if it has an ID var layer_id = selected_layer.data('id'); if(layer_id != undefined) //update layer sorting t.update_layer_sorting(); else //create new layer t.add_layer(); t.redraw_container_height(); } /** * add new layer and set default options */ t.add_layer = function(){ var start = +new Date(); if(selected_layer == null) return(false); var next_id = t.get_latest_id() + 1; jQuery('input[name="eg-item-skin-element-last-id"]').val(next_id); selected_layer.data('id', next_id); selected_layer.attr('data-id', next_id); var new_layer = new Object; var default_handle_name = selected_layer.data('handle'); new_layer.id = next_id.toString(); new_layer.handle = selected_layer.data('handle'); new_layer.settings = jQuery.extend({},init_elements[selected_layer.data('handle')]['settings']); layers.push(new_layer); t.update_layer_sorting(); t.set_default_values(); t.select_layer(next_id.toString()); t.setting_has_changed(); //t.select_layer(next_id.toString()); //select again for right source and other settings t.propagate_element_selector(); //change the handle after setting the informations to a new handle layers[layers.length-1].handle = eg_lang.new_element_sanitize+'-'+next_id; selected_layer.data('handle', eg_lang.new_element_sanitize+'-'+next_id); selected_layer.attr('data-handle',selected_layer.data('handle')); selected_layer.data('orighandle', default_handle_name); selected_layer.attr('orighandle', default_handle_name); } /** * update layer sorting by editor sorting */ t.update_layer_sorting = function(){ var stl = jQuery('#skin-dz-tl').sortable('toArray', {attribute: 'data-id'}); var sbr = jQuery('#skin-dz-br').sortable('toArray', {attribute: 'data-id'}); var sc = jQuery('#skin-dz-c').sortable('toArray', {attribute: 'data-id'}); var sm = jQuery('#skin-dz-m').sortable('toArray', {attribute: 'data-id'}); t.update_sorting(stl, 'tl'); t.update_sorting(sbr, 'br'); t.update_sorting(sc, 'c'); t.update_sorting(sm, 'm'); } /** * update order and container of elements */ t.update_sorting = function(sort_array, cnt){ var sort = 0; for(var i in sort_array){ for(var key in layers){ if(sort_array[i] == layers[key].id){ layers[key].order = sort; layers[key].container = cnt; sort++; break; } } } } /** * set default values of item */ t.set_default_values = function(id){ for(var handle in all_attributes){ switch(all_attributes[handle]['type']){ case 'colorpicker': /* 2.1.6 */ if(typeof RevColor === 'undefined') { jQuery('#element-'+handle).closest('.wp-picker-container').find('a').first().css('background-color', all_attributes[handle]['values']['default']); jQuery('input[name="element-'+handle+'"]').val(all_attributes[handle]['values']['default']); } else { jQuery('input[name="element-'+handle+'"]').val(all_attributes[handle]['values']['default']).tpColorPicker(); } break; case 'select': jQuery('select[name="element-'+handle+'"] option[value="'+all_attributes[handle]['values']['default']+'"]').attr("selected","selected"); //special cases if(handle == 'source'){ jQuery('select[name="element-source-post"] option[value="title"]').attr("selected","selected"); jQuery('select[name="element-source-event"] option[value="event_start_date"]').attr("selected","selected"); jQuery('select[name="element-source-woocommerce"] option[value="wc_regular_price_from"]').attr("selected","selected"); jQuery('input[name="element-source-icon"]').val(''); jQuery('#eg-preview-icon').html(''); jQuery('input[name="element-source-text-style-disable"]').attr('checked', false); jQuery('textarea[name="element-source-text"]').val(''); jQuery('input[name="element-source-meta"]').val(''); jQuery('select[name="element-source-taxonomy"] option[value="post_tag"]').attr("selected","selected"); jQuery('select[name="element-source-event"]').hide().siblings('.select_fake').hide(); jQuery('select[name="element-source-woocommerce"]').hide().siblings('.select_fake').hide(); jQuery('#eg-source-icon-wrap').hide(); jQuery('#eg-source-text-style-disable-wrap').hide(); jQuery('#eg-source-text-wrap').hide(); jQuery('#eg-source-limit-wrap').hide(); jQuery('.esg-cat-tag-settings').hide(); jQuery('#eg-source-functonality-wrap').hide().find('.select_fake').hide(); jQuery('#eg-source-meta-wrap').hide(); }else if(handle == 'link-type'){ jQuery('input[name="element-url-link"]').val(''); jQuery('input[name="element-javascript-link"]').val(''); jQuery('#eg-element-post-url-wrap').hide(); jQuery('#eg-element-post-meta-wrap').hide(); jQuery('#eg-element-post-javascript-wrap').hide(); }else if(handle == 'background-size'){ jQuery('input[name="element-background-size-x"]').val('100'); jQuery('input[name="element-background-size-y"]').val('100'); jQuery('#background-size-percent-wrap').css('display', 'none'); }else if(handle == 'align'){ jQuery('select[name="element-absolute-unit"] option[value="px"]').attr("selected","selected"); jQuery('#eg-t_b_align').text(eg_lang.top); jQuery('#eg-l_r_align').text(eg_lang.left); } break; case 'checkbox': jQuery('input[name="element-'+handle+'"]').attr('checked', all_attributes[handle]['values']['default']); break; case 'multi-text': jQuery('input[name="element-'+handle+'[]"]').each(function(){ jQuery(this).val(all_attributes[handle]['values']['default']); }); break; default: jQuery('input[name="element-'+handle+'"]').val(all_attributes[handle]['values']['default']); break; } //check the unit of elements if(jQuery('select[name="element-'+handle+'-unit"]').length > 0){ jQuery('select[name="element-'+handle+'-unit"] option[value="px"]').attr("selected","selected"); } } //Load values of item element if selected if(id !== undefined){ if(typeof layers[id] === 'object' && layers[id]['handle'] !== 'undefined'){ var ie_settings = layers[id]['settings'];//init_elements[layers[id]['handle']]['settings']; for(var handle in all_attributes){ if(typeof ie_settings[handle] === 'undefined') continue; switch(all_attributes[handle]['type']){ case 'colorpicker': if(handle == 'bg-alpha') continue; /* 2.1.6 */ if(typeof RevColor === 'undefined') { jQuery('#element-'+handle).closest('.wp-picker-container').find('a').first().css('background-color', ie_settings[handle]); jQuery('input[name="element-'+handle+'"]').val(ie_settings[handle]); } else { jQuery('input[name="element-'+handle+'"]').val(ie_settings[handle]).tpColorPicker(); } break; case 'select': jQuery('select[name="element-'+handle+'"] option[value="'+ie_settings[handle]+'"]').attr("selected","selected"); //special case if(handle == 'source'){ var cur_type = ''; if(ie_settings[handle] == 'post'){ if(typeof ie_settings['source-post'] !== 'undefined'){ jQuery('select[name="element-source-post"] option[value="'+ie_settings['source-post']+'"]').attr("selected","selected"); if(ie_settings['source-post'] == 'cat_list' || ie_settings['source-post'] == 'tag_list' || ie_settings['source-post'] == 'taxonomy'){ jQuery('.esg-cat-tag-settings').show(); jQuery('#eg-source-limit-wrap').hide(); jQuery('#eg-source-functonality-wrap').show().find('.select_fake').show(); } if(ie_settings['source-post'] == 'meta'){ jQuery('#eg-source-meta-wrap').show(); if(typeof ie_settings['source-meta'] !== 'undefined') jQuery('input[name="element-source-meta"]').val(ie_settings['source-meta']); } } }else if(ie_settings[handle] == 'event'){ if(typeof ie_settings['source-event'] !== 'undefined') jQuery('select[name="element-source-event"] option[value="'+ie_settings['source-event']+'"]').attr("selected","selected"); }else if(ie_settings[handle] == 'woocommerce'){ if(typeof ie_settings['source-woocommerce'] !== 'undefined'){ jQuery('select[name="element-source-woocommerce"] option[value="'+ie_settings['source-woocommerce']+'"]').attr("selected","selected"); if(ie_settings['source-woocommerce'] == 'wc_categories'){ jQuery('.esg-cat-tag-settings').show(); jQuery('#eg-source-limit-wrap').show(); jQuery('#eg-source-functonality-wrap').show().find('.select_fake').show(); } } }else if(ie_settings[handle] == 'icon'){ if(typeof ie_settings['source-icon'] !== 'undefined'){ jQuery('input[name="element-source-icon"]').val(ie_settings['source-icon']); jQuery('#eg-preview-icon').html(''); } }else if(ie_settings[handle] == 'text'){ if(typeof ie_settings['source-text'] !== 'undefined') jQuery('textarea[name="element-source-text"]').val(ie_settings['source-text']); } }else if(handle == 'link-type'){ if(typeof ie_settings['link-type-url'] !== 'undefined') jQuery('input[name="element-url-link"]').val(ie_settings['link-type-url']); if(typeof ie_settings['link-type-meta'] !== 'undefined') jQuery('input[name="element-meta-link"]').val(ie_settings['link-type-meta']); if(typeof ie_settings['link-type-javascript'] !== 'undefined') jQuery('input[name="element-javascript-link"]').val(ie_settings['link-type-javascript']); if(typeof ie_settings['link-type-sharefacebook'] !== 'undefined') { jQuery('select[name="element-facebook-sharing-link"]').val(ie_settings['link-type-sharefacebook']); jQuery('input[name="element-facebook-link-url"]').val(ie_settings['element-facebook-link-url']); //if(ie_settings['link-type-sharefacebook']=="custom") jQuery(".eg-element-facebook_link_custom").show(); //else jQuery(".eg-element-facebook_link_custom").hide(); } if(typeof ie_settings['link-type-sharegplus'] !== 'undefined') { jQuery('select[name="element-gplus-sharing-link"]').val(ie_settings['link-type-sharegplus']); jQuery('input[name="element-gplus-link-url"]').val(ie_settings['element-gplus-link-url']); } if(typeof ie_settings['link-type-sharepinterest'] !== 'undefined') { jQuery('select[name="element-pinterest-sharing-link"]').val(ie_settings['link-type-sharepinterest']); jQuery('input[name="element-pinterest-link-url"]').val(ie_settings['element-pinterest-link-url']); jQuery('textarea[name="element-pinterest-description"]').val(ie_settings['link-type-sharepinterest-description']); } if(typeof ie_settings['link-type-sharetwitter'] !== 'undefined') { jQuery('select[name="element-twitter-sharing-link"]').val(ie_settings['link-type-sharetwitter']); jQuery('input[name="element-twitter-link-url"]').val(ie_settings['element-twitter-link-url']); jQuery('input[name="element-twitter-text-before"]').val(ie_settings['link-type-sharetwitter-text-before']); jQuery('input[name="element-twitter-text-after"]').val(ie_settings['link-type-sharetwitter-text-after']); } }else if(handle == 'text-align' || handle == 'float'){ //set to default depending on display setting if(jQuery('input[name="element-display"]').val() == 'block'){ if(handle == 'float') jQuery('select[name="element-'+handle+'"] option[value="none"]').attr("selected","selected"); }else{ if(handle == 'text-align') jQuery('select[name="element-'+handle+'"] option[value="center"]').attr("selected","selected"); } }else if(handle == 'background-size'){ if(typeof ie_settings['background-size-x'] !== 'undefined') jQuery('input[name="element-background-size-x"]').val(ie_settings['background-size-x']); if(typeof ie_settings['background-size-y'] !== 'undefined') jQuery('input[name="element-background-size-y"]').val(ie_settings['background-size-y']); if(ie_settings['background-size'] == '%'){ jQuery('#background-size-percent-wrap').css('display', 'inline-block'); } }else if(handle == 'align'){ if(typeof ie_settings['absolute-unit'] !== 'undefined') jQuery('select[name="element-absolute-unit"] option[value="'+ie_settings['absolute-unit']+'"]').attr("selected","selected"); if(typeof ie_settings['align'] !== 'undefined'){ switch(ie_settings['align']){ case 't_l': jQuery('#eg-t_b_align').text(eg_lang.top); jQuery('#eg-l_r_align').text(eg_lang.left); break; case 't_r': jQuery('#eg-t_b_align').text(eg_lang.top); jQuery('#eg-l_r_align').text(eg_lang.right); break; case 'b_l': jQuery('#eg-t_b_align').text(eg_lang.bottom); jQuery('#eg-l_r_align').text(eg_lang.left); break; case 'b_r': jQuery('#eg-t_b_align').text(eg_lang.bottom); jQuery('#eg-l_r_align').text(eg_lang.right); break; } } } break; case 'checkbox': if(ie_settings[handle] == jQuery('input[name="element-'+handle+'"]').val()){ jQuery('input[name="element-'+handle+'"]').attr('checked', true); }else{ jQuery('input[name="element-'+handle+'"]').attr('checked', false); } break; case 'multi-text': var at_key = 0; jQuery('input[name="element-'+handle+'[]"]').each(function(){ jQuery(this).val(ie_settings[handle][at_key]); at_key++; }); break; default: jQuery('input[name="element-'+handle+'"]').val(ie_settings[handle]); break; } //check the unit of elements if(jQuery('select[name="element-'+handle+'-unit"]').length > 0){ jQuery('select[name="element-'+handle+'-unit"] option[value="'+ie_settings[handle+'-unit']+'"]').attr("selected","selected"); } } } } // Social Sharing jQuery('select[name="element-facebook-sharing-link"]').change(function(){ if(jQuery('select[name="element-facebook-sharing-link"]').val()=="custom") jQuery(".eg-element-facebook_link_custom").show(); else jQuery(".eg-element-facebook_link_custom").hide(); }); jQuery('select[name="element-gplus-sharing-link"]').change(function(){ if(jQuery('select[name="element-gplus-sharing-link"]').val()=="custom") jQuery(".eg-element-gplus_link_custom").show(); else jQuery(".eg-element-gplus_link_custom").hide(); }); jQuery('select[name="element-pinterest-sharing-link"]').change(function(){ if(jQuery('select[name="element-pinterest-sharing-link"]').val()=="custom") jQuery(".eg-element-pinterest_link_custom").show(); else jQuery(".eg-element-pinterest_link_custom").hide(); }); jQuery('select[name="element-twitter-sharing-link"]').change(function(){ if(jQuery('select[name="element-twitter-sharing-link"]').val()=="custom") jQuery(".eg-element-twitter_link_custom").show(); else jQuery(".eg-element-twitter_link_custom").hide(); }); } /** * reset & show/hide elements based on positon:absolute or position:relative */ t.reset_style_by_position = function(){ var pos = jQuery('select[name="element-position"] option:selected').val(); if(pos == 'absolute'){ jQuery('#eg-show-on-absolute').css('display', 'block'); jQuery('#eg-show-on-relative').css('display', 'none'); if(!selected_layer.hasClass('ui-draggable')){ jQuery(selected_layer).appendTo('#skin-dz-wrapper'); t.set_absolute_positioning(); } }else{ var layer_id = selected_layer.data('id'); for(var key in layers){ if(layers[key].id == layer_id){ //if(jQuery('#skin-dz-'+layers[key].container).length){} if(selected_layer.hasClass('ui-draggable')){ selected_layer.appendTo('#skin-dz-'+layers[key].container); selected_layer.removeClass('ui-draggable'); selected_layer.css('top', 'auto'); selected_layer.css('right', 'auto'); selected_layer.css('bottom', 'auto'); selected_layer.css('left', 'auto'); selected_layer.draggable('destroy'); //resort items t.update_layer_sorting(); } break; } } jQuery('#eg-show-on-absolute').css('display', 'none'); jQuery('#eg-show-on-relative').css('display', 'block'); } } /** * get setting values from input fields */ t.get_setting_values = function(){ if(selected_layer == null) return(false); var has_changed = false; var layer_id = selected_layer.data('id'); t.reset_style_by_position(); for(var key in layers){ if(layers[key].id == layer_id){ for(var handle in all_attributes){ var temp_val = layers[key]['settings'][handle]; if(all_attributes[handle]['type'] == 'checkbox'){ layers[key]['settings'][handle] = (jQuery('input[name="element-'+handle+'"]').is(':checked')) ? jQuery('input[name="element-'+handle+'"]').val() : ''; }else if(all_attributes[handle]['type'] == 'select'){ layers[key]['settings'][handle] = jQuery('select[name="element-'+handle+'"] option:selected').val(); //special case if(handle == 'source'){ delete(layers[key]['settings']['source-event']); delete(layers[key]['settings']['source-woocommerce']); delete(layers[key]['settings']['source-icon']); delete(layers[key]['settings']['source-text']); delete(layers[key]['settings']['source-post']); delete(layers[key]['settings']['source-meta']); switch(layers[key]['settings'][handle]){ case 'event': layers[key]['settings']['source-event'] = jQuery('select[name="element-source-event"] option:selected').val(); break; case 'woocommerce': layers[key]['settings']['source-woocommerce'] = jQuery('select[name="element-source-woocommerce"] option:selected').val(); break; case 'icon': layers[key]['settings']['source-icon'] = jQuery('input[name="element-source-icon"]').val(); break; case 'text': layers[key]['settings']['source-text'] = jQuery('textarea[name="element-source-text"]').val(); break; case 'post': default: layers[key]['settings']['source-taxonomy'] = jQuery('select[name="element-source-taxonomy"] option:selected').val(); layers[key]['settings']['source-post'] = jQuery('select[name="element-source-post"] option:selected').val(); if(layers[key]['settings']['source-post'] == 'meta') layers[key]['settings']['source-meta'] = jQuery('input[name="element-source-meta"]').val(); } }else if(handle == 'link-type'){ delete(layers[key]['settings']['link-type-url']); delete(layers[key]['settings']['link-type-meta']); delete(layers[key]['settings']['link-type-javascript']); delete(layers[key]['settings']['link-type-sharefacebook']); delete(layers[key]['settings']['link-type-sharegplus']); delete(layers[key]['settings']['link-type-sharepinterest']); delete(layers[key]['settings']['link-type-sharetwitter']); switch(layers[key]['settings'][handle]){ case 'post'://do nothing case 'lightbox'://do nothing case 'embedded_media'://do nothing break; case 'url': layers[key]['settings']['link-type-url'] = jQuery('input[name="element-url-link"]').val(); break; case 'meta': layers[key]['settings']['link-type-meta'] = jQuery('input[name="element-meta-link"]').val(); break; case 'javascript': layers[key]['settings']['link-type-javascript'] = jQuery('input[name="element-javascript-link"]').val(); break; case 'sharefacebook': layers[key]['settings']['link-type-sharefacebook'] = jQuery('select[name="element-facebook-sharing-link"]').val(); layers[key]['settings']['link-type-sharefacebook-custom-url'] = jQuery('input[name="element-facebook-link-url"]').val(); break; case 'sharegplus': layers[key]['settings']['link-type-sharegplus'] = jQuery('select[name="element-gplus-sharing-link"]').val(); layers[key]['settings']['link-type-sharegplus-custom-url'] = jQuery('input[name="element-gplus-link-url"]').val(); break; case 'sharepinterest': layers[key]['settings']['link-type-sharepinterest'] = jQuery('select[name="element-pinterest-sharing-link"]').val(); layers[key]['settings']['link-type-sharepinterest-custom-url'] = jQuery('input[name="element-pinterest-link-url"]').val(); layers[key]['settings']['link-type-sharepinterest-description'] = jQuery('textarea[name="element-pinterest-description"]').val(); break; case 'sharetwitter': layers[key]['settings']['link-type-sharetwitter'] = jQuery('select[name="element-twitter-sharing-link"]').val(); layers[key]['settings']['link-type-sharetwitter-custom-url'] = jQuery('input[name="element-twitter-link-url"]').val(); layers[key]['settings']['link-type-sharetwitter-text-before'] = jQuery('input[name="element-twitter-text-before"]').val(); layers[key]['settings']['link-type-sharetwitter-text-after'] = jQuery('input[name="element-twitter-text-after"]').val(); break; } }else if(handle == 'background-size'){ delete(layers[key]['settings']['background-size-x']); delete(layers[key]['settings']['background-size-y']); if(layers[key]['settings'][handle] == '%'){ layers[key]['settings']['background-size-x'] = jQuery('input[name="element-background-size-x"]').val(); layers[key]['settings']['background-size-y'] = jQuery('input[name="element-background-size-y"]').val(); } }else if(handle == 'align'){ layers[key]['settings']['absolute-unit'] = jQuery('select[name="element-absolute-unit"] option:selected').val(); } }else if(all_attributes[handle]['type'] == 'multi-text'){ var multi_val = {}; var multi_key = 0; jQuery('input[name="element-'+handle+'[]"]').each(function(){ multi_val[multi_key] = jQuery(this).val(); multi_key++; }); layers[key]['settings'][handle] = multi_val; }else{ layers[key]['settings'][handle] = jQuery('input[name="element-'+handle+'"]').val(); } //check the unit of elements if(jQuery('select[name="element-'+handle+'-unit"]').length > 0){ layers[key]['settings'][handle+'-unit'] = jQuery('select[name="element-'+handle+'-unit"] option:selected').val(); } if(temp_val !== layers[key]['settings'][handle] && temp_val !== undefined){ if(all_attributes[handle]['type'] == 'multi-text'){ var mstring = ''; var mtstring = ''; var mfirst = true; var mtfirst = true; for(var mkey in layers[key]['settings'][handle]){ if(!mfirst) mstring+=','; mstring+=layers[key]['settings'][handle][mkey]; mfirst = false; } for(var mkey in temp_val){ if(!mtfirst) mtstring+=','; mtstring+=temp_val[mkey]; mtfirst = false; } if(mtstring != mstring){ save_needed = true; } }else{ save_needed = true; } } /* 2.1.6 */ if(handle == 'transition'){ // t.set_transition_type_visibility(layers[key]['settings'][handle]); t.check_no_transition(layers[key]['settings'][handle]); } } break; } } } /** * set setting values from input fields */ t.set_setting_values = function(){ if(selected_layer == null) return(false); var layer_id = selected_layer.data('id'); for(var key in layers){ if(layers[key].id == layer_id){ for(var handle in all_attributes){ if(typeof(layers[key]['settings']) == 'undefined') continue; if(typeof(layers[key]['settings'][handle]) == 'undefined') continue; if(all_attributes[handle]['type'] == 'checkbox'){ if(layers[key]['settings'][handle] == jQuery('input[name="element-'+handle+'"]').val() || layers[key]['settings'][handle] == 'true' && jQuery('input[name="element-'+handle+'"]').val() == 'on'){ jQuery('input[name="element-'+handle+'"]').attr('checked', true); }else{ jQuery('input[name="element-'+handle+'"]').attr('checked', false); } }else if(all_attributes[handle]['type'] == 'colorpicker'){ /* 2.1.6 */ if(typeof RevColor === 'undefined') { jQuery('input[name="element-'+handle+'"]').val(layers[key]['settings'][handle]); jQuery('#element-'+handle).closest('.wp-picker-container').find('a').first().css('background-color', jQuery('input[name="element-'+handle+'"]').val()); } else { jQuery('input[name="element-'+handle+'"]').val(layers[key]['settings'][handle]).tpColorPicker(); } }else if(all_attributes[handle]['type'] == 'slider' || all_attributes[handle]['type'] == 'text-slider'){ jQuery('input[name="element-'+handle+'"]').val(layers[key]['settings'][handle]); jQuery('#element-'+handle).slider({value:jQuery('input[name="element-'+handle+'"]').val()}); jQuery("body").trigger("esgslide",jQuery('#element-'+handle)); }else if(all_attributes[handle]['type'] == 'select'){ jQuery('select[name="element-'+handle+'"] option[value="'+layers[key]['settings'][handle]+'"]').attr("selected","selected"); //special case if(handle == 'source'){ jQuery('.elements-select-wrap').hide(); switch(layers[key]['settings'][handle]){ case 'event': jQuery('#eg-source-limit-wrap').show(); jQuery('select[name="element-source-event"]').show().siblings('.select_fake').show(); jQuery('select[name="element-source-event"] option[value="'+layers[key]['settings']['source-event']+'"]').attr("selected","selected"); break; case 'woocommerce': jQuery('#eg-source-limit-wrap').show(); jQuery('select[name="element-source-woocommerce"]').show().siblings('.select_fake').show(); jQuery('select[name="element-source-woocommerce"] option[value="'+layers[key]['settings']['source-woocommerce']+'"]').attr("selected","selected"); break; case 'icon': jQuery('#eg-source-icon-wrap').show(); jQuery('input[name="element-source-icon"]').val(layers[key]['settings']['source-icon']); jQuery('#eg-preview-icon').html(''); break; case 'text': if(typeof layers[key]['settings']['special'] !== undefined && layers[key]['settings']['special'] == 'true' && typeof layers[key]['settings']['special-type'] !== undefined && layers[key]['settings']['special-type'] == 'blank-element'){ jQuery('#eg-source-text-style-disable-wrap').hide(); }else{ jQuery('#eg-source-text-style-disable-wrap').show(); } jQuery('#eg-source-text-wrap').show(); jQuery('textarea[name="element-source-text"]').val(layers[key]['settings']['source-text']); break; case 'post': default: jQuery('#eg-source-limit-wrap').show(); jQuery('select[name="element-source-post"]').show().siblings('.select_fake').show(); if('source-taxonomy' in layers[key]['settings']) jQuery('select[name="element-source-taxonomy"] option[value="'+layers[key]['settings']['source-taxonomy']+'"]').attr("selected","selected"); jQuery('select[name="element-source-post"] option[value="'+layers[key]['settings']['source-post']+'"]').attr("selected","selected"); if(layers[key]['settings']['source-post'] == 'meta') jQuery('input[name="element-source-meta"]').val(layers[key]['settings']['source-meta']); } }else if(handle == 'link-type'){ jQuery('#eg-element-post-url-wrap').hide(); jQuery('#eg-element-post-meta-wrap').hide(); jQuery('#eg-element-post-javascript-wrap').hide(); jQuery('#eg-element-link-details-wrap').show(); jQuery('#eg-element-facebook-wrap').hide(); jQuery('#eg-element-gplus-wrap').hide(); jQuery('#eg-element-pinterest-wrap').hide(); jQuery('#eg-element-twitter-wrap').hide(); switch(layers[key]['settings'][handle]){ case 'post': case 'lightbox': case 'embedded_media': break; case 'url': jQuery('#eg-element-post-url-wrap').show(); jQuery('input[name="element-url-link"]').val(layers[key]['settings']['link-type-url']); break; case 'meta': jQuery('#eg-element-post-meta-wrap').show(); jQuery('input[name="element-meta-link"]').val(layers[key]['settings']['link-type-meta']); break; case 'javascript': jQuery('#eg-element-post-javascript-wrap').show(); jQuery('input[name="element-javascript-link"]').val(layers[key]['settings']['link-type-javascript']); break; case 'sharefacebook': jQuery('#eg-element-link-details-wrap').hide(); jQuery('#eg-element-facebook-wrap').show(); jQuery('select[name="element-facebook-sharing-link"]').val(layers[key]['settings']['link-type-sharefacebook']); jQuery('input[name="element-facebook-link-url"]').val(layers[key]['settings']['link-type-sharefacebook-custom-url']); if(jQuery('select[name="element-facebook-sharing-link"]').val()=="custom") jQuery(".eg-element-facebook_link_custom").show(); else jQuery(".eg-element-facebook_link_custom").hide(); break; case 'sharegplus': jQuery('#eg-element-link-details-wrap').hide(); jQuery('#eg-element-gplus-wrap').show(); jQuery('select[name="element-gplus-sharing-link"]').val(layers[key]['settings']['link-type-sharegplus']); jQuery('input[name="element-gplus-link-url"]').val(layers[key]['settings']['link-type-sharegplus-custom-url']); if(jQuery('select[name="element-gplus-sharing-link"]').val()=="custom") jQuery(".eg-element-gplus_link_custom").show(); else jQuery(".eg-element-gplus_link_custom").hide(); break; case 'sharepinterest': jQuery('#eg-element-link-details-wrap').hide(); jQuery('#eg-element-pinterest-wrap').show(); jQuery('select[name="element-pinterest-sharing-link"]').val(layers[key]['settings']['link-type-sharepinterest']); jQuery('input[name="element-pinterest-link-url"]').val(layers[key]['settings']['link-type-sharepinterest-custom-url']); jQuery('textarea[name="element-pinterest-description"]').val(layers[key]['settings']['link-type-sharepinterest-description']); if(jQuery('select[name="element-pinterest-sharing-link"]').val()=="custom") jQuery(".eg-element-pinterest_link_custom").show(); else jQuery(".eg-element-pinterest_link_custom").hide(); break; case 'sharetwitter': jQuery('#eg-element-link-details-wrap').hide(); jQuery('#eg-element-twitter-wrap').show(); jQuery('select[name="element-twitter-sharing-link"]').val(layers[key]['settings']['link-type-sharetwitter']); jQuery('input[name="element-twitter-link-url"]').val(layers[key]['settings']['link-type-sharetwitter-custom-url']); jQuery('input[name="element-twitter-text-before"]').val(layers[key]['settings']['link-type-sharetwitter-text-before']); jQuery('input[name="element-twitter-text-after"]').val(layers[key]['settings']['link-type-sharetwitter-text-after']); if(jQuery('select[name="element-twitter-sharing-link"]').val()=="custom") jQuery(".eg-element-twitter_link_custom").show(); else jQuery(".eg-element-twitter_link_custom").hide(); break; } }else if(handle == 'display'){ jQuery('#element-text-align-wrap').hide(); jQuery('#element-float-wrap').hide(); switch(layers[key]['settings'][handle]){ case 'block': jQuery('#element-text-align-wrap').show(); break; case 'inline-block': jQuery('#element-float-wrap').show(); break; } }else if(handle == 'background-size'){ if(layers[key][handle] == '%'){ jQuery('#background-size-percent-wrap').css('display', 'inline-block'); jQuery('input[name="element-background-size-x"]').val(layers[key]['settings']['background-size-x']); jQuery('input[name="element-background-size-y"]').val(layers[key]['settings']['background-size-y']); } }else if(handle == 'align'){ jQuery('select[name="element-absolute-unit"] option[value="'+layers[key]['settings']['absolute-unit']+'"]').attr('selected', 'selected'); } }else if(all_attributes[handle]['type'] == 'multi-text'){ var multi_key = 0; jQuery('input[name="element-'+handle+'[]"]').each(function(){ jQuery(this).val(layers[key]['settings'][handle][multi_key]); multi_key++; }); }else{ jQuery('input[name="element-'+handle+'"]').val(layers[key]['settings'][handle]); } //check the unit of elements if(jQuery('select[name="element-'+handle+'-unit"]').length > 0){ jQuery('select[name="element-'+handle+'-unit"] option[value="'+layers[key]['settings'][handle+'-unit']+'"]').attr("selected","selected"); } } break; } } } /** * set setting styles from object */ t.set_setting_styles = function(){ if(selected_layer == null) return(false); var layer_id = selected_layer.data('id'); for(var key in layers){ if(layers[key].id == layer_id){ //t.set_element_styles(selected_layer, layers[key]['settings']); t.set_inline_styles(selected_layer, layers[key]['settings']); found = true; break; } } } /** * Set css inline styles element */ t.set_inline_styles = function(on_layer, settings, demo_element){ var isw = jQuery('#eg-inline-style-wrapper'); if(on_layer.data('handle') == 'eg-line-break' || on_layer.data('handle') == 'eg-blank-element') return true; var idle = []; var hover = []; //check if we have selected to not set any styles here if(settings['source'] == 'text' && typeof(settings['source-text-style-disable']) !== 'undefined' && settings['source-text-style-disable'] == 'on'){ //do not write anything }else{ var do_important = ''; var do_hover = false; if(settings['force-important'] == 'true') do_important = ' !important'; if(settings['enable-hover'] == 'on') do_hover = true; for(var handle in all_attributes){ if(demo_element !== undefined){ if(handle == 'margin') continue; if(handle == 'position') continue; } var style_type = all_attributes[handle]['style']; if(style_type == 'hover'){ //look for spacings, use same as idle switch(handle){ case 'display': case 'text-align': case 'float': case 'clear': case 'margin': case 'padding': break; default: if(all_attributes[handle]['style'] != style_type) continue; } } if(all_attributes[handle]['style'] != 'idle' && all_attributes[handle]['style'] != 'hover') continue; //only styles idle and hover if(!do_hover && all_attributes[handle]['style'] == 'hover') continue; if(typeof(settings[handle]) !== 'undefined'){ var set_handle = (style_type == 'idle') ? handle : handle.replace('-hover', ''); if(all_attributes[handle]['type'] == 'multi-text'){ if(typeof settings[handle+'-unit'] == 'undefined') settings[handle+'-unit'] = 'px'; var set_unit = settings[handle+'-unit']; if(set_handle == 'border-radius'){ //check if this works if(style_type == 'idle'){ idle.push('border-top-left-radius: '+settings[handle][0]+set_unit+do_important+';'); idle.push('border-top-right-radius: '+settings[handle][1]+set_unit+do_important+';'); idle.push('border-bottom-right-radius: '+settings[handle][2]+set_unit+do_important+';'); idle.push('border-bottom-left-radius: '+settings[handle][3]+set_unit+do_important+';'); }else{ hover.push('border-top-left-radius: '+settings[handle][0]+set_unit+do_important+';'); hover.push('border-top-right-radius: '+settings[handle][1]+set_unit+do_important+';'); hover.push('border-bottom-right-radius: '+settings[handle][2]+set_unit+do_important+';'); hover.push('border-bottom-left-radius: '+settings[handle][3]+set_unit+do_important+';'); } }else if(set_handle == 'border'){ //check if this works if(style_type == 'idle'){ idle.push('border-top: '+settings[handle][0]+set_unit+do_important+';'); idle.push('border-right: '+settings[handle][1]+set_unit+do_important+';'); idle.push('border-bottom: '+settings[handle][2]+set_unit+do_important+';'); idle.push('border-left: '+settings[handle][3]+set_unit+do_important+';'); }else{ hover.push('border-top: '+settings[handle][0]+set_unit+do_important+';'); hover.push('border-right: '+settings[handle][1]+set_unit+do_important+';'); hover.push('border-bottom: '+settings[handle][2]+set_unit+do_important+';'); hover.push('border-left: '+settings[handle][3]+set_unit+do_important+';'); } }else if(set_handle == 'box-shadow' || set_handle == 'background-color'){ var multi_string = ''; for(var mkey in settings[handle]){ multi_string += settings[handle][mkey]+set_unit+' '; } //get box shadow color var shadow_color = (style_type == 'idle') ? settings['shadow-color'] : settings['shadow-color-hover']; /* 2.1.6 */ /* //get box shadow transaprency var shadow_transparency = (style_type == 'idle') ? settings['shadow-alpha'] : settings['shadow-alpha-hover']; shadow_color = AdminEssentials.hex_to_rgba(shadow_color, shadow_transparency, true); */ multi_string += ' '+shadow_color; if(style_type == 'idle'){ idle.push('-moz-'+set_handle+': '+multi_string+do_important+';'); idle.push('-webkit-'+set_handle+': '+multi_string+do_important+';'); idle.push(set_handle+': '+multi_string+do_important+';'); }else{ hover.push('-moz-'+set_handle+': '+multi_string+do_important+';'); hover.push('-webkit-'+set_handle+': '+multi_string+do_important+';'); hover.push(set_handle+': '+multi_string+do_important+';'); } }else{ var multi_string = ''; for(var mkey in settings[handle]){ multi_string += settings[handle][mkey]+set_unit+' '; } if(style_type == 'idle'){ idle.push(set_handle+': '+multi_string+do_important+';'); }else{ hover.push(set_handle+': '+multi_string+do_important+';'); } } }else{ if(set_handle == 'background-color'){ /* 2.1.6 */ /* //get bg color transaprency var bg_color_transparency = (style_type == 'idle') ? settings['bg-alpha'] : settings['bg-alpha-hover']; var bg_color_rgba = AdminEssentials.hex_to_rgba(settings[handle], bg_color_transparency, true); // we only need rgba in backend */ var bg_color_rgba = settings[handle]; if(typeof RevColor !== 'undefined') bg_color_rgba = RevColor.get(bg_color_rgba); if(style_type == 'idle'){ idle.push('background: '+bg_color_rgba+do_important+';'); }else{ hover.push('background: '+bg_color_rgba+do_important+';'); } }else{ if(set_handle == 'border'){ if(style_type == 'idle'){ idle.push('border-style: solid'+do_important+';'); }else{ hover.push('border-style: solid'+do_important+';'); } } if(set_handle == 'font-style' && settings[handle] == 'true') settings[handle] = 'italic'+do_important+';'; var set_unit = all_attributes[handle]['unit']; if(set_unit == undefined) set_unit = ''; if(settings[handle] == '') continue; if(style_type == 'idle'){ if(set_handle == 'display') //force important on display setting idle.push(set_handle+': '+settings[handle]+set_unit+' !important;'); else idle.push(set_handle+': '+settings[handle]+set_unit+do_important+';'); if(set_handle == 'position' && settings[handle] == 'absolute'){ idle.push('height: auto'+do_important+';'); idle.push('width: auto'+do_important+';'); idle.push('white-space: nowrap'+do_important+';'); var lr = settings['left-right'] == "NaN" ? 0 : settings['left-right']; var tb = settings['top-bottom'] == "NaN" ? 0 : settings['top-bottom']; switch(settings['align']){ case 't_l': idle.push('top: '+tb+settings['absolute-unit']+';'); idle.push('left: '+lr+settings['absolute-unit']+';'); idle.push('bottom:auto;'); idle.push('right:auto;'); break; case 't_r': idle.push('top: '+tb+settings['absolute-unit']+';'); idle.push('right: '+lr+settings['absolute-unit']+';'); idle.push('bottom:auto;'); idle.push('left:auto;'); break; case 'b_l': idle.push('bottom: '+tb+settings['absolute-unit']+';'); idle.push('left: '+lr+settings['absolute-unit']+';'); idle.push('top:auto;'); idle.push('right:auto;'); break; case 'b_r': idle.push('bottom: '+tb+settings['absolute-unit']+';'); idle.push('right: '+lr+settings['absolute-unit']+';'); idle.push('top:auto;'); idle.push('left:auto;'); break; } } }else{ hover.push(set_handle+': '+settings[handle]+set_unit+do_important+';'); } } } } } } var html = ''+"\n"; //remove styles tag of element if exists if(jQuery('#eg-element-style-'+on_layer.data('handle')).length > 0) jQuery('#eg-element-style-'+on_layer.data('handle')).remove(); isw.append(html); } /** * Set css inline styles element */ t.set_global_inline_styles = function(){ var isw = jQuery('#eg-inline-style-wrapper'); if(jQuery('#eg-global-inline-styles').length > 0) jQuery('#eg-global-inline-styles').remove(); html = ''+"\n"; save_needed = true; isw.append(html); } /** * Set Settings like delay and animation type */ t.set_setting_attributes = function(){ if(selected_layer == null) return(false); var layer_id = selected_layer.data('id'); //if(typeof(layers[layer_id]) === 'undefined') return false; for(var key in layers){ if(layers[key]['id'] == layer_id){ //element == layers[key]['handle'] && for(var handle in all_attributes){ if(all_attributes[handle]['style'] !== 'attribute') continue; if(handle == 'delay'){ var delay = layers[key]['settings'][handle]; if(delay > 0) delay = delay / 100; selected_layer.data('delay', delay); } else if(handle == 'duration') { var duration = layers[key]['settings'][handle]; selected_layer.data('duration', duration); }else if(handle == 'transition'){ var classes = selected_layer.attr('class'); var class_arr = classes.split(' '); //reset classes for(var class_key in class_arr){ if(class_arr[class_key].indexOf('esg-') !== -1) selected_layer.removeClass(class_arr[class_key]); } if(typeof layers[key]['settings']['transition-type'] === 'undefined') layers[key]['settings']['transition-type'] = ''; //add transition selected_layer.addClass('esg-'+layers[key]['settings'][handle]+layers[key]['settings']['transition-type']); }/*else if(handle == 'split'){ var split_on = layers[key]['settings'][handle]; //console.log(split_on); selected_layer.data('split', split_on); selected_layer.attr('data-split', split_on); }*/ } } } } /** * Set the caption text of the element */ t.set_setting_caption = function(){ if(selected_layer == null) return(false); var layer_id = selected_layer.data('id'); var caption = ''; for(var key in layers){ if(layers[key]['id'] == layer_id){ //check if we are special blank html element. If yes, leave empty in backend if(typeof layers[key]['settings']['special'] !== undefined && layers[key]['settings']['special'] == 'true'){ if(typeof layers[key]['settings']['special-type'] !== undefined && layers[key]['settings']['special-type'] == 'blank-element'){ selected_layer.html(' '); return true; } } switch(layers[key]['settings']['source']){ case 'icon': if(typeof layers[key]['settings']['source-icon'] !== 'undefined') var caption = ''; break; case 'text': if(typeof layers[key]['settings']['source-text'] !== 'undefined') var caption = layers[key]['settings']['source-text']; break; case 'event': if(typeof layers[key]['settings']['source-event'] !== 'undefined') var caption = layers[key]['settings']['source-event']; break; case 'woocommerce': if(typeof layers[key]['settings']['source-woocommerce'] !== 'undefined') var caption = layers[key]['settings']['source-woocommerce']; break; case 'post': default: if(typeof layers[key]['settings']['source-post'] !== 'undefined') var caption = layers[key]['settings']['source-post']; } if(layers[key]['settings']['source'] == 'post' || layers[key]['settings']['source'] == 'event' || layers[key]['settings']['source'] == 'woocommerce'){ if(caption == ''){ caption = 'title'; layers[key]['settings']['source'] = 'post'; } switch(caption){ //set shorts for woocommerce case 'wc_full_price': caption = eg_lang.full_price; break; case 'wc_price': caption = eg_lang.regular_price; break; case 'wc_price_no_cur': caption = eg_lang.regular_price_no_cur; break; default: caption = jQuery('select[name="element-source-'+layers[key]['settings']['source']+'"] option[value="'+caption+'"]').text(); break; } } selected_layer.html(caption); break; } } } /** * propagate styles into all layers (when layers get filled at start) */ t.propagate_layer_styles = function(handle, layer_id){ if(typeof init_elements[handle] == 'undefined') return false; for(var key in init_elements[handle]['settings']){ layers[layer_id]['settings'][key] = init_elements[handle]['settings'][key]; } } /** * propagate elements into selectbox */ t.propagate_element_selector = function(){ jQuery('#element-settings-current-name').html(''); for(var lkey in layers){ //add layers var ele_text = ''; switch(layers[lkey]['settings']['source']){ case 'icon': ele_text = layers[lkey]['settings']['source-icon']; break; case 'post': ele_text = jQuery('select[name="element-source-post"] option[value="'+layers[lkey]['settings']['source-post']+'"]').text(); break; case 'event': ele_text = jQuery('select[name="element-source-event"] option[value="'+layers[lkey]['settings']['source-event']+'"]').text(); break; case 'woocommerce': ele_text = jQuery('select[name="element-source-woocommerce"] option[value="'+layers[lkey]['settings']['source-woocommerce']+'"]').text(); break; case 'text': ele_text = layers[lkey]['settings']['source-text'].replace(/(<([^>]+)>)/ig,""); break; } jQuery('#element-settings-current-name').append(jQuery('