You are here

function files_undo_remove_file_process in Files undo remove 7

Process callback on managed_file type.

1 string reference to 'files_undo_remove_file_process'
files_undo_remove_element_info_alter in ./files_undo_remove.module
Implements hook_element_info_alter().

File

./files_undo_remove.module, line 32
Files undo remove.

Code

function files_undo_remove_file_process($element, &$form_state, $form) {

  // Do not process on field edit form.
  if ($form['#form_id'] == 'field_ui_field_edit_form') {
    return $element;
  }
  if (isset($element['fid']) && !empty($element['fid']['#value']) && !empty($element['#field_name'])) {
    $field_info = field_info_field($element['#field_name']);
    if ($field_info['cardinality'] == 1) {
      return $element;
    }

    // Change the remove button to one of ours.
    $element['remove_button'] = array(
      '#name' => $element['remove_button']['#name'],
      '#type' => 'submit',
      '#value' => t('Remove'),
      '#attributes' => array(
        'class' => array(
          'files-undo-remove',
        ),
      ),
      '#weight' => -5,
    );

    // Add a hidden state, defaults to 0.
    $values = drupal_array_get_nested_value($form_state['values'], $element['#parents']);
    $remove_state = isset($values['remove_state']) ? $values['remove_state'] : 0;
    $element['remove_state'] = array(
      '#type' => 'hidden',
      '#default_value' => $remove_state,
      '#attributes' => array(
        'class' => array(
          'files-undo-remove-hidden-state',
        ),
      ),
    );
  }
  return $element;
}