|  | @@ -131,7 +131,47 @@ function tripal_get_module_active_jobs($modulename) {
 | 
	
		
			
				|  |  |             "WHERE TJ.end_time IS NULL and TJ.modulename = '%s' ";
 | 
	
		
			
				|  |  |    return db_fetch_object(db_query($sql, $modulename));
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @ingroup tripal_core
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +function tripal_jobs_report_form($form, &$form_state = NULL) {
 | 
	
		
			
				|  |  | +  $form = array();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +  // set the default values
 | 
	
		
			
				|  |  | +  $default_status = $form_state['values']['job_status'];
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  if (!$default_status) {
 | 
	
		
			
				|  |  | +    $default_status = variable_get('tripal_job_status_filter', NULL);
 | 
	
		
			
				|  |  | +  }    
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  $form['job_status'] = array(
 | 
	
		
			
				|  |  | +    '#type'          => 'select',
 | 
	
		
			
				|  |  | +    '#title'         => t('Filter by Job Status'),
 | 
	
		
			
				|  |  | +    '#default_value' => $default_status,
 | 
	
		
			
				|  |  | +    '#options' => array(
 | 
	
		
			
				|  |  | +	    0           => 'All Jobs',
 | 
	
		
			
				|  |  | +	    'Running'   => 'Running',
 | 
	
		
			
				|  |  | +	    'Completed' => 'Completed',    
 | 
	
		
			
				|  |  | +	    'Cancelled' => 'Cancelled', 
 | 
	
		
			
				|  |  | +	    'Error'     => 'Error',  
 | 
	
		
			
				|  |  | +	  ),
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  $form['submit'] = array(
 | 
	
		
			
				|  |  | +    '#type'         => 'submit',
 | 
	
		
			
				|  |  | +    '#value'        => t('Filter'),
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +  return $form;  
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * @ingroup tripal_core
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +function tripal_jobs_report_form_submit($form, &$form_state = NULL) {
 | 
	
		
			
				|  |  | +  $job_status = $form_state['values']['job_status'];
 | 
	
		
			
				|  |  | +  variable_set('tripal_job_status_filter', $job_status);    
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * Returns the Tripal Job Report
 | 
	
		
			
				|  |  |   *
 | 
	
	
		
			
				|  | @@ -142,36 +182,26 @@ function tripal_get_module_active_jobs($modulename) {
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function tripal_jobs_report() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  //$jobs = db_query("SELECT * FROM {tripal_jobs} ORDER BY job_id DESC");
 | 
	
		
			
				|  |  | -  $jobs = pager_query(
 | 
	
		
			
				|  |  | -    "SELECT TJ.job_id,TJ.uid,TJ.job_name,TJ.modulename,TJ.progress,
 | 
	
		
			
				|  |  | -            TJ.status as job_status, TJ,submit_date,TJ.start_time,
 | 
	
		
			
				|  |  | -            TJ.end_time,TJ.priority,U.name as username
 | 
	
		
			
				|  |  | -     FROM {tripal_jobs} TJ
 | 
	
		
			
				|  |  | -       INNER JOIN {users} U on TJ.uid = U.uid
 | 
	
		
			
				|  |  | -     ORDER BY job_id DESC", 10, 0, "SELECT count(*) FROM {tripal_jobs}");
 | 
	
		
			
				|  |  | -  // create a table with each row containig stats for
 | 
	
		
			
				|  |  | -  // an individual job in the results set.
 | 
	
		
			
				|  |  | -  $output .= "Waiting jobs are executed first by priority level (the lower the ".
 | 
	
		
			
				|  |  | -            "number the higher the priority) and second by the order they ".
 | 
	
		
			
				|  |  | -            "were entered";
 | 
	
		
			
				|  |  | -  $output .= "<table class=\"tripal-table tripal-table-horz\">".
 | 
	
		
			
				|  |  | -            "  <tr>".
 | 
	
		
			
				|  |  | -            "    <th>Job ID</th>".
 | 
	
		
			
				|  |  | -            "    <th>User</th>".
 | 
	
		
			
				|  |  | -            "    <th>Job Name</th>".
 | 
	
		
			
				|  |  | -            "    <th nowrap>Dates</th>".
 | 
	
		
			
				|  |  | -         "    <th>Priority</th>".
 | 
	
		
			
				|  |  | -         "    <th>Progress</th>".
 | 
	
		
			
				|  |  | -            "    <th>Status</th>".
 | 
	
		
			
				|  |  | -            "    <th>Actions</th>".
 | 
	
		
			
				|  |  | -            "  </tr>";
 | 
	
		
			
				|  |  | -  $i = 0;
 | 
	
		
			
				|  |  | +	$jobs_status_filter = variable_get('tripal_job_status_filter', NULL);
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  $sql = "
 | 
	
		
			
				|  |  | +    SELECT 
 | 
	
		
			
				|  |  | +      TJ.job_id,TJ.uid,TJ.job_name,TJ.modulename,TJ.progress,
 | 
	
		
			
				|  |  | +      TJ.status as job_status, TJ,submit_date,TJ.start_time,
 | 
	
		
			
				|  |  | +      TJ.end_time,TJ.priority,U.name as username
 | 
	
		
			
				|  |  | +    FROM {tripal_jobs} TJ
 | 
	
		
			
				|  |  | +      INNER JOIN {users} U on TJ.uid = U.uid ";
 | 
	
		
			
				|  |  | +  if ($jobs_status_filter) {
 | 
	
		
			
				|  |  | +    $sql .= "WHERE TJ.status = '%s' ";
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  $sql .= "ORDER BY job_id DESC";
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  $jobs = pager_query($sql, 25, 0, "SELECT count(*) FROM ($sql) as t1", $jobs_status_filter);
 | 
	
		
			
				|  |  | +  $header = array('Job ID', 'User', 'Job Name', 'Dates', 'Priority', 'Progress', 'Status', 'Action');
 | 
	
		
			
				|  |  | +  $rows = array();  
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  // iterate through the jobs
 | 
	
		
			
				|  |  |    while ($job = db_fetch_object($jobs)) {
 | 
	
		
			
				|  |  | -    $class = 'tripal-table-odd-row';
 | 
	
		
			
				|  |  | -    if ($i % 2 == 0 ) {
 | 
	
		
			
				|  |  | -      $class = 'tripal-table-even-row';
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |      $submit = tripal_jobs_get_submit_date($job);
 | 
	
		
			
				|  |  |      $start = tripal_jobs_get_start_time($job);
 | 
	
		
			
				|  |  |      $end = tripal_jobs_get_end_time($job);
 | 
	
	
		
			
				|  | @@ -181,21 +211,24 @@ function tripal_jobs_report() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      $rerun_link = "<a href=\"" . url("admin/tripal/tripal_jobs/rerun/" . $job->job_id) . "\">Re-run</a><br />";
 | 
	
		
			
				|  |  |      $view_link ="<a href=\"" . url("admin/tripal/tripal_jobs/view/" . $job->job_id) . "\">View</a>";
 | 
	
		
			
				|  |  | -    $output .= "  <tr class=\"$class\">";
 | 
	
		
			
				|  |  | -    $output .= "    <td>$job->job_id</td>".
 | 
	
		
			
				|  |  | -               "    <td>$job->username</td>".
 | 
	
		
			
				|  |  | -               "    <td>$job->job_name</td>".
 | 
	
		
			
				|  |  | -               "    <td nowrap>Submit Date: $submit".
 | 
	
		
			
				|  |  | -               "    <br />Start Time: $start".
 | 
	
		
			
				|  |  | -               "    <br />End Time: $end</td>".
 | 
	
		
			
				|  |  | -               "    <td>$job->priority</td>".
 | 
	
		
			
				|  |  | -           "    <td>$job->progress%</td>".
 | 
	
		
			
				|  |  | -               "    <td>$job->job_status</td>".
 | 
	
		
			
				|  |  | -               "    <td>$cancel_link $rerun_link $view_link</td>".
 | 
	
		
			
				|  |  | -               "  </tr>";
 | 
	
		
			
				|  |  | -    $i++;
 | 
	
		
			
				|  |  | +    $rows[] = array(
 | 
	
		
			
				|  |  | +      $job->job_id,
 | 
	
		
			
				|  |  | +      $job->username,
 | 
	
		
			
				|  |  | +      $job->job_name,
 | 
	
		
			
				|  |  | +      "Submit Date: $submit<br>Start Time: $start<br>End Time: $end",
 | 
	
		
			
				|  |  | +      $job->priority,
 | 
	
		
			
				|  |  | +      $job->progress . '%',
 | 
	
		
			
				|  |  | +      $job->job_status,
 | 
	
		
			
				|  |  | +      "$cancel_link $rerun_link $view_link",
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  $output .= "</table>";
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  // create the report page
 | 
	
		
			
				|  |  | +  $output .= "Waiting jobs are executed first by priority level (the lower the ".
 | 
	
		
			
				|  |  | +             "number the higher the priority) and second by the order they ".
 | 
	
		
			
				|  |  | +             "were entered";
 | 
	
		
			
				|  |  | +  $output .= drupal_get_form('tripal_jobs_report_form');
 | 
	
		
			
				|  |  | +  $output .= theme('table', $header, $rows);
 | 
	
		
			
				|  |  |    $output .= theme_pager();
 | 
	
		
			
				|  |  |    return $output;
 | 
	
		
			
				|  |  |  }
 |