Skip to content

Commit

Permalink
Fix issue with empty repeatable groups having the buttons set to disa…
Browse files Browse the repository at this point in the history
…bled.
jtsternberg committed Aug 7, 2017
1 parent 1d580cc commit 7800034
Showing 2 changed files with 7 additions and 9 deletions.
12 changes: 5 additions & 7 deletions includes/CMB2.php
Original file line number Diff line number Diff line change
@@ -442,7 +442,6 @@ public function render_group( $args ) {
$desc = $field_group->args( 'description' );
$label = $field_group->args( 'name' );
$group_val = (array) $field_group->value();
$remove_disabled = count( $group_val ) <= 1 ? 'disabled="disabled" ' : '';
$field_group->index = 0;

$field_group->peform_param_callback( 'before_group' );
@@ -463,11 +462,11 @@ public function render_group( $args ) {

if ( ! empty( $group_val ) ) {
foreach ( $group_val as $group_key => $field_id ) {
$this->render_group_row( $field_group, $remove_disabled );
$this->render_group_row( $field_group );
$field_group->index++;
}
} else {
$this->render_group_row( $field_group, $remove_disabled );
$this->render_group_row( $field_group );
}

if ( $field_group->args( 'repeatable' ) ) {
@@ -528,11 +527,10 @@ public function group_wrap_attributes( $field_group ) {
*
* @since 1.0.2
* @param CMB2_Field $field_group CMB2_Field group field object.
* @param string $remove_disabled Attribute string to disable the remove button.
*
* @return CMB2
*/
public function render_group_row( $field_group, $remove_disabled ) {
public function render_group_row( $field_group ) {

$field_group->peform_param_callback( 'before_group_row' );
$closed_class = $field_group->options( 'closed' ) ? ' closed' : '';
@@ -541,7 +539,7 @@ public function render_group_row( $field_group, $remove_disabled ) {
<div class="postbox cmb-row cmb-repeatable-grouping', $closed_class, '" data-iterator="', $field_group->index, '">';

if ( $field_group->args( 'repeatable' ) ) {
echo '<button type="button" ', $remove_disabled, 'data-selector="', $field_group->id(), '_repeat" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="', esc_attr( $field_group->options( 'remove_button' ) ), '"></button>';
echo '<button type="button" data-selector="', $field_group->id(), '_repeat" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="', esc_attr( $field_group->options( 'remove_button' ) ), '"></button>';
}

echo '
@@ -568,7 +566,7 @@ public function render_group_row( $field_group, $remove_disabled ) {
echo '
<div class="cmb-row cmb-remove-field-row">
<div class="cmb-remove-row">
<button type="button" ', $remove_disabled, 'data-selector="', $field_group->id(), '_repeat" class="cmb-remove-group-row cmb-remove-group-row-button alignright button-secondary">', $field_group->options( 'remove_button' ), '</button>
<button type="button" data-selector="', $field_group->id(), '_repeat" class="cmb-remove-group-row cmb-remove-group-row-button alignright button-secondary">', $field_group->options( 'remove_button' ), '</button>
</div>
</div>
';
4 changes: 2 additions & 2 deletions tests/test-cmb-core.php
Original file line number Diff line number Diff line change
@@ -483,7 +483,7 @@ public function test_group_field_param_callbacks() {
</div>
before_group_row output
<div class="postbox cmb-row cmb-repeatable-grouping closed" data-iterator="0">
<button type="button" disabled="disabled" data-selector="group_field_repeat" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="Remove Group"></button>
<button type="button" data-selector="group_field_repeat" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="Remove Group"></button>
<div class="cmbhandle" title="Click to toggle"><br></div>
<h3 class="cmb-group-title cmbhandle-title"><span></span></h3>
<div class="inside cmb-td cmb-nested cmb-field-list">
@@ -515,7 +515,7 @@ public function test_group_field_param_callbacks() {
</div>
<div class="cmb-row cmb-remove-field-row">
<div class="cmb-remove-row">
<button type="button" disabled="disabled" data-selector="group_field_repeat" class="cmb-remove-group-row cmb-remove-group-row-button alignright button-secondary">Remove Group</button>
<button type="button" data-selector="group_field_repeat" class="cmb-remove-group-row cmb-remove-group-row-button alignright button-secondary">Remove Group</button>
</div>
</div>
</div>

0 comments on commit 7800034

Please sign in to comment.