You are here

function media_acquiadam_browser_choose_asset_form_submit in Media: Acquia DAM 7

Submission handler for media_acquiadam_browser_choose_asset_form.

Parameters

array $form: A Drupal form array.

array $form_state: The current form state.

File

modules/media_acquiadam_browser/includes/media_acquiadam_browser.forms.inc, line 412
Form related hooks and functions.

Code

function media_acquiadam_browser_choose_asset_form_submit(array &$form, array &$form_state) {

  // Searching shortcircuits a lot of the submission logic. We don't need to
  // process selected assets, so create the redirect and exit.
  $is_search = !empty($form_state['triggering_element']) && $form_state['triggering_element']['#name'] == 'search';
  if ($is_search) {
    $qp = drupal_get_query_parameters(NULL, [
      'q',
      'page',
      'aa',
    ]);
    $qp['search'] = [
      'keywords' => $form_state['values']['keywords'],
      'type' => $form_state['values']['type_filter'],
      'sort' => $form_state['values']['sort'],
    ];
    $form_state['redirect'] = [
      current_path(),
      [
        'query' => $qp,
      ],
    ];
    return;
  }
  $assetIds = media_acquiadam_browser_choose_asset_form_get_selected_assets($form_state);
  if (!empty($assetIds)) {
    $saved_fids = media_acquiadam_browser_choose_asset_form_save_assets($assetIds, $form_state['storage']['assets']);
    $asset_count = count($assetIds);
    $fid_count = count($saved_fids);
    if ($fid_count != $asset_count) {
      drupal_set_message(t('Imported @fid-count files to Drupal and expected @asset-count. Please consult the logs to see what went wrong.', [
        '@asset-count' => $asset_count,
        '@fid-count' => $fid_count,
      ]), 'warning');
    }
    if (!empty($saved_fids)) {

      // If we're not in the Media browser screen then we need a landing page to
      // send users.
      $redirect_uri = url('admin/content/file/acquiadam/saved');
      $query = [
        'fid' => $saved_fids,
      ];

      // This will be set if the user is in a Media browser screen.
      if (!empty($form_state['#media_browser'])) {
        $redirect_uri = url('media/browser/acquiadam');
      }
      $form_state['redirect'] = [
        $redirect_uri,
        [
          'query' => $query,
        ],
      ];
    }
  }
}