/* global jQuery:false */ /* global ASIA_GARDEN_STORAGE:false */ //------------------------------------------- // Theme Options fields manipulations //------------------------------------------- jQuery(document).ready(function() { "use strict"; // Toggle inherit button and cover jQuery('#asia_garden_options_tabs').on('click', '.asia_garden_options_inherit_lock,.asia_garden_options_inherit_cover', function (e) { var parent = jQuery(this).parents('.asia_garden_options_item'); var inherit = parent.hasClass('asia_garden_options_inherit_on'); if (inherit) { parent.removeClass('asia_garden_options_inherit_on').addClass('asia_garden_options_inherit_off'); parent.find('.asia_garden_options_inherit_cover').fadeOut().find('input[type="hidden"]').val(''); } else { parent.removeClass('asia_garden_options_inherit_off').addClass('asia_garden_options_inherit_on'); parent.find('.asia_garden_options_inherit_cover').fadeIn().find('input[type="hidden"]').val('inherit'); } e.preventDefault(); return false; }); // Refresh linked field jQuery('#asia_garden_options_tabs').on('change', '[data-linked] select,[data-linked] input', function (e) { var chg_name = jQuery(this).parent().data('param'); var chg_value = jQuery(this).val(); var linked_name = jQuery(this).parent().data('linked'); var linked_data = jQuery('#asia_garden_options_tabs [data-param="'+linked_name+'"]'); var linked_field = linked_data.find('select'); var linked_field_type = 'select'; if (linked_field.length == 0) { linked_field = linked_data.find('input'); linked_field_type = 'input'; } var linked_lock = linked_data.parent().parent().find('.asia_garden_options_inherit_lock').addClass('asia_garden_options_wait'); // Prepare data var data = { action: 'asia_garden_get_linked_data', nonce: ASIA_GARDEN_STORAGE['ajax_nonce'], chg_name: chg_name, chg_value: chg_value }; jQuery.post(ASIA_GARDEN_STORAGE['ajax_url'], data, function(response) { var rez = {}; try { rez = JSON.parse(response); } catch (e) { rez = { error: ASIA_GARDEN_STORAGE['ajax_error_msg'] }; console.log(response); } if (rez.error === '') { if (linked_field_type == 'select') { var opt_list = ''; for (var i in rez.list) { opt_list += ''; } linked_field.html(opt_list); } else { linked_field.val(rez.value); } linked_lock.removeClass('asia_garden_options_wait'); } }); e.preventDefault(); return false; }); // Check for dependencies //----------------------------------------------------------------------------- jQuery('.asia_garden_options .asia_garden_options_section').each(function () { asia_garden_options_check_dependencies(jQuery(this)); }); jQuery('.asia_garden_options .asia_garden_options_item_field [name^="asia_garden_options_field_"]').on('change', function () { asia_garden_options_check_dependencies(jQuery(this).parents('.asia_garden_options_section')); }); // Check for dependencies function asia_garden_options_check_dependencies(cont) { cont.find('.asia_garden_options_item_field').each(function() { var id = jQuery(this).data('param'); if (id == undefined) return; var depend = false; for (var fld in asia_garden_dependencies) { if (fld == id) { depend = asia_garden_dependencies[id]; break; } } if (depend) { var dep_cnt = 0, dep_all = 0; var dep_cmp = typeof depend.compare != 'undefined' ? depend.compare.toLowerCase() : 'and'; var dep_strict = typeof depend.strict != 'undefined'; var fld=null, val='', name='', subname=''; var parts = '', parts2 = ''; for (var i in depend) { if (i == 'compare' || i == 'strict') continue; dep_all++; name = i; subname = ''; if (name.indexOf('[') > 0) { parts = name.split('['); name = parts[0]; subname = parts[1].replace(']', ''); } if (name.charAt(0)=='#' || name.charAt(0)=='.') { fld = jQuery(name); if (fld.length > 0 && !fld.hasClass('trx_addons_inited')) { fld.addClass('trx_addons_inited').on('change', function () { jQuery('.asia_garden_options .asia_garden_options_section').each(function () { asia_garden_options_check_dependencies(jQuery(this)); }); }); } } else fld = cont.find('[name="asia_garden_options_field_'+name+'"]'); if (fld.length > 0) { val = fld.attr('type')=='checkbox' || fld.attr('type')=='radio' ? (fld.parents('.asia_garden_options_item_field').find('[name^="asia_garden_options_field_"]:checked').length > 0 ? fld.parents('.asia_garden_options_item_field').find('[name^="asia_garden_options_field_"]:checked').val() : 0 ) : fld.val(); if (val===undefined) val = ''; if (subname!='') { parts = val.split('|'); for (var p=0; p 0 && dep_cmp == 'or') break; } if ((dep_cnt > 0 && dep_cmp == 'or') || (dep_cnt == dep_all && dep_cmp == 'and')) { jQuery(this).parents('.asia_garden_options_item').show().removeClass('asia_garden_options_no_use'); } else { jQuery(this).parents('.asia_garden_options_item').hide().addClass('asia_garden_options_no_use'); } } }); } });