diff --git a/assets/js/um-conditional.js b/assets/js/um-conditional.js index f33144d2..6bef3111 100644 --- a/assets/js/um-conditional.js +++ b/assets/js/um-conditional.js @@ -1,602 +1,387 @@ +function condition_fields() { + var first_group = 0, + state_array = [], + count = state_array.length, + state = 'show'; + + jQuery('.um-profile-body .um-field, .um-profile-body .um-field').each(function () { + var conds = jQuery(this).attr('data-conds'); + + if ( conds ){ + var array = JSON.parse(conds); + + jQuery.each(array, function() { + var action = this[0], + field = this[1], + op = this[2], + val = this[3], + group = this[5], + depend_field; + + var input = jQuery('.um-profile-body .um-field[data-key="'+field+'"] .um-field-area input'), + select = jQuery('.um-profile-body .um-field[data-key="'+field+'"] .um-field-area>select'), + textarea = jQuery('.um-profile-body .um-field[data-key="'+field+'"] .um-field-area>textarea'), + content_block = jQuery('.um-profile-body .um-field[data-key="'+field+'"] .um-field-block'); + + if( input.length > 0 && select.length === 0 ){ + + if( input.is(':checkbox') ){ + var checked = jQuery('.um-profile-body .um-field[data-key="'+field+'"] input:checked'); + checked.each(function () { + var checked_vals = jQuery(this).val(); + + if( checked_vals === val ){ + depend_field = val; + } + + }); + } else if( input.is(':radio')) { + depend_field = jQuery('.um-profile-body .um-field[data-key="'+field+'"] input:checked').val(); + } else { + depend_field = input.val(); + } + + } else if( select.length > 0 ){ + + if( jQuery.inArray( val, select.val() ) > 0 ){ + depend_field = val; + } else { + depend_field = select.val() + } + + } else if( textarea.length > 0 ){ + + depend_field = textarea.val(); + + } else if( content_block.length > 0 ){ + + depend_field = content_block.text(); + + } + + if( parseInt(group) !== first_group ){ + + if ( action === 'show') { + + switch (op) { + case 'equals to': + if( depend_field == val ){ + state = 'show'; + } else { + state = 'hide'; + } + break; + + case 'not equals': + if( depend_field != val ){ + state = 'show'; + } else { + state = 'hide'; + } + break; + + case 'empty': + if( !depend_field || depend_field === '' ){ + state = 'show'; + } else { + state = 'hide'; + } + break; + + case 'not empty': + if( depend_field && depend_field !== '' ){ + state = 'show'; + } else { + state = 'hide'; + } + break; + + case 'greater than': + if( jQuery.isNumeric(val) && jQuery.isNumeric(depend_field) ){ + if( val > depend_field ){ + state = 'show' + } else { + state = 'hide' + } + } else { + state = 'hide'; + } + break; + + case 'less than': + if( jQuery.isNumeric(val) && jQuery.isNumeric(depend_field) ){ + if( val < depend_field ){ + state = 'show' + } else { + state = 'hide' + } + } else { + state = 'hide'; + } + break; + + case 'contains': + if( depend_field.search(val) >= 0 ){ + state = 'show'; + } else { + state = 'hide'; + } + break; + + } + + } else { // if hide + + switch (op) { + case 'equals to': + if (depend_field == val) { + state = 'hide'; + } else { + state = 'show'; + } + break; + + case 'not equals': + if (depend_field != val) { + state = 'hide'; + } else { + state = 'show'; + } + break; + + case 'empty': + if (!depend_field || depend_field === '') { + state = 'hide'; + } else { + state = 'show'; + } + break; + + case 'not empty': + if (depend_field && depend_field !== '') { + state = 'hide'; + } else { + state = 'show'; + } + break; + + case 'greater than': + if (jQuery.isNumeric(val) && jQuery.isNumeric(depend_field)) { + if (val > depend_field) { + state = 'hide' + } else { + state = 'show' + } + } else { + state = 'show'; + } + break; + + case 'less than': + if (jQuery.isNumeric(val) && jQuery.isNumeric(depend_field)) { + if (val < depend_field) { + state = 'hide' + } else { + state = 'show' + } + } else { + state = 'show'; + } + break; + + case 'contains': + if (depend_field.search(val) >= 0) { + state = 'hide'; + } else { + state = 'show'; + } + break; + + } + + } + first_group++; + state_array.push(state); + } else { + + if ( action === 'show') { + + switch (op) { + case 'equals to': + if( depend_field == val ){ + state = 'show'; + } else { + state = 'not_show'; + } + break; + + case 'not equals': + if( depend_field != val ){ + state = 'show'; + } else { + state = 'not_show'; + } + break; + + case 'empty': + if( !depend_field || depend_field === '' ){ + state = 'show'; + } else { + state = 'not_show'; + } + break; + + case 'not empty': + if( depend_field && depend_field !== '' ){ + state = 'show'; + } else { + state = 'not_show'; + } + break; + + case 'greater than': + if( jQuery.isNumeric(val) && jQuery.isNumeric(depend_field) ){ + if( val > depend_field ){ + state = 'show' + } else { + state = 'not_show' + } + } else { + state = 'not_show'; + } + break; + + case 'less than': + if( jQuery.isNumeric(val) && jQuery.isNumeric(depend_field) ){ + if( val < depend_field ){ + state = 'show' + } else { + state = 'not_show' + } + } else { + state = 'not_show'; + } + break; + + case 'contains': + if( depend_field.search(val) >= 0 ){ + state = 'show'; + } else { + state = 'not_show'; + } + break; + + } + + } else { // if hide + + switch (op) { + case 'equals to': + if (depend_field == val) { + state = 'hide'; + } else { + state = 'not_hide'; + } + break; + + case 'not equals': + if (depend_field != val) { + state = 'hide'; + } else { + state = 'not_hide'; + } + break; + + case 'empty': + if (!depend_field || depend_field === '') { + state = 'hide'; + } else { + state = 'not_hide'; + } + break; + + case 'not empty': + if (depend_field && depend_field !== '') { + state = 'hide'; + } else { + state = 'not_hide'; + } + break; + + case 'greater than': + if (jQuery.isNumeric(val) && jQuery.isNumeric(depend_field)) { + if (val > depend_field) { + state = 'hide' + } else { + state = 'not_hide' + } + } else { + state = 'not_hide'; + } + break; + + case 'less than': + if (jQuery.isNumeric(val) && jQuery.isNumeric(depend_field)) { + if (val < depend_field) { + state = 'hide' + } else { + state = 'not_hide' + } + } else { + state = 'not_hide'; + } + break; + + case 'contains': + if (depend_field.search(val) >= 0) { + state = 'hide'; + } else { + state = 'not_hide'; + } + break; + + } + + } + if( state_array[count] ){ + if( state_array[count] === 'show' || state_array[count] === 'not_hide' ){ + if ( state === 'show' || state === 'not_hide' ){ + state_array[count] = 'show'; + } else { + state_array[count] = 'hide'; + } + } else { + state_array[count] = 'hide'; + } + } else { + if ( state === 'show' || state === 'not_hide' ){ + state_array[count] = 'show'; + } else { + state_array[count] = 'hide'; + } + } + } + + }); + + if( jQuery.inArray( 'show', state_array ) < 0 ){ + jQuery(this).hide(); + } else { + jQuery(this).show(); + } + } + + }); +} jQuery(document).ready( function (){ - var arr_all_conditions = []; //raw - var um_field_conditions = {}; // filtered - var um_field_default_values = {}; + condition_fields(); - /** - * Get field default value - * @param object $dom - * @return string - */ - function um_get_field_default_value( $dom ) { - var default_value = ''; - var type = um_get_field_type($dom); - switch ( type ) { - - case 'text': - case 'number': - case 'date': - case 'textarea': - case 'select': - default_value = $dom.find('input:text,input[type=number],textarea,select').val(); - break; - - case 'multiselect': - default_value = $dom.find('select').val(); - break; - - case 'radio': - if ($dom.find('input[type=radio]:checked').length >= 1) { - default_value = $dom.find('input[type=radio]:checked').val(); - } - - break; - case 'checkbox': - - if ($dom.find('input[type=checkbox]:checked').length >= 1) { - - if ($dom.find('input[type=checkbox]:checked').length > 1) { - $dom.find('input[type=checkbox]:checked').each(function () { - default_value = default_value + jQuery(this).val() + ' '; - }); - } else { - default_value = $dom.find('input[type=checkbox]:checked').val(); - } - - } - break; - } - - return {type: type, value: default_value}; - } - - /** - * Get field element by field wrapper - * @param object $dom - * @return object - */ - function um_get_field_element( $dom ) { - var default_value = ''; - var type = um_get_field_type($dom); - - switch ( type ) { - - case 'text': - case 'number': - case 'date': - case 'textarea': - case 'select': - case 'multiselect': - case 'radio': - case 'checkbox': - return $dom.find('input,textarea,select'); - break; - - - } - - return ''; - } - - /** - * Get field type - * @param object $dom - * @return string - */ - function um_get_field_type($dom) { - var type = ''; - var classes = $dom.attr( 'class' ); - jQuery.each( classes.split(' '), function (i, d) { - if (d.indexOf('um-field-type') != -1) { - type = d.split('_')[1]; - } - }); - - return type; - - } - - /** - * Get field siblings/chidren conditions - * @param string field_key - * @return array - */ - function um_get_field_children(field_key) { - var arr_conditions = []; - jQuery.each(arr_all_conditions, function (ii, condition) { - if (condition.field.parent == field_key) { - arr_conditions.push(condition.field.condition); - } - }); - - return arr_conditions; - - } - - /** - * Split single array to multi-dimensional array - * @param array arr - * @param integer n - * @return array - */ - function um_splitup_array(arr, n) { - var rest = arr.length % n, - restUsed = rest, - partLength = Math.floor(arr.length / n), - result = []; - - for (var i = 0; i < arr.length; i += partLength) { - var end = partLength + i, - add = false; - - if (rest !== 0 && restUsed) { - end++; - restUsed--; - add = true; - } - - result.push(arr.slice(i, end)); - - if (add) { - i++; - } - } - - var obj_result = []; - jQuery.each(result, function (ii, dd) { - obj_result.push({ - action: dd[0], - if_field: dd[1], - operator: dd[2], - value: dd[3] - }) - }); - - return obj_result; - } - - /** - * Get field live value - * @param object $dom - * @return mixed - */ - function um_get_field_data($dom) { - um_live_field = $dom.parents('.um-field').data('key'); - um_live_value = $dom.val(); - - if ($dom.is(':checkbox')) { - - um_live_value = ''; - - if ($dom.parents('.um-field').find('input:checked').length > 1) { - $dom.parents('.um-field').find('input:checked').each(function () { - um_live_value = um_live_value + jQuery(this).val() + ' '; - }); - } else { - if ($dom.parents('.um-field').find('input:checked').length >= 1) { - um_live_value = $dom.parents('.um-field').find('input:checked').val(); - } - } - - } - - if ($dom.is(':radio')) { - um_live_value = $dom.parents('.um-field').find('input[type=radio]:checked').val(); - } - - return um_live_value; - - } - - function um_in_array(needle, haystack, strict){ - var found = false, key, strict = !!strict; - for (key in haystack) { - if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) { - found = true; - break; - } - } - - return found; - } - - /** - * Apply field conditions - * @param object $dom - * @param boolean is_single_update - */ - function um_apply_conditions($dom, is_single_update) { - var operators = ['empty', 'not empty', 'equals to', 'not equals', 'greater than', 'less than', 'contains']; - var key = $dom.parents('.um-field[data-key]').data('key'); - var conditions = um_field_conditions[key]; - - var live_field_value = um_get_field_data($dom); - - var $owners = {}; - var $owners_values = {}; - var $owner_conditions = {}; - - jQuery.each(conditions, function (index, condition) { - if (typeof $owners_values[condition.owner] == 'undefined') { - $owners_values[condition.owner] = []; - $owner_conditions[condition.owner] = {} - } - $owners_values[condition.owner].push(condition.value); - $owner_conditions[condition.owner] = condition; - }); - - jQuery.each(conditions, function (index, condition) { - if (typeof $owners[condition.owner] == 'undefined') { - $owners[condition.owner] = {}; - } - if (condition.operator == 'empty') { - if (!live_field_value || live_field_value == '' && um_in_array(live_field_value, $owners_values[condition.owner])) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - - if (condition.operator == 'not empty') { - if (live_field_value && live_field_value != '' && !um_in_array(live_field_value, $owners_values[condition.owner])) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - - if (condition.operator == 'equals to') { - if (condition.value == live_field_value && um_in_array(live_field_value, $owners_values[condition.owner])) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - - if (condition.operator == 'not equals') { - if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) != parseInt(condition.value) && live_field_value && !um_in_array(live_field_value, $owners_values[condition.owner])) { - $owners[condition.owner][index] = true; - } else if (condition.value != live_field_value && !um_in_array(live_field_value, $owners_values[condition.owner])) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - - if (condition.operator == 'greater than') { - if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) > parseInt(condition.value)) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - - if (condition.operator == 'less than') { - if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) < parseInt(condition.value)) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - - if ( condition.operator == 'contains' ) { - if ( 'multiselect' == um_get_field_type( $dom.parents('.um-field[data-key]') ) ) { - if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 && um_in_array( condition.value, live_field_value ) ) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } else if ( 'checkbox' == um_get_field_type( $dom.parents('.um-field[data-key]') ) ) { - if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 ) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } else { - if ( live_field_value && live_field_value.indexOf( condition.value ) >= 0 && um_in_array( live_field_value, $owners_values[ condition.owner ] ) ) { - $owners[condition.owner][index] = true; - } else { - $owners[condition.owner][index] = false; - } - } - } - - }); // end foreach `conditions` - jQuery.each($owners, function (index, field) { - if (um_in_array(true, field)) { - um_field_apply_action($dom, $owner_conditions[index], true); - } else { - um_field_apply_action($dom, $owner_conditions[index], false); - } - }); - $dom.trigger('um_fields_change'); - - } - - /** - * Apply condition's action - * @param object $dom - * @param string condition - * @param boolean is_true - */ - function um_field_apply_action($dom, condition, is_true) { - var child_dom = jQuery('div.um-field[data-key="' + condition.owner + '"]'); - var child_dom_input = jQuery('div.um-field[data-key="' + condition.owner + '"] input'); - - if (condition.action == 'show' && is_true /*&& child_dom.is(':hidden')*/) { - child_dom.show(); - child_dom_input.removeAttr('disabled'); - _show_in_ie( child_dom ); - um_field_restore_default_value(child_dom); - } - - if (condition.action == 'show' && !is_true /*&& child_dom.is(':visible') */) { - child_dom.hide(); - child_dom_input.attr('disabled','disabled'); - _hide_in_ie( child_dom ); - } - - if (condition.action == 'hide' && is_true /*&& child_dom.is(':visible')*/) { - child_dom.hide(); - child_dom_input.attr('disabled','disabled'); - _hide_in_ie( child_dom ); - } - - if (condition.action == 'hide' && !is_true /*&& child_dom.is(':hidden')*/) { - child_dom.show(); - child_dom_input.removeAttr('disabled'); - _show_in_ie( child_dom ); - um_field_restore_default_value( child_dom ); - - } - $dom.removeClass('um-field-has-changed'); - } - - /** - * Restores default field value - * @param object $dom - */ - function um_field_restore_default_value( $dom ) { - //um_field_default_values - - var type = um_get_field_type( $dom ); - var key = $dom.data('key'); - var field = um_field_default_values[key]; - switch ( type ) { - - case 'text': - case 'number': - case 'date': - case 'textarea': - $dom.find('input:text,input[type=number],textareas').val(field.value); - break; - - case 'select': - $dom.find('select').find('option').prop('selected', false); - $dom.find('select').val(field.value); - $dom.find('select').trigger('change'); - break; - - case 'multiselect': - $dom.find('select').find('option').prop('selected', false); - jQuery.each(field.value, function (i, value) { - $dom.find('select').find('option[value="' + value + '"]').attr('selected', true); - }); - $dom.find('select').trigger('change'); - break; - - case 'checkbox': - - if ( $dom.find('input[type=checkbox]:checked').length >= 1 ) { - - $dom.find('input[type=checkbox]:checked').removeAttr('checked'); - $dom.find('span.um-field-checkbox-state i').removeClass('um-icon-android-checkbox-outline'); - $dom.find('span.um-field-checkbox-state i').addClass('um-icon-android-checkbox-outline-blank'); - $dom.find('.um-field-checkbox.active').removeClass('active'); - - if (jQuery.isArray(field.value)) { - jQuery.each(field.value, function (i, value) { - var cbox_elem = $dom.find('input[type=checkbox][value="' + value + '"]'); - cbox_elem.attr('checked', true); - cbox_elem.closest('.um-field-checkbox').find('i').removeClass('um-icon-android-checkbox-outline-blank'); - cbox_elem.closest('.um-field-checkbox').find('i').addClass('um-icon-android-checkbox-outline'); - cbox_elem.closest('.um-field-checkbox').addClass('active'); - }); - } else { - var cbox_elem = $dom.find('input[type=checkbox][value="' + field.value + '"]'); - cbox_elem.attr('checked', true); - cbox_elem.closest('.um-field-checkbox').find('i').removeClass('um-icon-android-checkbox-outline-blank'); - cbox_elem.closest('.um-field-checkbox').find('i').addClass('um-icon-android-checkbox-outline'); - cbox_elem.closest('.um-field-checkbox').addClass('active'); - } - - } - - break; - case 'radio': - - if ( $dom.find('input[type=radio]:checked').length >= 1 ) { - - setTimeout(function () { - - $dom.find('input[type=radio]:checked').removeAttr('checked'); - - $dom.find('span.um-field-radio-state i').removeClass('um-icon-android-radio-button-on'); - $dom.find('span.um-field-radio-state i').addClass('um-icon-android-radio-button-off'); - $dom.find('.um-field-radio.active').removeClass('active'); - - var radio_elem = $dom.find("input[type=radio][value='" + field.value + "']"); - radio_elem.attr('checked', true); - radio_elem.closest('.um-field-radio').find('i').removeClass('um-icon-android-radio-button-off'); - radio_elem.closest('.um-field-radio').find('i').addClass('um-icon-android-radio-button-on'); - radio_elem.closest('.um-field-radio').addClass('active'); - - }, 100); - } - - break; - - - } // end switch type - - - if ( ! $dom.hasClass( 'um-field-has-changed' ) ) { - var me = um_get_field_element( $dom ); - - if ( type == 'radio' || type == 'checkbox' ) { - me = me.find( ':checked' ); - } - - if ( me ) { - me.trigger( 'change' ); - $dom.addClass( 'um-field-has-changed' ); - } - - /* - maybe future fix - if ( me ) { - if ( type == 'radio' || type == 'checkbox' ) { - me.each( function() { - if ( jQuery(this).is(':checked') ) { - jQuery(this).trigger('change'); - } - }); - } else { - me.trigger( 'change' ); - } - - $dom.addClass( 'um-field-has-changed' ); - }*/ - } - } - - /** - * Hides sibling/child field when parent field is hidden - */ - function um_field_hide_siblings() { - - jQuery.each(um_field_conditions, function (index, conditions) { - if (jQuery('.um-field[data-key="' + index + '"]:hidden').length >= 1 || jQuery('.um-field[data-key="' + index + '"]').css('display') == 'none') { - jQuery.each(conditions, function (key, condition) { - jQuery('.um-field[data-key="' + condition.owner + '"]').hide(); - }); - } - - }); - - } - - /** - * Hides div for IE browser - * @param object $dom - */ - function _hide_in_ie( $dom ){ - if ( typeof( jQuery.browser ) != 'undefined' && jQuery.browser.msie ) { - $dom.css({"visibility":"hidden"}); - } - } - - /** - * Shows div for IE browser - * @param object $dom - */ - function _show_in_ie( $dom ){ - if ( typeof( jQuery.browser ) != 'undefined' && jQuery.browser.msie ) { - $dom.css({"visibility":"visible"}); - } - } - - jQuery(document).on('change', '.um-field select, .um-field input[type="radio"], .um-field input[type="checkbox"]', function () { - var me = jQuery(this); - um_apply_conditions(me, false); + jQuery('.um-profile-body .um-field input, .um-profile-body .um-field textarea').on('change keyup', function () { + condition_fields(); + }); + jQuery('.um-profile-body .um-field select').on('change', function () { + condition_fields(); }); - jQuery(document).on('input change', '.um-field input[type="text"]', function () { - var me = jQuery(this); - um_apply_conditions(me, false); - }); - - jQuery(document).on('input change', '.um-field input[type="number"]', function () { - var me = jQuery(this); - um_apply_conditions(me, false); - }); - - jQuery(document).on('input change', '.um-field input[type="password"]', function () { - var me = jQuery(this); - um_apply_conditions(me, false); - }); - - jQuery(document).on('um_fields_change', function () { - um_field_hide_siblings(); - um_field_hide_siblings(); // dupes, issue with false field wrapper's visiblity validations. requires optimization. - }); - - - /** - * UM Conditional fields Init - */ - function um_init_field_conditions() { - var arr_field_keys = []; - - jQuery( '.um-field[data-key]' ).each( function() { - - var key = jQuery(this).data( 'key' ); - - arr_field_keys.push( key ); - - var parse_attrs = {}; - jQuery.each( jQuery(this)[0].attributes, function ( index, attribute ) { - if ( attribute.name.indexOf( 'data-cond' ) != -1 ) { - // replace "data-cond-" - var cond_field_id_and_attr = attribute.name.slice( 10 ); - // return "n" - var cond_field_id = cond_field_id_and_attr.substring( 1, 0 ); - //replace "n-" - var cond_field_attr = cond_field_id_and_attr.slice( 2 ); - - if ( typeof parse_attrs[cond_field_id] == 'undefined' ) - parse_attrs[cond_field_id] = {}; - - parse_attrs[cond_field_id][cond_field_attr] = attribute.value; - } - }); - - jQuery.each( parse_attrs, function ( ii, dd ) { - var obj = {'field' :{ - owner: key, - action: dd.action, - parent: dd.field, - operator: dd.operator, - value: dd.value, - condition: { - owner: key, - action: dd.action, - operator: dd.operator, - value: dd.value - } - }}; - - arr_all_conditions.push(obj); - }); - - um_field_default_values[jQuery(this).data('key')] = um_get_field_default_value( jQuery(this) ); - }); - - jQuery.each( arr_field_keys, function ( i, field_key ) { - um_field_conditions[field_key] = um_get_field_children( field_key ); - }); - - jQuery( '.um-field[data-key]:visible' ).each( function() { - var $wrap_dom = jQuery(this); - var me = um_get_field_element( $wrap_dom ); - if ( typeof me.trigger !== 'undefined' ) { - me.trigger( 'change' ); - } - }); - - } - - - um_init_field_conditions(); }); \ No newline at end of file diff --git a/assets/js/um-conditional.min.js b/assets/js/um-conditional.min.js index 0973ad03..1e3d3705 100644 --- a/assets/js/um-conditional.min.js +++ b/assets/js/um-conditional.min.js @@ -1 +1 @@ -jQuery(document).ready(function(){var e,n=[],d={},r={};function o(e){switch(s(e)){case"text":case"number":case"date":case"textarea":case"select":case"multiselect":case"radio":case"checkbox":return e.find("input,textarea,select")}return""}function s(e){var a="",i=e.attr("class");return jQuery.each(i.split(" "),function(e,i){-1!=i.indexOf("um-field-type")&&(a=i.split("_")[1])}),a}function l(e,i,a){var t,n=!1;a=!!a;for(t in i)if(a&&i[t]===e||!a&&i[t]==e){n=!0;break}return n}function i(a,e){var i,t=a.parents(".um-field[data-key]").data("key"),n=d[t],c=(i=a,um_live_field=i.parents(".um-field").data("key"),um_live_value=i.val(),i.is(":checkbox")&&(um_live_value="",1parseInt(i.value)?r[i.owner][e]=!0:r[i.owner][e]=!1),"less than"==i.operator&&(jQuery.isNumeric(i.value)&&parseInt(c)select'),u=jQuery('.um-profile-body .um-field[data-key="'+s+'"] .um-field-area>textarea'),c=jQuery('.um-profile-body .um-field[data-key="'+s+'"] .um-field-block');0viewing) { $array['conditional'] = ''; - foreach ($array['conditions'] as $cond_id => $cond) { - $array['conditional'] .= ' data-cond-' . $cond_id . '-action="' . $cond[0] . '" data-cond-' . $cond_id . '-field="' . $cond[1] . '" data-cond-' . $cond_id . '-operator="' . $cond[2] . '" data-cond-' . $cond_id . '-value="' . $cond[3] . '"'; - } + $cond_data = json_encode($array['conditions']); + $array['conditional'] .= " data-conds='".$cond_data."'"; $array['classes'] .= ' um-is-conditional';