You are here

function auditfiles_merge_file_references_form_submit in Audit Files 7.3

Submit handler for the auditfiles_merge_file_references_form form.

File

./auditfiles.mergefilereferences.inc, line 183
Generates a report showing & allowing for merging potential duplicate files.

Code

function auditfiles_merge_file_references_form_submit($form, &$form_state) {
  if (isset($form_state['values']['auditfiles_merge_file_references_show_single_file_names'])) {
    variable_set('auditfiles_merge_file_references_show_single_file_names', $form_state['values']['auditfiles_merge_file_references_show_single_file_names']);
  }

  // Check if an operation was performed.
  if (!empty($form_state['values']['op'])) {

    // Check which operation was performed and start the batch process.
    if ($form_state['values']['op'] == t('Load all files')) {

      // Clear the variable, so subsequent pages will load the correct data.
      variable_del('auditfiles_merge_file_references_files_to_display');

      // Prepare and set the batch.
      batch_set(_auditfiles_merge_file_references_batch_display_create_batch());
    }
    elseif ($form_state['values']['op'] == t('Reset file list')) {

      // Reset all the variables for this report, so subsequent pages loads will
      // load and use the correct data.
      db_delete('variable')
        ->condition('name', 'auditfiles_merge_file_references_%', 'LIKE')
        ->execute();
      cache_clear_all('variables', 'cache_bootstrap');
    }
    elseif ($form_state['values']['op'] == t('Merge selected items')) {
      if (!empty($form_state['values']['files'])) {
        foreach ($form_state['values']['files'] as $file_name) {
          if (!empty($file_name)) {

            // At least one file was selected, and the operation has not been
            // confirmed, so modify the data to display the confirmation form.
            $form_state['storage']['files'] = $form_state['values']['files'];
            $form_state['storage']['op'] = $form_state['values']['op'];
            $form_state['storage']['stage'] = 'preconfirm';
            $form_state['rebuild'] = TRUE;
            return TRUE;
          }
        }
      }
    }
    elseif ($form_state['values']['op'] == t('Next step')) {
      if (!empty($form_state['values']['files_being_merged'])) {
        foreach ($form_state['values']['files_being_merged'] as $file_name) {
          if (!empty($file_name)) {

            // At least one file was selected, and the operation has not been
            // confirmed, so modify the data to display the confirmation form.
            $form_state['storage']['files'] = $form_state['values']['files_being_merged'];
            $form_state['storage']['op'] = $form_state['values']['op'];
            $form_state['storage']['stage'] = 'confirm';
            $form_state['rebuild'] = TRUE;
            return TRUE;
          }
        }
        drupal_set_message(t('No items were selected to merge.'));
      }
    }
    elseif ($form_state['values']['op'] == t('Confirm')) {
      if ($form_state['values']['operation'] == 'merge') {

        // Prepare and set the batch.
        batch_set(_auditfiles_merge_file_references_batch_merge_create_batch($form_state['values']['file_being_kept'], $form_state['storage']['files_being_merged']));
        unset($form_state['storage']['stage']);
      }
    }
  }
}