You are here

function tmgmt_i18n_string_form_i18n_string_translate_page_overview_form_alter in Translation Management Tool 7

Implements hook_form_ID_alter().

Adds request translation capabilities into i18n translate tab.

File

sources/i18n_string/tmgmt_i18n_string.module, line 112
Source plugin for the Translation Management system that handles i18n strings.

Code

function tmgmt_i18n_string_form_i18n_string_translate_page_overview_form_alter(&$form, &$form_state) {
  $object = $form['object']['#value'];

  // Create the id: textgroup:type:objectid.
  $id = $object
    ->get_textgroup() . ':' . implode(':', $object
    ->get_string_context());
  $source_language = variable_get_value('i18n_string_source_language');
  $existing_items = tmgmt_job_item_load_latest('i18n_string', $object
    ->get_type(), $id, $source_language);
  $form['top_actions']['#type'] = 'actions';
  $form['top_actions']['#weight'] = -10;
  tmgmt_ui_add_cart_form($form['top_actions'], $form_state, 'i18n_string', $object
    ->get_type(), $id);
  $form['languages']['#type'] = 'tableselect';

  // Append lang code so that we can use it
  foreach ($form['languages']['#rows'] as $lang => $row) {
    if (isset($existing_items[$lang])) {
      $states = tmgmt_job_item_states();
      $row['status'] = $states[$existing_items[$lang]->state];
      if ($existing_items[$lang]
        ->isNeedsReview()) {
        $row['operations'] .= ' | ' . l(t('review'), 'admin/tmgmt/items/' . $existing_items[$lang]->tjiid, array(
          'query' => array(
            'destination' => $_GET['q'],
          ),
        ));
      }
      elseif ($existing_items[$lang]
        ->isActive()) {
        $row['operations'] .= ' | ' . l(t('in progress'), 'admin/tmgmt/items/' . $existing_items[$lang]->tjiid, array(
          'query' => array(
            'destination' => $_GET['q'],
          ),
        ));
      }
    }
    $form['languages']['#options'][$id . ':' . $lang] = $row;
    if ($lang == $source_language || isset($existing_items[$lang])) {
      $form['languages'][$id . ':' . $lang] = array(
        '#type' => 'checkbox',
        '#disabled' => TRUE,
      );
    }
  }
  unset($form['languages']['#rows'], $form['languages']['#theme']);
  $form['actions']['request_translation'] = array(
    '#type' => 'submit',
    '#value' => t('Request translation'),
    '#submit' => array(
      'tmgmt_i18n_string_translate_form_submit',
    ),
    '#validate' => array(
      'tmgmt_i18n_string_translate_form_validate',
    ),
  );
}