function bat_booking_edit_form in Booking and Availability Management Tools for Drupal 7
Generates the booking editing form.
1 call to bat_booking_edit_form()
- bat_booking_form in modules/
bat_booking/ bat_booking.admin.inc
1 string reference to 'bat_booking_edit_form'
- bat_booking_create_form_wrapper in modules/
bat_booking/ bat_booking.admin.inc - Form callback wrapper: create a Booking.
File
- modules/
bat_booking/ bat_booking.admin.inc, line 206 - BatBooking editing UI.
Code
function bat_booking_edit_form($form, &$form_state, $booking) {
// Add the field related form elements.
$form_state['bat_booking'] = $booking;
field_attach_form('bat_booking', $booking, $form, $form_state, isset($booking->language) ? $booking->language : NULL);
$form['additional_settings'] = array(
'#type' => 'vertical_tabs',
'#weight' => 99,
);
// Type author information for administrators.
$form['author'] = array(
'#type' => 'fieldset',
'#access' => user_access('bypass bat_booking entities access'),
'#title' => t('Authoring information'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#group' => 'additional_settings',
'#attributes' => array(
'class' => array(
'type-form-author',
),
),
'#attached' => array(
'js' => array(
array(
'type' => 'setting',
'data' => array(
'anonymous' => variable_get('anonymous', t('Anonymous')),
),
),
),
),
'#weight' => 90,
);
$form['type'] = array(
'#type' => 'value',
'#value' => $booking->type,
);
$form['author']['author_name'] = array(
'#type' => 'textfield',
'#title' => t('Authored by'),
'#maxlength' => 60,
'#autocomplete_path' => 'user/autocomplete',
'#default_value' => !empty($booking->author_name) ? $booking->author_name : '',
'#weight' => -1,
'#description' => t('Leave blank for %anonymous.', array(
'%anonymous' => variable_get('anonymous', t('Anonymous')),
)),
);
$form['author']['date'] = array(
'#type' => 'textfield',
'#title' => t('Authored on'),
'#maxlength' => 25,
'#description' => t('Format: %time. The date format is YYYY-MM-DD and %timezone is the time zone offset from UTC. Leave blank to use the time of form submission.', array(
'%time' => !empty($booking->date) ? date_format(date_create($booking->date), 'Y-m-d H:i:s O') : format_date($booking->created, 'custom', 'Y-m-d H:i:s O'),
'%timezone' => !empty($booking->date) ? date_format(date_create($booking->date), 'O') : format_date($booking->created, 'custom', 'O'),
)),
'#default_value' => !empty($booking->date) ? $booking->date : '',
);
$form['options'] = array(
'#type' => 'fieldset',
'#access' => user_access('bypass bat_booking entities access'),
'#title' => t('Publishing options'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#group' => 'additional_settings',
'#attributes' => array(
'class' => array(
'booking-form-published',
),
),
'#weight' => 95,
);
$form['options']['status'] = array(
'#type' => 'checkbox',
'#title' => t('Published'),
'#default_value' => $booking->status,
);
$form['actions'] = array(
'#type' => 'actions',
'#tree' => FALSE,
);
// We add the form's #submit array to this button along with the actual submit
// handler to preserve any submit handlers added by a form callback_wrapper.
$submit = array();
if (!empty($form['#submit'])) {
$submit += $form['#submit'];
}
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save Booking'),
'#submit' => $submit + array(
'bat_booking_edit_form_submit',
),
);
if (!empty($booking->label) && bat_booking_access('delete', $booking)) {
$form['actions']['delete'] = array(
'#type' => 'submit',
'#value' => t('Delete Booking'),
'#submit' => $submit + array(
'bat_booking_form_submit_delete',
),
'#weight' => 45,
);
}
// Depending on whether the form is in a popup or a normal page we need to change
// the behavior of the cancel button.
if (isset($form_state['ajax']) && $form_state['ajax'] == TRUE) {
unset($form['actions']['cancel']);
}
else {
$form['actions']['cancel'] = array(
'#markup' => l(t('Cancel'), 'admin/bat/config/booking'),
'#weight' => 50,
);
}
$form['#validate'][] = 'bat_booking_edit_form_validate';
return $form;
}