You are here

function theme_views_ef_fieldset_reorder_form in Views Exposed Form Fieldset 7.2

Same name and namespace in other branches
  1. 7 views_ef_fieldset.theme.inc \theme_views_ef_fieldset_reorder_form()

Theme callback to render the option form as a draggable table.

1 theme call to theme_views_ef_fieldset_reorder_form()
views_ef_fieldset_display_extender_plugin::options_form_arrange in views/views_ef_fieldset_display_extender_plugin.inc

File

theme/theme.inc, line 10
Module file containing theme implementations.

Code

function theme_views_ef_fieldset_reorder_form($vars) {
  $form = $vars['form'];
  $table_rows = array();
  foreach (element_children($form) as $key) {
    $classes = array(
      'draggable',
    );
    $element = $form[$key];
    $element['id']['#attributes']['class'][] = 'item-id';
    $element['pid']['#attributes']['class'][] = 'item-pid';
    $element['weight']['#attributes']['class'][] = 'item-weight';
    $item = $element['#item'];
    if (!empty($item['is_root'])) {
      $classes[] = 'tabledrag-root';
    }
    if (empty($item['is_group'])) {
      $classes[] = 'tabledrag-leaf';
    }
    $indent = theme('indentation', array(
      'size' => $item['depth'],
    ));
    $label = check_plain($item['label']);
    $row = array(
      $indent . $label . drupal_render($element['id']) . ' (' . $item['id'] . ')',
      drupal_render($element['pid']),
      drupal_render($element['weight']),
      // @todo Having additional form elements seems to cause invalid indentations with tabledrag.
      drupal_render($element['options']),
      drupal_render($element['remove']),
    );
    $table_rows[] = array(
      'data' => $row,
      'class' => $classes,
      'id' => 'display-row-' . $key,
    );
  }
  if (!$table_rows) {
    return t('<p><em>No items have been added. To get started, select an item to add.</em></p>');
  }
  drupal_add_tabledrag('reorder-fieldset-filters', 'match', 'parent', 'item-pid', 'item-pid', 'item-id');
  drupal_add_tabledrag('reorder-fieldset-filters', 'order', 'sibling', 'item-weight');
  $header = array(
    t('Item'),
    t('Parent'),
    t('Weight'),
    t('Options'),
    '',
  );
  return theme('table', array(
    'header' => $header,
    'rows' => $table_rows,
    'attributes' => array(
      'id' => 'reorder-fieldset-filters',
    ),
  ));
}