You are here

function views_fieldsets_form_views_ui_rearrange_form_alter in Views fieldsets 8.3

Same name and namespace in other branches
  1. 7.2 views_fieldsets.module \views_fieldsets_form_views_ui_rearrange_form_alter()
  2. 7 views_fieldsets.module \views_fieldsets_form_views_ui_rearrange_form_alter()

Implements hook_form_FORM_ID_alter() for views_ui_rearrange_form().

File

./views_fieldsets.module, line 102
Provides an module functionality.

Code

function views_fieldsets_form_views_ui_rearrange_form_alter(&$form, &$form_state) {
  $ui_view = $form_state
    ->get('view');
  $view = $ui_view
    ->getExecutable();
  $view
    ->build($form_state
    ->get('display_id'));
  $fieldsets = Fieldset::getAllFieldsets($view);
  $debug_tabledrag = [];
  foreach (Element::children($form['fields']) as $field_name) {
    $row =& $form['fields'][$field_name];
    if (isset($fieldsets[$field_name])) {
      $row['#attributes']['class'][] = 'views-fieldsets-fieldset';
    }
    else {
      $row['#attributes']['class'][] = 'tabledrag-leaf';
    }
    $depth = count(Fieldset::getFieldParents($view, $field_name));
    $row['name'] = [
      'indent' => $depth > 0 ? [
        '#theme' => 'indentation',
        '#size' => $depth,
      ] : [],
      'name' => $row['name'],
      'field_name' => [
        '#type' => 'hidden',
        '#value' => $field_name,
        '#attributes' => [
          'class' => [
            'field-name',
          ],
        ],
      ],
      'hierarchy' => $debug_tabledrag + [
        '#type' => 'hidden',
        '#default_value' => Fieldset::getFieldParent($view, $field_name),
        '#attributes' => [
          'class' => [
            'hierarchy',
          ],
        ],
      ],
      'depth' => $debug_tabledrag + [
        '#type' => 'hidden',
        '#default_value' => $depth,
        '#attributes' => [
          'class' => [
            'depth',
          ],
        ],
      ],
    ];
    unset($row);
  }
  $form['fields']['#tabledrag'] = [];
  $form['fields']['#tabledrag'][] = [
    'action' => 'match',
    'relationship' => 'parent',
    'group' => 'hierarchy',
    'subgroup' => 'hierarchy',
    'source' => 'field-name',
    'hidden' => FALSE,
  ];
  $form['fields']['#tabledrag'][] = [
    'action' => 'depth',
    'relationship' => 'group',
    'group' => 'depth',
    'hidden' => FALSE,
  ];
  $form['fields']['#tabledrag'][] = [
    'action' => 'order',
    'relationship' => 'sibling',
    'group' => 'weight',
  ];
  $form['actions']['submit']['#submit'][] = 'views_fieldsets_views_ui_rearrange_form_submit';
}