From 1725444b022b5e3d2e6dc3f741bf99669f7cd65a Mon Sep 17 00:00:00 2001 From: andrewshuba Date: Mon, 29 Oct 2018 14:38:37 +0200 Subject: [PATCH] remove value field if empty/not empty remove conditional logic if there aren't any fields in forms remove conditions for field from other forms --- includes/admin/assets/js/um-admin-modal.js | 51 +++++++++++++++++----- includes/core/class-fields.php | 34 +++++++++++++++ 2 files changed, 73 insertions(+), 12 deletions(-) diff --git a/includes/admin/assets/js/um-admin-modal.js b/includes/admin/assets/js/um-admin-modal.js index 670c0e59..f431068d 100644 --- a/includes/admin/assets/js/um-admin-modal.js +++ b/includes/admin/assets/js/um-admin-modal.js @@ -1,14 +1,19 @@ -function um_admin_live_update_scripts() { +function um_admin_live_update_scripts(count) { - /*jQuery('.um-admin-modal-body:visible select').select2({ - allowClear: false, - minimumResultsForSearch: 10 - });*/ + var metakey = jQuery('.um-admin-modal #UM_edit_field #_metakey').val(); - jQuery('.um-adm-conditional').each(function(){jQuery(this).trigger('change');}); - if ( jQuery('.um-admin-colorpicker').length ) { - jQuery('.um-admin-colorpicker').wpColorPicker(); - } + if( count === 0 ){ + jQuery('.um_add_field .um-admin-btn-toggle').hide(); + } else if( metakey && count === 1 ){ + jQuery('.um_add_field .um-admin-btn-toggle').hide(); + } else { + jQuery('.um_add_field .um-admin-btn-toggle').show(); + } + + jQuery('.um-adm-conditional').each(function(){jQuery(this).trigger('change');}); + if ( jQuery('.um-admin-colorpicker').length ) { + jQuery('.um-admin-colorpicker').wpColorPicker(); + } } @@ -38,7 +43,7 @@ function um_admin_new_modal( id, ajax, size ){ } function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { - + var count = jQuery('.um-admin-builder .um-admin-drag-fld').length; in_row = ''; in_sub_row = ''; in_column = ''; @@ -65,7 +70,7 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { um_responsive(); - um_admin_live_update_scripts(); + um_admin_live_update_scripts(count); jQuery( "#_custom_dropdown_options_source" ).trigger('blur'); @@ -178,6 +183,17 @@ jQuery(document).ready(function() { toggle area **/ jQuery(document).on('click', '.um-admin-btn-toggle a', function(e){ + + jQuery('.condition-wrap .um-admin-cur-condition').each(function () { + var cond_operator = jQuery(this).find('[id^="_conditional_operator"]').val(); + var cond_value = jQuery(this).find('[id^="_conditional_value"]'); + if( cond_operator === 'empty' || cond_operator === 'not empty' ){ + cond_value.hide(); + } else { + cond_value.show(); + } + }); + var content = jQuery(this).parent().find('.um-admin-btn-content'); var link = jQuery(this); if ( content.is(':hidden') ) { @@ -192,7 +208,18 @@ jQuery(document).ready(function() { um_admin_modal_responsive(); }); - + /** + check if empty/not empty + **/ + jQuery(document).on('change', 'select[id^="_conditional_operator"]', function(){ + var cond_operator = jQuery(this).val(); + var cond_value = jQuery(this).closest('.um-admin-cur-condition').find('[id^="_conditional_value"]'); + if( cond_operator === 'empty' || cond_operator === 'not empty' ){ + cond_value.hide(); + } else { + cond_value.show(); + } + }); /** clone a condition diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 0b7eaf5d..6736c603 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -263,6 +263,40 @@ if ( ! class_exists( 'um\core\Fields' ) ) { } } + $keys = array_keys($fields); + $last_key = end($keys); + unset($fields[$last_key]['conditions']); + unset($fields[$last_key]['conditional_action']); + unset($fields[$last_key]['conditional_action1']); + unset($fields[$last_key]['conditional_action2']); + unset($fields[$last_key]['conditional_action3']); + unset($fields[$last_key]['conditional_action4']); + unset($fields[$last_key]['conditional_field']); + unset($fields[$last_key]['conditional_field1']); + unset($fields[$last_key]['conditional_field2']); + unset($fields[$last_key]['conditional_field3']); + unset($fields[$last_key]['conditional_field4']); + unset($fields[$last_key]['conditional_operator']); + unset($fields[$last_key]['conditional_operator1']); + unset($fields[$last_key]['conditional_operator2']); + unset($fields[$last_key]['conditional_operator3']); + unset($fields[$last_key]['conditional_operator4']); + unset($fields[$last_key]['conditional_value']); + unset($fields[$last_key]['conditional_value1']); + unset($fields[$last_key]['conditional_value2']); + unset($fields[$last_key]['conditional_value3']); + unset($fields[$last_key]['conditional_value4']); + unset($fields[$last_key]['conditional_group']); + unset($fields[$last_key]['conditional_group1']); + unset($fields[$last_key]['conditional_group2']); + unset($fields[$last_key]['conditional_group3']); + unset($fields[$last_key]['conditional_group4']); + unset($fields[$last_key]['conditional_compare']); + unset($fields[$last_key]['conditional_compare1']); + unset($fields[$last_key]['conditional_compare2']); + unset($fields[$last_key]['conditional_compare3']); + unset($fields[$last_key]['conditional_compare4']); + // add field to form UM()->query()->update_attr( 'custom_fields', $form_id, $fields );