Merge branch 'fix_conditions_fields_logic' of https://github.com/ultimatemember/ultimatemember into release/2.0.18

This commit is contained in:
nikitozzzzzzz
2018-06-07 18:01:46 +03:00
8 changed files with 93 additions and 46 deletions
+5 -3
View File
@@ -12,7 +12,6 @@ jQuery(document).ready( function (){
function um_get_field_default_value( $dom ) {
var default_value = '';
var type = um_get_field_type($dom);
switch ( type ) {
case 'text':
@@ -25,7 +24,6 @@ jQuery(document).ready( function (){
case 'multiselect':
default_value = $dom.find('select').val();
break;
case 'radio':
@@ -249,7 +247,6 @@ jQuery(document).ready( function (){
}
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 {
@@ -515,6 +512,11 @@ jQuery(document).ready( function (){
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);
@@ -258,3 +258,7 @@ p.disabled-on-off .um-admin-yesno *{
visibility: hidden;
height: 0;
}
.um-admin-cur-condition-template {
display: none;
}
+1 -1
View File
@@ -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',
+12 -14
View File
@@ -3,13 +3,13 @@ jQuery(document).ready(function() {
/* Remove field permanently */
jQuery(document).on('click', '.um-admin-btns a span.remove', function(e){
e.preventDefault();
if (confirm('This will permanently delete this custom field from database')) {
if ( confirm( 'This will permanently delete this custom field from database' ) ) {
jQuery(this).parents('a').remove();
arg1 = jQuery(this).parents('a').data('arg1');
jQuery.ajax({
url: um_admin_field_data.do_ajax_url,
type: 'POST',
@@ -21,13 +21,12 @@ jQuery(document).ready(function() {
}
});
}
return false;
});
/* Add a Field */
jQuery(document).on('submit', 'form.um_add_field', function(e){
@@ -50,9 +49,8 @@ jQuery(document).ready(function() {
form.css({'opacity': 1});
},
success: function(data){
if (data.error){
c = 0;
jQuery.each(data.error, function(i, v){
c++;
@@ -61,11 +59,11 @@ jQuery(document).ready(function() {
form.find('.um-admin-error-block').show().html(v);
}
});
um_admin_modal_responsive();
} else {
jQuery('.um-col-demon-settings').data('in_row', '');
jQuery('.um-col-demon-settings').data('in_sub_row', '');
jQuery('.um-col-demon-settings').data('in_column', '');
+13 -8
View File
@@ -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('<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>');
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 {
+20 -12
View File
@@ -167,27 +167,27 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
function um_admin_pre_save_field_to_form( $array ){
unset( $array['conditions'] );
if ( isset($array['conditional_field']) && !empty( $array['conditional_action'] ) && !empty( $array['conditional_operator'] ) ) {
$array['conditional_value'] = ! empty( $array['conditional_value'] ) ? $array['conditional_value'] : '';
$array['conditional_value'] = isset( $array['conditional_value'] ) ? $array['conditional_value'] : '';
$array['conditions'][] = array( $array['conditional_action'], $array['conditional_field'], $array['conditional_operator'], $array['conditional_value'] );
}
if ( isset($array['conditional_field1']) && !empty( $array['conditional_action1'] ) && !empty( $array['conditional_operator1'] ) ) {
$array['conditional_value1'] = ! empty( $array['conditional_value1'] ) ? $array['conditional_value1'] : '';
$array['conditional_value1'] = isset( $array['conditional_value1'] ) ? $array['conditional_value1'] : '';
$array['conditions'][] = array( $array['conditional_action1'], $array['conditional_field1'], $array['conditional_operator1'], $array['conditional_value1'] );
}
if ( isset($array['conditional_field2']) && !empty( $array['conditional_action2'] ) && !empty( $array['conditional_operator2'] ) ) {
$array['conditional_value2'] = ! empty( $array['conditional_value2'] ) ? $array['conditional_value2'] : '';
$array['conditional_value2'] = isset( $array['conditional_value2'] ) ? $array['conditional_value2'] : '';
$array['conditions'][] = array( $array['conditional_action2'], $array['conditional_field2'], $array['conditional_operator2'], $array['conditional_value2'] );
}
if ( isset($array['conditional_field3']) && !empty( $array['conditional_action3'] ) && !empty( $array['conditional_operator3'] ) ) {
$array['conditional_value3'] = ! empty( $array['conditional_value3'] ) ? $array['conditional_value3'] : '';
$array['conditional_value3'] = isset( $array['conditional_value3'] ) ? $array['conditional_value3'] : '';
$array['conditions'][] = array( $array['conditional_action3'], $array['conditional_field3'], $array['conditional_operator3'], $array['conditional_value3'] );
}
if ( isset($array['conditional_field4']) && !empty( $array['conditional_action4'] ) && !empty( $array['conditional_operator4'] ) ) {
$array['conditional_value4'] = ! empty( $array['conditional_value4'] ) ? $array['conditional_value4'] : '';
$array['conditional_value4'] = isset( $array['conditional_value4'] ) ? $array['conditional_value4'] : '';
$array['conditions'][] = array( $array['conditional_action4'], $array['conditional_field4'], $array['conditional_operator4'], $array['conditional_value4'] );
}
@@ -231,10 +231,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
<div class="um-admin-btn-content">
<p class="um-admin-reset-conditions"><a href="#" class="button button-primary"><?php _e( 'Reset all rules', 'ultimate-member' ); ?></a></p>
<p><a href="#" class="um-admin-new-condition button button-primary um-admin-tipsy-n" title="Add new condition"><?php _e( 'Add new rule', 'ultimate-member' ); ?></a></p>
<p class="um-admin-reset-conditions"><a href="#" class="button"><?php _e( 'Reset all rules', 'ultimate-member' ); ?></a></p>
<div class="um-admin-clear"></div>
<?php if ( isset( $edit_array['conditions'] ) ) {
<?php if ( isset( $edit_array['conditions'] ) && count( $edit_array['conditions'] ) != 0 ) {
foreach ( $edit_array['conditions'] as $k => $arr ) {
@@ -247,11 +248,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
<?php $metabox->field_input( '_conditional_operator' . $k, $form_id ); ?>
<?php $metabox->field_input( '_conditional_value' . $k, $form_id ); ?>
<?php if ( $k == '' ) { ?>
<p><a href="#" class="um-admin-new-condition button um-admin-tipsy-n" title="Add new condition"><i class="um-icon-plus" style="margin-right:0!important"></i></a></p>
<?php } else { ?>
<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>
<?php } ?>
<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>
<div class="um-admin-clear"></div>
</div>
@@ -274,7 +271,17 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
</div>
<?php } ?>
<div class="um-admin-cur-condition-template">
<?php $metabox->field_input( '_conditional_action', $form_id ); ?>
<?php $metabox->field_input( '_conditional_field', $form_id ); ?>
<?php $metabox->field_input( '_conditional_operator', $form_id ); ?>
<?php $metabox->field_input( '_conditional_value', $form_id ); ?>
<p><a href="#" class="um-admin-remove-condition button um-admin-tipsy-n" title="Remove condition"><i class="um-icon-close" style="margin-right:0!important"></i></a></p>
<div class="um-admin-clear"></div>
</div>
</div>
</div>
@@ -659,6 +666,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
$output['error'] = apply_filters( 'um_admin_field_update_error_handling', $output['error'], $array );
extract( $array['post'] );
if ( empty( $output['error'] ) ){
$save = array();
+1 -1
View File
@@ -1313,7 +1313,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
?>
<p>
<input type="text" name="<?php echo $attribute; ?>" id="<?php echo $attribute; ?>" value="<?php echo ( $this->edit_mode_value ) ? $this->edit_mode_value : ''; ?>" placeholder="<?php _e( 'Value', 'ultimate-member' ); ?>" style="width: 150px!important;position: relative;top: -1px;" />
<input type="text" name="<?php echo $attribute; ?>" id="<?php echo $attribute; ?>" value="<?php echo isset( $this->edit_mode_value ) ? $this->edit_mode_value : ''; ?>" placeholder="<?php _e( 'Value', 'ultimate-member' ); ?>" style="width: 150px!important;position: relative;top: -1px;" />
</p>
<?php
+37 -7
View File
@@ -182,8 +182,38 @@ 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] )) {
unset( $fields[$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 );
}
}
@@ -4010,23 +4040,23 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
switch ($act_id) {
case 'um_admin_duplicate_field':
UM()->fields()->duplicate_field( $arg1, $arg2 );
$this->duplicate_field( $arg1, $arg2 );
break;
case 'um_admin_remove_field_global':
UM()->fields()->delete_field_from_db( $arg1 );
$this->delete_field_from_db( $arg1 );
break;
case 'um_admin_remove_field':
UM()->fields()->delete_field_from_form( $arg1, $arg2 );
$this->delete_field_from_form( $arg1, $arg2 );
break;
case 'um_admin_add_field_from_predefined':
UM()->fields()->add_field_from_predefined( $arg1, $arg2, $position );
$this->add_field_from_predefined( $arg1, $arg2, $position );
break;
case 'um_admin_add_field_from_list':
UM()->fields()->add_field_from_list( $arg1, $arg2, $position );
$this->add_field_from_list( $arg1, $arg2, $position );
break;
}