| 
					
				 | 
			
			
				@@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |