You are here

function elfinder_admin_form_dir_js in elFinder file manager 6.2

Menu callback for AHAH additions.

1 string reference to 'elfinder_admin_form_dir_js'
elfinder_menu in ./elfinder.module
Implements hook_menu().

File

inc/elfinder.admin.profiles.inc, line 119
file manager admin profile settings page

Code

function elfinder_admin_form_dir_js($action, $itemid = 0) {
  $form_state = array(
    'storage' => NULL,
    'submitted' => FALSE,
  );
  $form_build_id = $_POST['form_build_id'];
  $form = form_get_cache($form_build_id, $form_state);
  $args = $form['#parameters'];
  $form_id = array_shift($args);
  $form['#redirect'] = FALSE;
  $form['#post'] = $_POST;
  $form['#programmed'] = FALSE;
  $form['#redirect'] = FALSE;
  $form_state['post'] = $_POST;
  drupal_process_form($form_id, $form, $form_state);
  if ($action == 'item_remove' && isset($form_state['post']['volume'][$itemid])) {
    unset($form_state['post']['volume'][$itemid]);
    unset($form_state['values']['volume'][$itemid]);
    $form_state['post']['volume'] = array_values($form_state['post']['volume']);
    $form_state['values']['volume'] = array_values($form_state['values']['volume']);
  }
  form_set_cache($form_build_id, $form, $form_state);
  $form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id);

  // Render the new output.
  $choice_form = $form['volumes']['volumes_wrapper']['volume'];
  unset($choice_form['#prefix'], $choice_form['#suffix']);

  // Prevent duplicate wrappers.
  $output = theme('status_messages') . drupal_render($choice_form);
  drupal_json(array(
    'status' => TRUE,
    'data' => $output,
  ));
}