![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/gg.corals.io/wp-content/plugins/trx_addons/js/ |
//------------------------------------------- // Options handlers //------------------------------------------- /* global jQuery:false */ /* global TRX_ADDONS_STORAGE:false */ jQuery(document).ready(function() { "use strict"; // Submit form jQuery('.trx_addons_options_button_submit').on('click', function() { jQuery(this).parents('form').submit(); }); // Init fields trx_addons_options_init_fields(); jQuery(document).on('action.init_hidden_elements', trx_addons_options_init_fields); // Check fields dependencies jQuery( window ).load( function() { jQuery('.trx_addons_options .trx_addons_options_section').each( function () { trx_addons_options_check_dependencies(jQuery(this)); }); }); jQuery('.trx_addons_options .trx_addons_options_item_field [name^="trx_addons_options_field_"]').on('change', function () { trx_addons_options_check_dependencies(jQuery(this).parents('.trx_addons_options_section')); }); // Init fields at first run and after clone group function trx_addons_options_init_fields(e, container) { if (container === undefined) container = jQuery('.trx_addons_options,body').eq(0); // Init checklist container.find('.trx_addons_options_item_choises:not(.inited)').addClass('inited') .on('change', 'input[type="checkbox"]', function() { var choises = ''; var cont = jQuery(this).parents('.trx_addons_options_item_choises'); cont.find('input[type="checkbox"]').each(function() { choises += (choises ? '|' : '') + jQuery(this).data('name') + '=' + (jQuery(this).get(0).checked ? jQuery(this).val() : '0'); }); cont.find('input[type="hidden"]').eq(0).val(choises).trigger('change'); }) .each(function() { if (jQuery.ui.sortable && jQuery(this).hasClass('trx_addons_options_sortable')) { var id = jQuery(this).attr('id'); if (id === undefined) jQuery(this).attr('id', 'trx_addons_options_sortable_'+(''+Math.random()).replace('.', '')); jQuery(this).sortable({ items: ".trx_addons_options_item_sortable", placeholder: ' trx_addons_options_item_label trx_addons_options_sortable_placeholder', update: function(event, ui) { var choises = ''; ui.item.parent().find('input[type="checkbox"]').each(function() { choises += (choises ? '|' : '') + jQuery(this).data('name') + '=' + (jQuery(this).get(0).checked ? jQuery(this).val() : '0'); }); ui.item.siblings('input[type="hidden"]').eq(0).val(choises).trigger('change'); } }) .disableSelection(); } }); // Init socials selector container.find('[data-param*="socials["] .trx_addons_icon_selector:not(.icons_inited),[data-param*="share["] .trx_addons_icon_selector:not(.icons_inited)').addClass('icons_inited') .siblings('input[type="hidden"]') .on('change', function() { var icon = jQuery(this).val().replace('trx_addons_icon-', '').replace('icon-', ''), parts = jQuery(this).attr('name').split('['), idx = -1; if (parts.length > 1) { parts = parts[1].split(']'); idx = Number(parts[0]); if (isNaN(idx)) idx = -1; } if (idx >= 0) { var fields_set = jQuery(this).parents('.trx_addons_options_fields_set').eq(0), title_fld = fields_set.find('[data-param="socials['+idx+'][title]"] > input,[data-param="share['+idx+'][title]"] > input'), url_fld = fields_set.find('[data-param="share['+idx+'][url]"] > input'); if (title_fld.length > 0) { // && title_fld.val() == '') { title_fld.val( icon.charAt(0).toUpperCase() + icon.substring(1).toLowerCase() ); } if (url_fld.length > 0) { // && url_fld.val() == '') { url_fld.val( typeof TRX_ADDONS_SOCIAL_SHARE !== 'undefined' && typeof TRX_ADDONS_SOCIAL_SHARE[icon] !== 'undefined' ? TRX_ADDONS_SOCIAL_SHARE[icon] : '' ); } } }); // Init Select2 if (jQuery.fn && jQuery.fn.select2) { container.find('.trx_addons_options_item_select2 select:not(.inited)').addClass('inited').select2(); } // Init datepicker if (jQuery.ui.datepicker) { container.find('.trx_addons_options_item_date input[type="text"]:not(.inited)').addClass('inited') .each(function () { var curDate = jQuery(this).val(); jQuery(this).datepicker({ dateFormat: jQuery(this).data('format'), numberOfMonths: jQuery(this).data('months'), gotoCurrent: true, changeMonth: true, changeYear: true, defaultDate: curDate, onSelect: function (text, ui) { ui.input.trigger('change'); } }); }); } // Init range slider if (jQuery.ui && jQuery.ui.slider) { container.find('.trx_addons_range_slider:not(.inited)').each(function () { // Get parameters var range_slider = jQuery(this); var linked_field = range_slider.data('linked_field'); if (linked_field===undefined) linked_field = range_slider.prev('input[type="hidden"],input[type="text"]'); else linked_field = jQuery('#'+linked_field); if (linked_field.length == 0) return; linked_field.on( 'change', function() { var minimum = range_slider.data( 'min' ); if (minimum === undefined) { minimum = 0; } var maximum = range_slider.data( 'max' ); if (maximum === undefined) { maximum = 0; } var values = jQuery( this ).val().split( ',' ); for (var i = 0; i < values.length; i++) { if (isNaN( values[i] )) { value[i] = minimum; } values[i] = Math.max( minimum, Math.min( maximum, Number( values[i] ) ) ); if (values.length == 1) { range_slider.slider( 'value', values ); } else { range_slider.slider( 'values', i, values[i] ); } } update_cur_values( values ); jQuery( this ).val( values.join( ',' ) ); } ); var range_slider_cur = range_slider.find('> .trx_addons_range_slider_label_cur'); var range_slider_type = range_slider.data('range'); if (range_slider_type===undefined) range_slider_type = 'min'; var values = linked_field.val().split(','); var minimum = range_slider.data('min'); if (minimum===undefined) minimum = 0; var maximum = range_slider.data('max'); if (maximum===undefined) maximum = 0; var step = range_slider.data('step'); if (step===undefined) step = 1; // Init range slider var init_obj = { range: range_slider_type, min: minimum, max: maximum, step: step, slide: function(event, ui) { var cur_values = range_slider_type === 'min' ? [ui.value] : ui.values; linked_field.val(cur_values.join(',')).trigger('change'); update_cur_values( cur_values ); }, create: function(event, ui) { update_cur_values( values ); } }; function update_cur_values(cur_values) { for (var i = 0; i < cur_values.length; i++) { range_slider_cur.eq( i ) .html( cur_values[i] ) .css( 'left', Math.max( 0, Math.min( 100, (cur_values[i] - minimum) * 100 / (maximum - minimum) ) ) + '%' ); } } if (range_slider_type === true) init_obj.values = values; else init_obj.value = values[0]; range_slider.addClass('inited').slider(init_obj); }); } // Init masked input container.find('.trx_addons_options_item input[data-mask]:not(.inited)').addClass('inited') .each(function () { if (jQuery.fn && jQuery.fn.mask) jQuery(this).mask(''+jQuery(this).data('mask')); }); // Button with action container.find('.trx_addons_options_item_button input[type="button"]:not(.inited)').addClass('inited') .on('click', function(e) { var button = jQuery(this), cb = button.data('callback'); if (cb !== undefined && typeof window[cb] !== 'undefined') { window[cb](); } else { jQuery.post(TRX_ADDONS_STORAGE['ajax_url'], { action: button.data('action'), nonce: TRX_ADDONS_STORAGE['ajax_nonce'], }).done(function(response) { var rez = {}; if (response === '' || response === 0) { rez = { error: TRX_ADDONS_STORAGE['msg_ajax_error'] }; } else { try { rez = JSON.parse(response); } catch (e) { rez = { error: TRX_ADDONS_STORAGE['msg_ajax_error'] }; console.log(response); } } alert(rez.error ? rez.error : rez.success); }); } e.preventDefault(); return false; }); // Init cloned fields trx_addons_options_clone_toggle_buttons(container); container.find('.trx_addons_options_group:not(.inited)').addClass('inited').each(function() { jQuery(this) // Button 'Clone' .on('click', '.trx_addons_options_clone > .trx_addons_options_clone_control_add', function (e) { var clone_obj = jQuery(this).parents('.trx_addons_options_clone'), group = clone_obj.parents('.trx_addons_options_group'); // Clone fields trx_addons_options_clone(clone_obj); // Enable/Disable clone buttons trx_addons_options_clone_toggle_buttons(group); // Prevent bubble event e.preventDefault(); return false; }) // Button 'Delete' .on('click', '.trx_addons_options_clone > .trx_addons_options_clone_control_delete', function (e) { var clone_obj = jQuery(this).parents('.trx_addons_options_clone'), clone_idx = clone_obj.index(), group = clone_obj.parents('.trx_addons_options_group'); // Delete clone clone_obj.remove(); // Change fields index trx_addons_options_clone_change_index(group, clone_idx); // Enable/Disable clone buttons trx_addons_options_clone_toggle_buttons(group); // Prevent bubble event e.preventDefault(); return false; }); // Sort clones if (jQuery.ui.sortable) { var id = jQuery(this).attr('id'); if (id === undefined) jQuery(this).attr('id', 'trx_addons_options_sortable_'+(''+Math.random()).replace('.', '')); jQuery(this) .sortable({ items: '.trx_addons_options_clone', handle: '.trx_addons_options_clone_control_move', placeholder: ' trx_addons_options_clone trx_addons_options_clone_placeholder', start: function (event, ui) { // Make the placeholder has the same height as dragged item ui.placeholder.height(ui.item.height()); }, update: function(event, ui) { // Change fields index trx_addons_options_clone_change_index(ui.item.parents('.trx_addons_options_group'), 0); } }); } }); // Check clone controls for enable/disable function trx_addons_options_clone_toggle_buttons(container) { if (!container.hasClass('trx_addons_options_group')) container = container.find('.trx_addons_options_group'); container.each(function() { var group = jQuery(this); if (group.find('.trx_addons_options_clone').length > 1) group.find('.trx_addons_options_clone_control_delete,.trx_addons_options_clone_control_move').show(); else group.find('.trx_addons_options_clone_control_delete,.trx_addons_options_clone_control_move').hide(); }); } // Replace number in the param's name like 'floor_plans[0][image]' function trx_addons_options_clone_replace_index(name, idx_new) { name = name.replace(/\[\d\]/, '['+idx_new+']'); return name; } // Change index in each field in the clone function trx_addons_options_clone_change_index(group, from_idx) { group.find('.trx_addons_options_clone').each(function(idx) { if (idx < from_idx) return; jQuery(this).find('.trx_addons_options_item_field').each(function() { var field = jQuery(this); field.attr('data-param', trx_addons_options_clone_replace_index(field.data('param'), idx)); field.find('> :input').each(function() { var input = jQuery(this), id = input.attr('id'), name = input.attr('name'); if (!name) return; name = trx_addons_options_clone_replace_index(name, idx); input.attr('name', name); if (id) { var id_new = name.replace(/\[/g, '_').replace(/\]/g, ''); input.attr('id', id_new); var linked_field = field.find('[data-linked-field="'+id+'"]'); if (linked_field.length > 0) { linked_field.attr('data-linked-field', id_new); if (linked_field.attr('id')) linked_field.attr('id', linked_field.attr('id').replace(id, id_new)); } } }); }); }); } // Clone set of the fields function trx_addons_options_clone(obj) { var group = obj.parent(), clones = group.find('.trx_addons_options_clone'), clone = obj.clone(), inputs = clone.find('.trx_addons_options_item_field > :input'), obj_idx = obj.index(); // Remove class 'inited' from all elements clone.find('.inited').removeClass('inited'); // Reset value for fields inputs.each(function() { var input = jQuery(this); if (input.is(':radio') || input.is(':checkbox')) { input.prop('checked', false); } else if (input.is('select')) { input.prop('selectedIndex', -1); } else { input.val(''); } // Remove image preview input.parents('.trx_addons_options_item_field').find('.trx_addons_media_selector_preview').empty(); // Remove class 'inited' from selectors input.next('[class*="_selector"].inited').removeClass('inited'); }); //Remove UI sliders clone.find('.ui-slider-range, .ui-slider-handle').remove(); // Insert Clone clone.insertAfter(obj); // Change fields index. Must run before trigger clone event trx_addons_options_clone_change_index(group, obj_idx); // Fire init actions for cloned fields jQuery(document).trigger('action.init_hidden_elements', [clone.parents('.trx_addons_options')]); } } // Return value of the field function trx_addons_options_get_field_value(fld) { var ctrl = fld.parents('.trx_addons_options_item_field'); var val = fld.attr('type')=='checkbox' || fld.attr('type')=='radio' ? (ctrl.find('[name^="trx_addons_options_field_"]:checked').length > 0 ? (ctrl.find('[name^="trx_addons_options_field_"]:checked').val() !== '' && ''+ctrl.find('[name^="trx_addons_options_field_"]:checked').val() !== '0' ? ctrl.find('[name^="trx_addons_options_field_"]:checked').val() : 1 ) : 0 ) : fld.val(); if (val===undefined || val===null) val = ''; return val; } // Check for dependencies function trx_addons_options_check_dependencies(cont) { if (typeof TRX_ADDONS_DEPENDENCIES == 'undefined') return; cont.find('.trx_addons_options_item_field,.trx_addons_options_group[data-param]').each(function() { var ctrl = jQuery(this), id = ctrl.data('param'); if (id == undefined) return; var depend = false; for (var fld in TRX_ADDONS_DEPENDENCIES) { if (fld == id) { depend = TRX_ADDONS_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='', i; var parts = '', parts2 = ''; for (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)=='#') { fld = jQuery(name); if (fld.length > 0 && !fld.hasClass('trx_addons_inited')) { fld.addClass('trx_addons_inited').on('change', function () { jQuery('.trx_addons_options .trx_addons_options_section').each(function () { trx_addons_options_check_dependencies(jQuery(this)); }); }); } } else fld = cont.find('[name="trx_addons_options_field_'+name+'"]'); if (fld.length > 0) { val = trx_addons_options_get_field_value(fld); if (subname !== '') { parts = val.split('|'); for (var p=0; p < parts.length; p++) { parts2 = parts[p].split('='); if (parts2[0]==subname) { val = parts2[1]; } } } for (var j in depend[i]) { if ( (depend[i][j]=='not_empty' && val !== '') // Main field value is not empty - show current field || (depend[i][j]=='is_empty' && val === '') // Main field value is empty - show current field || (val !== '' && (!isNaN(depend[i][j]) // Main field value equal to specified value - show current field ? val==depend[i][j] : (dep_strict ? val==depend[i][j] : (''+val).indexOf(depend[i][j])==0 ) ) ) || (val !== '' && (""+depend[i][j]).charAt(0) == '^' && (''+val).indexOf(depend[i][j].substr(1))==-1) // Main field value not equal to specified value - show current field ) { dep_cnt++; break; } } } if (dep_cnt > 0 && dep_cmp == 'or') break; } if ( !ctrl.hasClass('trx_addons_options_group') ) { ctrl = ctrl.parents('.trx_addons_options_item'); } if ((dep_cnt > 0 && dep_cmp == 'or') || (dep_cnt == dep_all && dep_cmp == 'and')) { ctrl.show().removeClass('trx_addons_options_no_use'); } else { ctrl.hide().addClass('trx_addons_options_no_use'); } } }); } });