diff --git a/assets/js/um-blocks.js b/assets/js/um-blocks.js index f6da25c9..2b258d3b 100644 --- a/assets/js/um-blocks.js +++ b/assets/js/um-blocks.js @@ -4,6 +4,46 @@ jQuery(window).on( 'load', function($) { jQuery(mutation.addedNodes).find('.um.um-directory').each(function() { jQuery('.um-directory input, .um-directory select, .um-directory button').attr('disabled', 'disabled'); jQuery('.um-directory a').attr('href', ''); + + if ( typeof( jQuery.fn.select2 ) === 'function' ) { + jQuery(".um-s1").each( function( e ) { + var obj = jQuery(this); + obj.select2({ + allowClear: true, + dropdownParent: obj.parent() + }).on( 'change', unselectEmptyOption ); + } ); + + jQuery(".um-s2").each( function( e ) { + var obj = jQuery(this); + + // fix https://github.com/ultimatemember/ultimatemember/issues/941 + // using .um-custom-shortcode-tab class as temporarily solution + var atts = {}; + if ( obj.parents('.um-custom-shortcode-tab').length ) { + atts = { + allowClear: false + }; + } else { + atts = { + allowClear: false, + minimumResultsForSearch: 10, + dropdownParent: obj.parent() + }; + } + obj.select2( atts ).on( 'change', unselectEmptyOption ); + } ); + + jQuery(".um-s3").each( function( e ) { + var obj = jQuery(this); + + obj.select2({ + allowClear: false, + minimumResultsForSearch: -1, + dropdownParent: obj.parent() + }).on( 'change', unselectEmptyOption ); + } ); + } }); jQuery(mutation.addedNodes).find('.um.um-profile').each(function() { jQuery('.um-profile input, .um-profile select, .um-profile button').attr('disabled', 'disabled'); @@ -23,3 +63,17 @@ jQuery(window).on( 'load', function($) { observer.observe(document, {attributes: false, childList: true, characterData: false, subtree:true}); }); + +function unselectEmptyOption( e ) { + var $element = jQuery( e.currentTarget ); + var $selected = $element.find(':selected'); + + if ( $selected.length > 1 ) { + $selected.each( function ( i, option ) { + if ( option.value === '' ) { + option.selected = false; + $element.trigger( 'change' ); + } + }); + } +}`` diff --git a/includes/admin/core/class-admin-enqueue.php b/includes/admin/core/class-admin-enqueue.php index 686847fe..b3f5669a 100644 --- a/includes/admin/core/class-admin-enqueue.php +++ b/includes/admin/core/class-admin-enqueue.php @@ -98,18 +98,20 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { * Enqueue Gutenberg Block Editor assets */ public function block_editor() { - wp_register_style( 'um_ui', um_url . '/assets/css/jquery-ui.css', array(), ultimatemember_version ); - wp_register_style( 'um_members', um_url . '/assets/css/um-members.css', array( 'um_ui' ), ultimatemember_version ); + wp_register_style( 'um_ui', um_url . 'assets/css/jquery-ui.css', array(), ultimatemember_version ); + wp_register_style( 'um_members', um_url . 'assets/css/um-members.css', array( 'um_ui' ), ultimatemember_version ); if ( is_rtl() ) { - wp_register_style( 'um_members_rtl', um_url . '/assets/css/um-members-rtl.css', array( 'um_members' ), ultimatemember_version ); + wp_register_style( 'um_members_rtl', um_url . 'assets/css/um-members-rtl.css', array( 'um_members' ), ultimatemember_version ); } - wp_register_style( 'um_styles', um_url . '/assets/css/um-styles.css', array(), ultimatemember_version ); - wp_register_style( 'um_profile', um_url . '/assets/css/um-profile.css', array(), ultimatemember_version ); - wp_register_style( 'um_crop', um_url . '/assets/css/um-crop.css', array(), ultimatemember_version ); - wp_register_style( 'um_responsive', um_url . '/assets/css/um-responsive.css', array( 'um_profile', 'um_crop' ), ultimatemember_version ); - wp_register_style( 'um_account', um_url . '/assets/css/um-account.css', array(), ultimatemember_version ); - wp_register_style( 'um_default_css', um_url . '/assets/css/um-old-default.css', array(), ultimatemember_version ); - wp_register_style( 'um_fonticons_fa', um_url . '/assets/css/um-fonticons-fa.css', array(), ultimatemember_version ); + wp_register_style( 'um_styles', um_url . 'assets/css/um-styles.css', array(), ultimatemember_version ); + wp_register_style( 'um_profile', um_url . 'assets/css/um-profile.css', array(), ultimatemember_version ); + wp_register_style( 'um_crop', um_url . 'assets/css/um-crop.css', array(), ultimatemember_version ); + wp_register_style( 'um_responsive', um_url . 'assets/css/um-responsive.css', array( 'um_profile', 'um_crop' ), ultimatemember_version ); + wp_register_style( 'um_account', um_url . 'assets/css/um-account.css', array(), ultimatemember_version ); + wp_register_style( 'um_default_css', um_url . 'assets/css/um-old-default.css', array(), ultimatemember_version ); + wp_register_style( 'um_fonticons_fa', um_url . 'assets/css/um-fonticons-fa.css', array(), ultimatemember_version ); + wp_register_style( 'select2', um_url . 'assets/css/select2/select2' . $this->suffix . '.css', array(), ultimatemember_version ); + wp_register_style( 'um_fonticons_ii', um_url . 'assets/css/um-fonticons-ii.css', array(), ultimatemember_version ); wp_register_script( 'um_admin_blocks_shortcodes', um_url . 'assets/js/um-blocks' . $this->suffix . '.js', array( 'wp-i18n', 'wp-blocks', 'wp-components' ), ultimatemember_version, true ); wp_set_script_translations( 'jb_admin_blocks_shortcodes', 'ultimate-member' ); @@ -147,6 +149,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { wp_enqueue_script( 'um_admin_blocks_shortcodes' ); + wp_register_script( 'select2', um_url . 'assets/js/select2/select2.full' . $this->suffix . '.js', array( 'jquery', 'jquery-masonry' ), ultimatemember_version, true ); wp_register_script( 'um_datetime', um_url . 'assets/js/pickadate/picker.js', array( 'jquery' ), ultimatemember_version, true ); wp_register_script( 'um_datetime_date', um_url . 'assets/js/pickadate/picker.date.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); wp_register_script( 'um_datetime_time', um_url . 'assets/js/pickadate/picker.time.js', array( 'jquery', 'um_datetime' ), ultimatemember_version, true ); @@ -176,8 +179,6 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { wp_register_script( 'um_responsive', um_url . 'assets/js/um-responsive' . $this->suffix . '.js', array( 'jquery', 'um_functions', 'um_crop' ), ultimatemember_version, true ); // render blocks - wp_enqueue_style( 'um_default_css' ); - wp_enqueue_style( 'um_fonticons_fa' ); wp_enqueue_script( 'um_datetime' ); wp_enqueue_script( 'um_datetime_date' ); wp_enqueue_script( 'um_datetime_time' ); @@ -190,6 +191,10 @@ if ( ! class_exists( 'um\admin\core\Admin_Enqueue' ) ) { wp_enqueue_script( 'um_functions' ); wp_enqueue_script( 'um_responsive' ); + wp_enqueue_style( 'um_fonticons_ii' ); + wp_enqueue_style( 'select2' ); + wp_enqueue_style( 'um_default_css' ); + wp_enqueue_style( 'um_fonticons_fa' ); wp_enqueue_style( 'um_members' ); wp_enqueue_style( 'um_styles' ); wp_enqueue_style( 'um_profile' );