You are here

function globallink_menu_active_form in GlobalLink Connect for Drupal 7.6

Same name and namespace in other branches
  1. 7.5 globallink_menu/globallink_menu_active_submissions.inc \globallink_menu_active_form()

Builds form to show all active menu submissions.

1 string reference to 'globallink_menu_active_form'
globallink_menu_active_submissions in globallink_menu/globallink_menu_active_submissions.inc
Builds forms on menu active submissions dashboard.

File

globallink_menu/globallink_menu_active_submissions.inc, line 180

Code

function globallink_menu_active_form() {
  module_load_include('inc', 'globallink', 'globallink');
  $form = array();
  $module_path = drupal_get_path('module', 'globallink');
  drupal_add_css($module_path . '/css/globallink.css');
  $redirect_submission = isset($_GET['submission']) ? urldecode($_GET['submission']) : '';
  $selected_value = '';
  if (empty($redirect_submission) && !empty($_SESSION['globallink_menu_selected_submission'])) {
    $selected_value = $_SESSION['globallink_menu_selected_submission'];
  }
  elseif (!empty($redirect_submission)) {
    $options = globallink_menu_get_active_submission_names();
    $selected_value = array_search($redirect_submission, $options);
  }
  $page_count = TPT_PAGER_LIMIT;
  if (isset($_SESSION['globallink_menu_active_page_count'])) {
    $page_count = $_SESSION['globallink_menu_active_page_count'][0];
  }
  $projects = globallink_get_pd_projects();
  $header = array(
    'submission' => array(
      'field' => 'submission',
      'data' => t('Submission Name'),
    ),
    'title' => array(
      'field' => 'title',
      'data' => t('Title'),
    ),
    'project_code' => array(
      'field' => 'project_code',
      'data' => t('Project'),
    ),
    'source_name' => array(
      'field' => 'source_name',
      'data' => t('Source Language'),
    ),
    'target_name' => array(
      'field' => 'target_name',
      'data' => t('Target Language'),
    ),
    'status' => array(
      'field' => 'status',
      'data' => t('Status'),
    ),
    'timestamp' => array(
      'field' => 'timestamp',
      'data' => t('Last Updated'),
    ),
  );
  $query = db_select('globallink_core_menu', 'tc')
    ->extend('PagerDefault')
    ->limit($page_count)
    ->extend('TableSort')
    ->orderByHeader($header);

  // Field to sort on is picked from $header
  $query
    ->condition('status', array(
    'Sent for Translations',
    'Error',
    'Cancelled',
  ), 'IN');
  if ($selected_value != '') {
    $query
      ->condition('submission_ticket', $selected_value, '=');
  }
  $query
    ->join('globallink_locale', 'tl1', 'tc.source = tl1.locale_code');
  $query
    ->join('globallink_locale', 'tl2', 'tc.target = tl2.locale_code');
  $query
    ->fields('tc');
  $query
    ->addField('tl1', 'drupal_locale_desc', 'source_name');
  $query
    ->addField('tl2', 'drupal_locale_desc', 'target_name');
  $results = $query
    ->execute();
  $count = 0;
  $rows = array();
  foreach ($results as $item) {
    $count++;
    $rows[$item->rid] = array(
      'submission' => $item->submission,
      'title' => $item->title,
      'project_code' => isset($projects[$item->project_code]) ? $projects[$item->project_code] : '',
      'source_name' => $item->source_name,
      'target_name' => $item->target_name,
      'status' => $item->status,
      'timestamp' => format_date($item->timestamp, 'custom', 'Y-m-d H:i:s'),
    );
  }
  $form['table'] = array(
    '#type' => 'tableselect',
    '#header' => $header,
    '#options' => $rows,
    '#empty' => t('No items available'),
  );
  $form['pager'] = array(
    '#markup' => theme('pager'),
  );
  if ($count > 0) {
    if (user_access(TPT_ROLE_MANAGE_TRANSLATIONS)) {
      $form['submit_cancel_document'] = array(
        '#type' => 'submit',
        '#value' => t('Cancel Selected Documents'),
      );
      $form['submit_clear_cancelled_documents'] = array(
        '#type' => 'submit',
        '#value' => t('Clear Cancelled Documents'),
      );
    }
  }
  return $form;
}