You are here

function ultimate_cron_function_log_page in Ultimate Cron 7

Same name and namespace in other branches
  1. 8 ultimate_cron.admin.inc \ultimate_cron_function_log_page()
  2. 6 ultimate_cron.admin.inc \ultimate_cron_function_log_page()

Function log page.

1 string reference to 'ultimate_cron_function_log_page'
ultimate_cron_menu in ./ultimate_cron.module
Implements hook_menu().

File

./ultimate_cron.admin.inc, line 505

Code

function ultimate_cron_function_log_page($function) {
  $hooks = ultimate_cron_get_hooks();
  if (!isset($hooks[(string) $function])) {
    drupal_not_found();
    exit;
  }
  drupal_add_css(drupal_get_path('module', 'ultimate_cron') . '/css/ultimate_cron.admin.css');
  $header = array(
    array(
      'data' => t('Start'),
      'field' => 'start_stamp',
      'sort' => 'DESC',
    ),
    array(
      'data' => t('End'),
      'field' => 'end_stamp',
    ),
    t('Duration'),
    t('Service host'),
    t('Status'),
    t('Message'),
  );
  drupal_set_title(check_plain($function));
  $query = db_select('ultimate_cron_log', 'l');
  $query = $query
    ->condition('l.name', $function)
    ->extend('PagerDefault')
    ->limit(10)
    ->extend('TableSort')
    ->orderByHeader($header)
    ->fields('l', array(
    'lid',
    'name',
    'start_stamp',
    'end_stamp',
    'service_host',
    'exec_status',
    'msg',
    'severity',
  ))
    ->orderBy('l.start_stamp', 'DESC');
  $logs = $query
    ->execute()
    ->fetchAll();
  $handle_prefix = variable_get('ultimate_cron_handle_prefix', ULTIMATE_CRON_HANDLE_PREFIX);
  $output = '';
  $rows = array();
  if (empty($_GET['page']) && ($process = background_process_get_process($handle_prefix . $function))) {
    $data = array(
      array(
        'class' => array(
          'ultimate-cron-admin-start',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-end',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-duration',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-service-host',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-status ultimate-cron-admin-status-running',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-message',
        ),
      ),
    );
    $duration = time() - $process->start_stamp;
    $duration = gmdate('H:i:s', (int) $duration);
    $progress = progress_get_progress($handle_prefix . $function);
    if ($progress && $progress->progress > 0) {
      $duration .= sprintf(" (%d%%)", $progress->progress * 100);
    }
    $data[0]['data'] = format_date((int) $process->start_stamp, 'custom', 'Y-m-d H:i:s');
    $data[1]['data'] = t('N/A');
    $data[2]['data'] = $duration;
    $data[3]['data'] = $process->service_host ? $process->service_host : t('N/A');
    $data[4]['data'] = '<span>' . t('running') . '</span>';
    $data[5]['data'] = '';
    $rows[] = $data;
  }
  foreach ($logs as $log) {
    $log->function = $log->name;
    $log->status = $log->exec_status;
    $log->start = $log->start_stamp;
    $log->end = $log->end_stamp;
    $severity_type = $log->severity < 0 ? 'success' : ($log->severity >= WATCHDOG_NOTICE ? 'info' : ($log->severity >= WATCHDOG_WARNING ? 'warning' : 'error'));
    $css_status = $severity_type;
    $data = array(
      array(
        'class' => array(
          'ultimate-cron-admin-start',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-end',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-duration',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-service-host',
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-status ultimate-cron-admin-status-' . $css_status,
        ),
      ),
      array(
        'class' => array(
          'ultimate-cron-admin-message',
        ),
      ),
    );
    $data[0]['data'] = format_date((int) $log->start, 'custom', 'Y-m-d H:i:s');
    $data[1]['data'] = format_date((int) $log->end, 'custom', 'Y-m-d H:i:s');
    $data[2]['data'] = gmdate('H:i:s', (int) ($log->end - $log->start));
    $data[3]['data'] = $log->service_host ? $log->service_host : t('N/A');
    $data[4]['data'] = '<span>' . $log->status . '</span>';
    $data[5]['data'] = $log->msg;
    $rows[] = $data;
  }
  $output .= theme('table', array(
    'header' => $header,
    'rows' => $rows,
    'attributes' => array(
      'id' => 'ultimate-cron-view',
    ),
  ));
  $output .= theme('pager');
  return $output;
}