public EntityDisplayFormBase::multistepAjax($form, FormStateInterface $form_state)
Ajax handler for multistep buttons.
File
- core/modules/field_ui/src/Form/EntityDisplayFormBase.php, line 636
Class
- EntityDisplayFormBase
- Base class for EntityDisplay edit forms.
Namespace
Drupal\field_ui\Form
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | public function multistepAjax( $form , FormStateInterface $form_state ) { $trigger = $form_state ->getTriggeringElement(); $op = $trigger [ '#op' ]; // Pick the elements that need to receive the ajax-new-content effect. switch ( $op ) { case 'edit' : $updated_rows = array ( $trigger [ '#field_name' ]); $updated_columns = array ( 'plugin' ); break ; case 'update' : case 'cancel' : $updated_rows = array ( $trigger [ '#field_name' ]); $updated_columns = array ( 'plugin' , 'settings_summary' , 'settings_edit' ); break ; case 'refresh_table' : $updated_rows = array_values ( explode ( ' ' , $form_state ->getValue( 'refresh_rows' ))); $updated_columns = array ( 'settings_summary' , 'settings_edit' ); break ; } foreach ( $updated_rows as $name ) { foreach ( $updated_columns as $key ) { $element = & $form [ 'fields' ][ $name ][ $key ]; $element [ '#prefix' ] = '<div class="ajax-new-content">' . (isset( $element [ '#prefix' ]) ? $element [ '#prefix' ] : '' ); $element [ '#suffix' ] = (isset( $element [ '#suffix' ]) ? $element [ '#suffix' ] : '' ) . '</div>' ; } } // Return the whole table. return $form [ 'fields' ]; } |
Please login to continue.