You are here

casetracker.pages.inc in Case Tracker 7.2

This file have the page callback functions that are called in hook_menu()

File

pages/casetracker.pages.inc
View source
<?php

/**
 *
 * @file This file have the page callback functions that are called in hook_menu()
 */
function casetracker_overview() {
  if (db_table_exists('field_data_field_casetracker_project_ref')) {
    $query = db_query("\n    SELECT p.pid, p.title as project, s.field_casetracker_case_status_value as status, count(s.field_casetracker_case_status_value) as qtd\n    FROM {casetracker_case} c\n    JOIN {field_data_field_casetracker_project_ref} pr ON pr.entity_type = 'casetracker_case' AND pr.entity_id = c.cid\n    INNER JOIN {casetracker_project} p ON pr.field_casetracker_project_ref_target_id = p.pid\n    JOIN {field_data_field_casetracker_case_status} s ON s.entity_type = 'casetracker_case' AND s.entity_id = c.cid\n    GROUP BY p.title, status");
    $results = $query
      ->fetchAll();
    $field_status = field_read_field('field_casetracker_case_status');
    $header[] = t('Project');
    foreach ($field_status['settings']['allowed_values'] as $key => $value) {
      $header[] = $value;
    }
    $data = array();
    $i = 0;
    foreach ($results as $item) {
      if (!isset($data[$item->pid])) {
        $data[$item->pid] = array(
          'project' => l($item->project, 'project/' . $item->pid . '/cases'),
          'cases' => array(),
        );
        foreach ($field_status['settings']['allowed_values'] as $key => $value) {
          $data[$item->pid]['cases'][$key] = 0;
        }
      }
      $data[$item->pid]['cases'][$item->status] = $item->qtd;
    }
    $i = 0;
    $rows = array();
    foreach ($data as $item) {
      $rows[$i] = array(
        $item['project'],
      );
      foreach ($item['cases'] as $case_status) {
        $rows[$i][] = $case_status;
      }
      $i++;
    }
    $table_element = array(
      '#theme' => 'table',
      '#header' => $header,
      '#rows' => $rows,
      '#empty' => t("You don't have any cases yet."),
    );
    return drupal_render($table_element);
  }
  else {
    drupal_set_message(t("There isn't any Case or Project types defined on Case Tracker,\n      making this page useless. If you want to create one now, please go to <a href='@link'>admin/structure/casetracker</a>.", array(
      '@link' => url('admin/structure/casetracker'),
    )), 'warning');
    return '';
  }
}
function casetracker_admin_dashboard() {
  $local_cases = menu_local_tasks();
  $content = array();
  foreach ($local_cases['tabs']['output'] as $case) {
    $content[] = $case['#link'];
  }
  $form = drupal_get_form('casetracker_create_basic_types_form');
  $output = render($form);
  $output .= theme('admin_block_content', array(
    'content' => $content,
  ));
  return $output;
}

Functions

Namesort descending Description
casetracker_admin_dashboard
casetracker_overview @file This file have the page callback functions that are called in hook_menu()