|  | @@ -30,7 +30,7 @@
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * @ingroup tripal_mviews_api
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | -function tripal_add_mview ($name,$modulename,$mv_table,$mv_specs,$indexed,$query,$special_index){
 | 
	
		
			
				|  |  | +function tripal_add_mview ($name,$modulename,$mv_table,$mv_specs,$indexed,$query,$special_index,$comment){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |     $record = new stdClass();
 | 
	
		
			
				|  |  |     $record->name = $name;
 | 
	
	
		
			
				|  | @@ -41,6 +41,7 @@ function tripal_add_mview ($name,$modulename,$mv_table,$mv_specs,$indexed,$query
 | 
	
		
			
				|  |  |     $record->indexed = $indexed;
 | 
	
		
			
				|  |  |     $record->query = $query;
 | 
	
		
			
				|  |  |     $record->special_index = $special_index;
 | 
	
		
			
				|  |  | +   $record->comment = $comment;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |     // add the record to the tripal_mviews table and if successful
 | 
	
		
			
				|  |  |     // create the new materialized view in the chado schema
 | 
	
	
		
			
				|  | @@ -96,7 +97,7 @@ function tripal_add_mview ($name,$modulename,$mv_table,$mv_specs,$indexed,$query
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * @ingroup tripal_mviews_api
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | -function tripal_edit_mview ($mview_id,$name,$modulename,$mv_table,$mv_specs,$indexed,$query,$special_index){
 | 
	
		
			
				|  |  | +function tripal_edit_mview ($mview_id,$name,$modulename,$mv_table,$mv_specs,$indexed,$query,$special_index,$comment){
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |     $record = new stdClass();
 | 
	
		
			
				|  |  |     $record->mview_id = $mview_id;
 | 
	
	
		
			
				|  | @@ -109,6 +110,8 @@ function tripal_edit_mview ($mview_id,$name,$modulename,$mv_table,$mv_specs,$ind
 | 
	
		
			
				|  |  |     $record->query = $query;
 | 
	
		
			
				|  |  |     $record->special_index = $special_index;
 | 
	
		
			
				|  |  |     $record->last_update = 0;
 | 
	
		
			
				|  |  | +   $record->status = '';
 | 
	
		
			
				|  |  | +   $record->comment = $comment;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |     // drop the table from chado if it exists
 | 
	
		
			
				|  |  |     $sql = "SELECT * FROM {tripal_mviews} WHERE mview_id = $mview_id ";
 | 
	
	
		
			
				|  | @@ -235,14 +238,22 @@ function tripal_update_mview ($mview_id){
 | 
	
		
			
				|  |  |        $results = db_query("INSERT INTO $mview->mv_table ($mview->query)");
 | 
	
		
			
				|  |  |        tripal_db_set_active($previous_db);  // now use drupal database
 | 
	
		
			
				|  |  |        if($results){
 | 
	
		
			
				|  |  | +         $sql = "SELECT count(*) as cnt FROM $mview->mv_table";
 | 
	
		
			
				|  |  | +         $count = db_fetch_object(db_query($sql));
 | 
	
		
			
				|  |  |  	      $record = new stdClass();
 | 
	
		
			
				|  |  |           $record->mview_id = $mview_id;
 | 
	
		
			
				|  |  |           $record->last_update = time();
 | 
	
		
			
				|  |  | +         $record->status = "Populated with " . $count->cnt . " rows";
 | 
	
		
			
				|  |  |  		   drupal_write_record('tripal_mviews',$record,'mview_id');
 | 
	
		
			
				|  |  |  		   return 1;
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -	     // TODO -- error handling
 | 
	
		
			
				|  |  | -	     return 0;
 | 
	
		
			
				|  |  | +         # print and save the error message
 | 
	
		
			
				|  |  | +	      $record = new stdClass();
 | 
	
		
			
				|  |  | +         $record->mview_id = $mview_id;
 | 
	
		
			
				|  |  | +         $record->status = "ERROR populating. See Drupal's recent log entries for details.";
 | 
	
		
			
				|  |  | +         print $record->status . "\n";
 | 
	
		
			
				|  |  | +		   drupal_write_record('tripal_mviews',$record,'mview_id');
 | 
	
		
			
				|  |  | +	      return 0;
 | 
	
		
			
				|  |  |  	  }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -340,7 +351,7 @@ function tripal_mview_report ($mview_id) {
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  |  function tripal_mviews_report () {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -   $header = array('','MView Name','Last Update','');
 | 
	
		
			
				|  |  | +   $header = array('','MView Name','Last Update','Status','Description','');
 | 
	
		
			
				|  |  |     $rows = array();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |     $mviews = db_query("SELECT * FROM {tripal_mviews} ORDER BY name");  
 | 
	
	
		
			
				|  | @@ -356,13 +367,15 @@ function tripal_mviews_report () {
 | 
	
		
			
				|  |  |           l('Populate',"admin/tripal/mviews/action/update/$mview->mview_id"),
 | 
	
		
			
				|  |  |           $mview->name,
 | 
	
		
			
				|  |  |           $update,
 | 
	
		
			
				|  |  | +         $mview->status,
 | 
	
		
			
				|  |  | +         $mview->comment,
 | 
	
		
			
				|  |  |           l('Delete',"admin/tripal/mviews/action/delete/$mview->mview_id"),
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     $rows[] = array(
 | 
	
		
			
				|  |  |        'data' => array( 
 | 
	
		
			
				|  |  |           array('data' => l('Create a new materialized view.',"admin/tripal/mviews/new"), 
 | 
	
		
			
				|  |  | -               'colspan' => 4),
 | 
	
		
			
				|  |  | +               'colspan' => 6),
 | 
	
		
			
				|  |  |           )
 | 
	
		
			
				|  |  |     );
 | 
	
		
			
				|  |  |     $page = theme('table', $header, $rows);
 | 
	
	
		
			
				|  | @@ -396,6 +409,7 @@ function tripal_mviews_form(&$form_state = NULL,$mview_id = NULL){
 | 
	
		
			
				|  |  |        $default_indexed = $form_state['values']['indexed'];
 | 
	
		
			
				|  |  |        $default_mvquery = $form_state['values']['mvquery'];
 | 
	
		
			
				|  |  |        $default_special_index = $form_state['values']['special_index'];
 | 
	
		
			
				|  |  | +      $default_comment = $form_state['values']['cpmment'];
 | 
	
		
			
				|  |  |        if(!$default_name){
 | 
	
		
			
				|  |  |           $default_name = $mview->name;
 | 
	
		
			
				|  |  |        }
 | 
	
	
		
			
				|  | @@ -414,6 +428,9 @@ function tripal_mviews_form(&$form_state = NULL,$mview_id = NULL){
 | 
	
		
			
				|  |  |        if(!$default_special_index){
 | 
	
		
			
				|  |  |           $default_special_index = $mview->special_index;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +      if(!$default_comment){
 | 
	
		
			
				|  |  | +         $default_comment = $mview->comment;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     // Build the form
 | 
	
		
			
				|  |  |     $form['action'] = array(
 | 
	
	
		
			
				|  | @@ -465,6 +482,14 @@ function tripal_mviews_form(&$form_state = NULL,$mview_id = NULL){
 | 
	
		
			
				|  |  |        '#default_value' => $default_mvquery,
 | 
	
		
			
				|  |  |        '#weight'        => 6
 | 
	
		
			
				|  |  |     );
 | 
	
		
			
				|  |  | +   $form['comment']= array(
 | 
	
		
			
				|  |  | +      '#type'          => 'textarea',
 | 
	
		
			
				|  |  | +      '#title'         => t('MView Description'),
 | 
	
		
			
				|  |  | +      '#description'   => t('Optional.  Please provide a description of the purpose for this materialized vieww.'),
 | 
	
		
			
				|  |  | +      '#required'      => FALSE,
 | 
	
		
			
				|  |  | +      '#default_value' => $default_comment,
 | 
	
		
			
				|  |  | +      '#weight'        => 6
 | 
	
		
			
				|  |  | +   );
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |     $form['special_index']= array(
 | 
	
		
			
				|  |  |        '#type'          => 'textarea',
 | 
	
	
		
			
				|  | @@ -506,12 +531,13 @@ function tripal_mviews_form_submit($form, &$form_state){
 | 
	
		
			
				|  |  |     $indexed = $form_state['values']['indexed'];
 | 
	
		
			
				|  |  |     $query = $form_state['values']['mvquery'];
 | 
	
		
			
				|  |  |     $special_index = $form_state['values']['special_index'];
 | 
	
		
			
				|  |  | +   $comment = $form_state['values']['comment'];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |     if(strcmp($action,'Edit')==0){
 | 
	
		
			
				|  |  | -      tripal_edit_mview($mview_id,$name, 'tripal_core',$mv_table, $mv_specs,$indexed,$query,$special_index);
 | 
	
		
			
				|  |  | +      tripal_edit_mview($mview_id,$name, 'tripal_core',$mv_table, $mv_specs,$indexed,$query,$special_index,$comment);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     else if(strcmp($action,'Add')==0){
 | 
	
		
			
				|  |  | -      tripal_add_mview ($name, 'tripal_core',$mv_table, $mv_specs,$indexed,$query,$special_index);
 | 
	
		
			
				|  |  | +      tripal_add_mview ($name, 'tripal_core',$mv_table, $mv_specs,$indexed,$query,$special_index,$comment);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     else {
 | 
	
		
			
				|  |  |          drupal_set_message("No action performed.");
 |