From 97b712a4d2820e09d6b1d0d920fe02749b8dfd6a Mon Sep 17 00:00:00 2001 From: andrewshuba Date: Wed, 31 Oct 2018 14:55:33 +0200 Subject: [PATCH] style and/or conditions. fix reset all fields. fix bug add 2 fields --- includes/admin/assets/css/um-admin-modal.css | 38 ++++++ includes/admin/assets/js/um-admin-modal.js | 129 ++++++++++--------- includes/admin/core/class-admin-builder.php | 6 +- 3 files changed, 109 insertions(+), 64 deletions(-) diff --git a/includes/admin/assets/css/um-admin-modal.css b/includes/admin/assets/css/um-admin-modal.css index 837ba538..43baf6eb 100644 --- a/includes/admin/assets/css/um-admin-modal.css +++ b/includes/admin/assets/css/um-admin-modal.css @@ -300,9 +300,47 @@ span.um-admin-icon-clear i {font-size: 20px;vertical-align: middle;} .um-admin-new-condition-compare-and { margin-top: 10px !important; margin-bottom: 10px !important; + text-align: center; } .um-admin-new-condition-compare-or { display: block !important; width: 150px; margin-top: 20px !important; + text-align: center; +} +hr.or-devider { + border-width: 3px; + position: relative; + overflow: visible; + margin: 10px 0; +} +hr.or-devider:after { + content: 'OR'; + display: block; + position: absolute; + background: #fff; + left: 50%; + margin: -11px 0 0 -13px; + top: 50%; + text-align: center; + color: #000; + width: 26px; +} +.um-admin-cur-condition { + position: relative; +} +.um-admin-cur-condition:after { + clear: both; + content: ''; + display: block; +} +.um-admin-cur-condition + .um-admin-cur-condition:before { + content: 'AND'; + display: block; + position: absolute; + top: -25px; + right: -7px; +} +.um-admin-cur-condition p:last-of-type('p') { + float: right; } \ No newline at end of file diff --git a/includes/admin/assets/js/um-admin-modal.js b/includes/admin/assets/js/um-admin-modal.js index f431068d..97457da0 100644 --- a/includes/admin/assets/js/um-admin-modal.js +++ b/includes/admin/assets/js/um-admin-modal.js @@ -14,22 +14,22 @@ function um_admin_live_update_scripts(count) { if ( jQuery('.um-admin-colorpicker').length ) { jQuery('.um-admin-colorpicker').wpColorPicker(); } - + } function um_admin_new_modal( id, ajax, size ){ - + var modal = jQuery('body').find('.um-admin-overlay'); - + jQuery('.tipsy').hide(); - + um_admin_remove_modal(); - + jQuery('body').addClass('um-admin-modal-open').append('
'); jQuery('#' + id).prependTo('.um-admin-modal'); jQuery('#' + id).show(); jQuery('.um-admin-modal').show(); - + jQuery('.um-admin-modal-head').append(''); if ( ajax == true ) { @@ -39,7 +39,7 @@ function um_admin_new_modal( id, ajax, size ){ } else { um_admin_modal_responsive(); } - + } function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { @@ -48,14 +48,14 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { in_sub_row = ''; in_column = ''; in_group = ''; - + if ( jQuery('.um-col-demon-settings').data('in_column') ) { in_row = jQuery('.um-col-demon-settings').data('in_row'); in_sub_row = jQuery('.um-col-demon-settings').data('in_sub_row'); in_column = jQuery('.um-col-demon-settings').data('in_column'); in_group = jQuery('.um-col-demon-settings').data('in_group'); } - + jQuery.ajax({ url: wp.ajax.settings.url, type: 'POST', @@ -67,9 +67,9 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { success: function(data){ jQuery('.um-admin-modal').find('.um-admin-modal-body').html( data ); - + um_responsive(); - + um_admin_live_update_scripts(count); jQuery( "#_custom_dropdown_options_source" ).trigger('blur'); @@ -81,11 +81,11 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { tinyMCE.execCommand('mceRemoveEditor', true, 'um_editor_edit'); jQuery('.um-admin-editor:visible').html( jQuery('.um-hidden-editor-edit').contents() ); tinyMCE.execCommand('mceAddEditor', true, 'um_editor_edit'); - + jQuery('.switch-html').trigger('click'); jQuery('.switch-html').trigger('click'); jQuery('.switch-tmce').trigger('click'); - + jQuery('#um_editor_edit_ifr').height(200); var editor = tinyMCE.get('um_editor_edit'); @@ -97,19 +97,19 @@ function um_admin_modal_ajaxcall( act_id, arg1, arg2, arg3 ) { tinyMCE.execCommand('mceRemoveEditor', true, 'um_editor_new'); jQuery('.um-admin-editor:visible').html( jQuery('.um-hidden-editor-new').contents() ); tinyMCE.execCommand('mceAddEditor', true, 'um_editor_new'); - + jQuery('.switch-html').trigger('click'); jQuery('.switch-html').trigger('click'); jQuery('.switch-tmce').trigger('click'); - + jQuery('#um_editor_new_ifr').height(200); - + } - + } um_init_tooltips(); - + }, error: function(data){ @@ -126,23 +126,23 @@ function um_admin_modal_responsive() { function um_admin_remove_modal(){ if ( jQuery('.um-admin-editor:visible').length > 0 ) { - + if ( jQuery('.um-admin-modal:visible').find('form').parent().attr('id') == 'UM_edit_field' ) { - + tinyMCE.execCommand('mceRemoveEditor', true, 'um_editor_edit'); jQuery('.um-hidden-editor-edit').html( jQuery('.um-admin-editor:visible').contents() ); tinyMCE.execCommand('mceAddEditor', true, 'um_editor_edit'); - + } else { - + tinyMCE.execCommand('mceRemoveEditor', true, 'um_editor_new'); jQuery('.um-hidden-editor-new').html( jQuery('.um-admin-editor:visible').contents() ); tinyMCE.execCommand('mceAddEditor', true, 'um_editor_new'); - + } - + } - + jQuery('body').removeClass('um-admin-modal-open'); jQuery('.um-admin-modal div[id^="UM_"]').hide().appendTo('body'); jQuery('.um-admin-modal,.um-admin-overlay').remove(); @@ -170,7 +170,7 @@ function um_admin_modal_add_attr( id, value ) { **/ jQuery(document).ready(function() { - + /** disable link **/ @@ -178,7 +178,7 @@ jQuery(document).ready(function() { e.preventDefault(); return false; }); - + /** toggle area **/ @@ -188,9 +188,9 @@ jQuery(document).ready(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(); + cond_value.attr('disabled','disabled'); } else { - cond_value.show(); + cond_value.removeAttr('disabled'); } }); @@ -215,9 +215,9 @@ jQuery(document).ready(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(); + cond_value.attr('disabled','disabled'); } else { - cond_value.show(); + cond_value.removeAttr('disabled'); } }); @@ -233,9 +233,13 @@ jQuery(document).ready(function() { length = content.find('.um-admin-cur-condition').length; if ( length < 5 ) { - //content.find('select').select2('destroy'); - var template = jQuery('.um-admin-btn-content').find('.um-admin-cur-condition-template').clone(); + if( jQuery('#UM_add_field .um-admin-btn-content .um-admin-cur-condition-template').length>0 ){ + var template = jQuery('#UM_add_field .um-admin-btn-content').find('.um-admin-cur-condition-template').clone(); + } else { + var template = jQuery('#UM_edit_field .um-admin-btn-content').find('.um-admin-cur-condition-template').clone(); + } + template.find('input[type=text]').val(''); template.find('select').val(''); @@ -243,7 +247,7 @@ jQuery(document).ready(function() { template.find('#_conditional_compare').val('and'); var group = jQuery(this).prev('.um-admin-cur-condition').find('[id^="_conditional_group"]').val(); - console.log(group); + template.find('#_conditional_group').val(group); var templatehtml = template.html(); template.insertBefore( jQuery(this) ); @@ -254,9 +258,9 @@ jQuery(document).ready(function() { var group = jQuery('.condition-wrap .um-admin-cur-condition').last().find('[id^="_conditional_group"]').val(); template.find('#_conditional_group').val(parseInt(group)+1); var button = jQuery('.um-admin-new-condition-compare-and:first').clone(); - $( "
" ).insertBefore( jQuery(this) ); + jQuery('
').insertBefore( jQuery(this) ); template.insertBefore( jQuery(this) ); - button.insertBefore( jQuery(this) ); + button.addClass('for-remove-on-reset').insertBefore( jQuery(this) ); } @@ -291,20 +295,23 @@ jQuery(document).ready(function() { } ); }); - + /** reset conditions **/ jQuery(document).on('click', '.um-admin-reset-conditions a', function(){ - var content = jQuery(this).parents('.um-admin-btn-content'); - content.find('.um-admin-cur-condition').slice(1).remove(); - content.find('input[type=text]').val(''); - content.find('select').val(''); - jQuery('.um-admin-new-condition').removeClass('disabled'); - um_admin_live_update_scripts(); - um_admin_modal_responsive(); + var content = jQuery(this).parents('.um-admin-btn-content'); + content.find('.um-admin-cur-condition').slice(1).remove(); + content.find('input[type=text]').val(''); + content.find('select').val(''); + jQuery('.um-admin-new-condition').removeClass('disabled'); + jQuery('.condition-wrap hr').remove(); + jQuery('.condition-wrap .for-remove-on-reset').remove(); + + um_admin_live_update_scripts(); + um_admin_modal_responsive(); }); - + /** remove a condition **/ @@ -343,44 +350,44 @@ jQuery(document).ready(function() { um_admin_live_update_scripts(); um_admin_modal_responsive(); }); - + /** remove modal via action **/ jQuery(document).on('click', '.um-admin-overlay, a[data-action="UM_remove_modal"]', function(){ um_admin_remove_modal(); }); - + /** fire new modal **/ jQuery(document).on('click', 'a[data-modal^="UM_"], span[data-modal^="UM_"]', function(e){ - + e.preventDefault(); var modal_id = jQuery(this).attr('data-modal'); if ( jQuery(this).attr('data-back') ) { - + jQuery('#UM_fonticons').find('a.um-admin-modal-back').attr("data-modal", jQuery(this).attr('data-back') ); var current_icon = jQuery( '#' + jQuery(this).attr('data-back') ).find('input#_icon').val(); if ( current_icon == '' ) { jQuery('#UM_fonticons').find('.um-admin-icons span').removeClass('highlighted'); } - + } - + if ( jQuery(this).data('dynamic-content') ) { um_admin_new_modal( modal_id, true, jQuery(this).data('modal-size') ); um_admin_modal_ajaxcall( jQuery(this).data('dynamic-content'), jQuery(this).data('arg1'), jQuery(this).data('arg2'), jQuery(this).data('arg3') ); } else { um_admin_new_modal( modal_id ); } - + return false; }); - + /** choose font icon **/ @@ -390,7 +397,7 @@ jQuery(document).ready(function() { jQuery(this).addClass('highlighted'); jQuery('#UM_fonticons').find('a.um-admin-modal-back').attr("data-code", icon); }); - + /** submit font icon **/ @@ -412,7 +419,7 @@ jQuery(document).ready(function() { um_admin_remove_modal(); } }); - + /** restore font icon **/ @@ -427,7 +434,7 @@ jQuery(document).ready(function() { element.find('.um-admin-icon-value').html('No Icon'); jQuery(this).hide(); }); - + /** search font icons **/ @@ -441,14 +448,14 @@ jQuery(document).ready(function() { um_admin_modal_responsive(); }); - + /** * Retrieve options from a callback function */ jQuery(document).on('blur',"#_custom_dropdown_options_source", function(){ var me = jQuery(this); var _options = jQuery('textarea[id=_options]'); - + if( me.val() != '' ){ var um_option_callback = me.val(); jQuery.ajax({ @@ -456,17 +463,17 @@ jQuery(document).ready(function() { type: 'POST', data: { action:'populate_dropdown_options',um_option_callback: um_option_callback }, complete: function(){ - + }, success: function( response ){ var arr_opts = []; - + for (var key in response.data ){ arr_opts.push( response.data[ key ] ); } _options.val( arr_opts.join('\n') ); - + } }); } diff --git a/includes/admin/core/class-admin-builder.php b/includes/admin/core/class-admin-builder.php index ec4ba069..7f280250 100644 --- a/includes/admin/core/class-admin-builder.php +++ b/includes/admin/core/class-admin-builder.php @@ -243,7 +243,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) {
-

+

*/ ?>

@@ -253,9 +253,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Builder' ) ) { if ( $k == 0 ) $k = ''; ?> - + -
+