- added 'sorting' argument for multi selects field;

This commit is contained in:
nikitasinelnikov
2019-11-26 00:57:09 +02:00
parent 2774456911
commit 05e7fa662d
5 changed files with 58 additions and 20 deletions
+19 -4
View File
@@ -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;
+17 -10
View File
@@ -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( '<div>' ).append( list.siblings('.um-hidden-multi-selects').clone() ).html();
list.append(
'<li class="um-multi-selects-option-line um-admin-drag-fld">' +
'<span class="um-field-icon"><i class="um-faicon-sort"></i></span>' +
'<span class="um-field-wrapper">' + selector_html +
'</span><span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '</a></span></li>'
);
var html = '<li class="um-multi-selects-option-line' + ( sortable ? ' um-admin-drag-fld' : '' ) + '">';
if ( sortable ) {
html += '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
}
html += '<span class="um-field-wrapper">' + selector_html + '</span>' +
'<span class="um-field-control">' +
'<a href="javascript:void(0);" class="um-select-delete">' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '</a>' +
'</span>' +
'</li>';
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);
+19 -6
View File
@@ -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 = "<select class=\"um-hidden-multi-selects\" $data_attr>$options</select>";
$html .= "<ul class=\"um-multi-selects-list\" $data_attr>";
$html .= "<ul class=\"um-multi-selects-list" . ( ! empty( $sorting ) ? ' um-sortable-multi-selects' : '' ) . "\" $data_attr>";
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 .= '<option value="' . $key . '" ' . selected( $key == $value, true, false ) . '>' . $option . '</option>';
}
$html .= "<li class=\"um-multi-selects-option-line um-admin-drag-fld\">
<span class=\"um-field-icon\"><i class=\"um-faicon-sort\"></i></span>
<span class=\"um-field-wrapper\">
$html .= '<li class="um-multi-selects-option-line' . ( ! empty( $sorting ) ? ' um-admin-drag-fld' : '' ) . '">';
if ( $sorting ) {
$html .= '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
}
$html .= "<span class=\"um-field-wrapper\">
<select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
<span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
}
@@ -909,7 +917,12 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
$options .= '<option value="' . $key . '">' . $option . '</option>';
}
$html .= "<li class=\"um-multi-selects-option-line\"><span class=\"um-field-wrapper\">
$html .= '<li class="um-multi-selects-option-line' . ( ! empty( $sorting ) ? ' um-admin-drag-fld' : '' ) . '">';
if ( $sorting ) {
$html .= '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
}
$html .= "<span class=\"um-field-wrapper\">
<select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
<span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span></li>";
@@ -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',
@@ -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',