You are here

function globallink_dashboard_active in GlobalLink Connect for Drupal 7.5

Same name and namespace in other branches
  1. 7.7 globallink_workbench_all_submissions.inc \globallink_dashboard_active()
  2. 7.6 globallink_active_submissions.inc \globallink_dashboard_active()

Builds form to show all active GlobalLink submissions.

1 string reference to 'globallink_dashboard_active'
globallink_dashboard_active_submissions_page in ./globallink_active_submissions.inc
Builds forms on GlobalLink active submissions dashboard.

File

./globallink_active_submissions.inc, line 197

Code

function globallink_dashboard_active() {
  module_load_include('inc', 'globallink', 'globallink');
  $form = array();
  $redirect_submission = isset($_GET['submission']) ? urldecode($_GET['submission']) : '';
  $selected_value = '';
  if (empty($redirect_submission) && !empty($_SESSION['globallink_selected_submission'])) {
    $selected_value = $_SESSION['globallink_selected_submission'];
  }
  elseif (!empty($redirect_submission)) {
    $options = globallink_get_distinct_active_submission_names();
    $selected_value = array_search($redirect_submission, $options);
  }
  if (!empty($_SESSION['transpefect_dashboard_active_type'])) {
    $content_types = node_type_get_names();
    $projects = globallink_get_pd_projects();
    $page_count = TPT_PAGER_LIMIT;
    if (isset($_SESSION['globallink_node_active_page_count'])) {
      $page_count = $_SESSION['globallink_node_active_page_count'][0];
    }
    $header = array(
      'submission' => array(
        'field' => 'submission',
        'data' => t('Submission Name'),
      ),
      'type' => array(
        'field' => 'type',
        'data' => t('Content Type'),
      ),
      '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', '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(
        'rid' => $item->rid,
        'nid' => $item->nid,
        'vid' => $item->vid,
        'submission' => $item->submission,
        'title' => l(globallink_format_display_string($item->title), 'node/' . $item->nid),
        'project_code' => isset($projects[$item->project_code]) ? $projects[$item->project_code] : '',
        'type' => isset($content_types[$item->type]) ? $content_types[$item->type] : '',
        'status' => $item->status,
        'timestamp' => format_date($item->timestamp, 'custom', 'Y-m-d H:i:s'),
        'source_name' => $item->source_name,
        'target_name' => $item->target_name,
      );
    }
    $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;
}