diff --git a/includes/admin/assets/css/um-admin-forms.css b/includes/admin/assets/css/um-admin-forms.css
index e18d2062..28e974b7 100644
--- a/includes/admin/assets/css/um-admin-forms.css
+++ b/includes/admin/assets/css/um-admin-forms.css
@@ -67,17 +67,32 @@ textarea.um-forms-field.um-small-field {
.um-multi-selects-option-line.um-admin-drag-fld {
background: none;
border: none;
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: center;
+ flex-wrap: nowrap;
}
-.um-multi-selects-option-line .um-field-icon {
+.um-multi-selects-option-line.um-admin-drag-fld .um-field-icon {
float: left;
- width: 30px;
- text-align: center;
+ width: 20px;
+ text-align: left;
line-height: 30px;
}
-.um-multi-text-option-line .um-field-wrapper,
.um-multi-selects-option-line .um-field-wrapper {
+ float:left;
+ width: calc( 100% - 60px );
+ line-height: 30px;
+ box-sizing: border-box;
+}
+
+.um-multi-selects-option-line.um-admin-drag-fld .um-field-wrapper {
+ width: calc( 100% - 90px );
+}
+
+.um-multi-text-option-line .um-field-wrapper {
float:left;
width: calc( 100% - 90px );
line-height: 30px;
diff --git a/includes/admin/assets/js/um-admin-forms.js b/includes/admin/assets/js/um-admin-forms.js
index 05111b2f..99459e53 100644
--- a/includes/admin/assets/js/um-admin-forms.js
+++ b/includes/admin/assets/js/um-admin-forms.js
@@ -4,10 +4,10 @@ jQuery(document).ready( function() {
/**
* Multi-selects sort
*/
- jQuery('.um-multi-selects-list').sortable({
- items: '.um-admin-drag-fld',
- connectWith: '.um-admin-drag-col,.um-admin-drag-group',
- forcePlaceholderSize:true
+ jQuery('.um-multi-selects-list.um-sortable-multi-selects').sortable({
+ items: '.um-admin-drag-fld',
+ connectWith: '.um-admin-drag-col,.um-admin-drag-group',
+ forcePlaceholderSize: true
});
@@ -28,6 +28,8 @@ jQuery(document).ready( function() {
jQuery( '.um-multi-selects-add-option' ).click( function() {
var list = jQuery(this).siblings('ul.um-multi-selects-list');
+ var sortable = list.hasClass( 'um-sortable-multi-selects' );
+
var field_id = list.data('field_id');
var k = 0;
if ( list.find( 'li:last select.um-forms-field' ).length > 0 ) {
@@ -37,12 +39,17 @@ jQuery(document).ready( function() {
var selector_html = jQuery( '
' ).append( list.siblings('.um-hidden-multi-selects').clone() ).html();
- list.append(
- '
' +
- '' +
- '' + selector_html +
- '' + wp.i18n.__( 'Remove', 'ultimate-member' ) + ''
- );
+ var html = '
';
+ if ( sortable ) {
+ html += '';
+ }
+
+ html += '' + selector_html + '' +
+ '' +
+ '' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '' +
+ '' +
+ '';
+ list.append( html );
list.find('li:last .um-hidden-multi-selects').attr('name', jQuery(this).data('name') ).
addClass('um-forms-field um-long-field').removeClass('um-hidden-multi-selects').attr('id', list.data('id_attr') + '-' + k);
diff --git a/includes/admin/core/class-admin-forms.php b/includes/admin/core/class-admin-forms.php
index e4d3ed91..d18c6bf7 100644
--- a/includes/admin/core/class-admin-forms.php
+++ b/includes/admin/core/class-admin-forms.php
@@ -849,8 +849,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
$id = ( ! empty( $this->form_data['prefix_id'] ) ? $this->form_data['prefix_id'] : '' ) . '_' . $field_data['id'];
+ $sorting = ! empty( $field_data['sorting'] ) ? $field_data['sorting'] : false;
+
$class = ! empty( $field_data['class'] ) ? $field_data['class'] : '';
$class .= ! empty( $field_data['size'] ) ? $field_data['size'] : 'um-long-field';
+ $class .= ! empty( $sorting ) ? 'um-sorting-enabled' : '';
$class_attr = ' class="um-forms-field ' . $class . '" ';
$data = array(
@@ -876,9 +879,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
}
$html = "
";
- $html .= "
";
+ $html .= "";
+
+ if ( $sorting ) {
+ ksort( $values );
+ }
- ksort($values);
if ( ! empty( $values ) && is_array( $values ) ) {
foreach ( $values as $k => $value ) {
@@ -893,9 +899,11 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
$options .= '';
}
- $html .= "-
-
-
+ $html .= '
- ';
+ if ( $sorting ) {
+ $html .= '';
+ }
+ $html .= "
" . __( 'Remove', 'ultimate-member' ) . "
";
}
@@ -909,7 +917,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
$options .= '';
}
- $html .= "-
+ $html .= '
- ';
+ if ( $sorting ) {
+ $html .= '';
+ }
+
+ $html .= "
" . __( 'Remove', 'ultimate-member' ) . "
";
diff --git a/includes/admin/templates/directory/profile.php b/includes/admin/templates/directory/profile.php
index d988f9a1..6a4dcca4 100644
--- a/includes/admin/templates/directory/profile.php
+++ b/includes/admin/templates/directory/profile.php
@@ -48,6 +48,7 @@
'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
'options' => $user_fields,
'show_default_number' => 1,
+ 'sorting' => true,
),
array(
'id' => '_um_show_userinfo',
@@ -64,6 +65,7 @@
'conditional' => array( '_um_show_userinfo', '=', 1 ),
'options' => $user_fields,
'show_default_number' => 1,
+ 'sorting' => true,
),
array(
'id' => '_um_show_social',
diff --git a/includes/admin/templates/directory/search.php b/includes/admin/templates/directory/search.php
index c406e001..840bd306 100644
--- a/includes/admin/templates/directory/search.php
+++ b/includes/admin/templates/directory/search.php
@@ -92,6 +92,7 @@ global $post_id; ?>
'options' => UM()->member_directory()->filter_fields,
'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
'show_default_number' => 1,
+ 'sorting' => true,
),
array(
'id' => '_um_filters_expanded',