You are here

function bat_event_ui_event_type_form in Booking and Availability Management Tools for Drupal 7

Form - "Event type" and "Unit type" to shows in the calendar view.

1 string reference to 'bat_event_ui_event_type_form'
bat_event_ui_calendar_page in modules/bat_event_ui/bat_event_ui.module
Callback for admin/bat/calendar.

File

modules/bat_event_ui/bat_event_ui.module, line 233
Manages events for Units and displaying dates on the jquery FullCalendar plugin.

Code

function bat_event_ui_event_type_form($form, &$form_state, $unit_type, $event_type) {
  if (isset($form_state['values']['event_types'])) {
    $event_type = $form_state['values']['event_types'];
  }
  $event_types = bat_event_get_types();
  foreach ($event_types as $ev_type) {
    if (user_access('view calendar data for any ' . $ev_type->type . ' event')) {
      $event_types_options[$ev_type->type] = $ev_type->label;
    }
  }
  $form['event_types'] = array(
    '#type' => 'select',
    '#title' => 'Event type',
    '#options' => $event_types_options,
    '#default_value' => $event_type,
    '#ajax' => array(
      'callback' => 'bat_event_ui_event_type_form_callback',
      'wrapper' => 'unit-type-wrapper',
    ),
  );
  $types = bat_unit_get_types();
  if (!empty($types)) {
    $types_options = array(
      'all' => t('All'),
    );
    foreach ($types as $type) {
      $type_bundle = bat_type_bundle_load($type->type);
      if (is_array($type_bundle->default_event_value_field_ids)) {
        if (isset($type_bundle->default_event_value_field_ids[$event_type]) && !empty($type_bundle->default_event_value_field_ids[$event_type])) {
          $types_options[$type->type_id] = $type->name;
        }
      }
    }
    $form['unit_type'] = array(
      '#type' => 'select',
      '#title' => 'Unit type',
      '#options' => $types_options,
      '#default_value' => $unit_type,
      '#prefix' => '<div id="unit-type-wrapper">',
      '#suffix' => '</div>',
    );
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Change',
  );
  return $form;
}