diff --git a/includes/admin/assets/css/um-admin-misc.css b/includes/admin/assets/css/um-admin-misc.css index 6aeb7869..eeb376ee 100644 --- a/includes/admin/assets/css/um-admin-misc.css +++ b/includes/admin/assets/css/um-admin-misc.css @@ -258,3 +258,7 @@ p.disabled-on-off .um-admin-yesno *{ visibility: hidden; height: 0; } + +.um-admin-cur-condition-template { + display: none; +} diff --git a/includes/admin/assets/js/um-admin-ajax.js b/includes/admin/assets/js/um-admin-ajax.js index a1df562d..a65eeab8 100644 --- a/includes/admin/assets/js/um-admin-ajax.js +++ b/includes/admin/assets/js/um-admin-ajax.js @@ -28,7 +28,7 @@ jQuery(document).ready(function() { jQuery('.tipsy').hide(); um_admin_remove_modal(); - + console.log(um_admin_ajax_data.ajax_url); jQuery.ajax({ url: um_admin_ajax_data.ajax_url, type: 'POST', diff --git a/includes/admin/assets/js/um-admin-field.js b/includes/admin/assets/js/um-admin-field.js index 87866a1e..007c8965 100644 --- a/includes/admin/assets/js/um-admin-field.js +++ b/includes/admin/assets/js/um-admin-field.js @@ -1,24 +1,8 @@ jQuery(document).ready(function() { /* Remove deleted condition fields */ - jQuery(document).on('click', '.um-admin-btn-toggle a', function(){ - var fields = jQuery('.um-admin-btn-content').find('[name*="_conditional_field"]'); + jQuery(document).on('click', '', function(){ - jQuery.each(fields, function(index, value) { - if ( !jQuery(value).val() ) { - console.log(jQuery(value).parents('.um-admin-cur-condition').find('.um-admin-remove-condition')); - jQuery(value).parents('.um-admin-cur-condition').remove(); - } - }); - - var form = jQuery('form.um_add_field'); - - jQuery.ajax({ - url: um_admin_field_data.ajax_url, - type: 'POST', - dataType: 'json', - data: form.serialize() - }); }); /* Remove field permanently */ diff --git a/includes/admin/assets/js/um-admin-modal.js b/includes/admin/assets/js/um-admin-modal.js index 3b690ee3..e66995ac 100644 --- a/includes/admin/assets/js/um-admin-modal.js +++ b/includes/admin/assets/js/um-admin-modal.js @@ -198,21 +198,26 @@ jQuery(document).ready(function() { if ( jQuery(this).hasClass('disabled') ) return false; - var content = jQuery(this).parents('.um-admin-btn-content'); - var length = content.find('.um-admin-cur-condition').length; + var content = jQuery(this).parents('.um-admin-btn-content'), + length = content.find('.um-admin-cur-condition').length; + if ( length < 5 ) { //content.find('select').select2('destroy'); - var cloned = jQuery(this).parents('.um-admin-cur-condition').clone(); - cloned.find('input[type=text],select').each(function(){ + var template = jQuery('.um-admin-btn-content').find('.um-admin-cur-condition-template').clone(); + + template.find('input[type=text],select').each(function(){ jQuery(this).attr('id', jQuery(this).attr('id') + length ); jQuery(this).attr('name', jQuery(this).attr('name') + length ); }); - cloned.find('input[type=text]').val(''); - cloned.find('.um-admin-new-condition').replaceWith('

'); - cloned.appendTo( content ); - cloned.find('select').val(''); + template.find('input[type=text]').val(''); + template.find('select').val(''); + + template.appendTo( content ); + jQuery(template).removeClass("um-admin-cur-condition-template"); + jQuery(template).addClass("um-admin-cur-condition"); + um_admin_live_update_scripts(); um_admin_modal_responsive(); } else { diff --git a/includes/admin/core/class-admin-builder.php b/includes/admin/core/class-admin-builder.php index 3e8d2e30..3f61932c 100644 --- a/includes/admin/core/class-admin-builder.php +++ b/includes/admin/core/class-admin-builder.php @@ -231,10 +231,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
-

+

+

- $arr ) { @@ -247,11 +248,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { field_input( '_conditional_operator' . $k, $form_id ); ?> field_input( '_conditional_value' . $k, $form_id ); ?> - -

- -

- +

@@ -274,7 +271,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { +
+ field_input( '_conditional_action', $form_id ); ?> + field_input( '_conditional_field', $form_id ); ?> + field_input( '_conditional_operator', $form_id ); ?> + field_input( '_conditional_value', $form_id ); ?> + +

+ +
+
diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 40c2cb9e..a086dd05 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -182,7 +182,37 @@ if ( ! class_exists( 'um\core\Fields' ) ) { */ function delete_field_from_form( $id, $form_id ) { $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); + if (isset( $fields[$id] )) { + $condition_fields = get_option( 'um_fields' ); + + foreach ( $condition_fields as $key => $value ) { + $deleted_field = array_search( $id, $value ); + + if ( $key != $id && $deleted_field != false ) { + $deleted_field_id = str_replace( 'conditional_field', '', $deleted_field ); + + if ( $deleted_field_id == '' ) { + $arr_id = 0; + } else { + $arr_id = $deleted_field_id; + } + + unset( $condition_fields[$key]['conditional_action' . $deleted_field_id] ); + unset( $condition_fields[$key][$deleted_field] ); + unset( $condition_fields[$key]['conditional_operator' . $deleted_field_id] ); + unset( $condition_fields[$key]['conditional_value' . $deleted_field_id] ); + unset( $condition_fields[$key]['conditions'][$arr_id] ); + + unset( $fields[$key]['conditional_action' . $deleted_field_id] ); + unset( $fields[$key][$deleted_field] ); + unset( $fields[$key]['conditional_operator' . $deleted_field_id] ); + unset( $fields[$key]['conditional_value' . $deleted_field_id] ); + unset( $fields[$key]['conditions'][$arr_id] ); + } + } + + update_option( 'um_fields' , $condition_fields ); unset( $fields[$id] ); UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); }