Bläddra i källkod

CV: Updated menu & cv/cvterm add/edit forms to work with default admin views, fixed some bugs in default admin views & cleaned out duplicated buggy code from tripal_cv_admin.inc

Lacey Sanderson 11 år sedan
förälder
incheckning
842f838866

+ 43 - 40
tripal_cv/includes/cv_form.inc

@@ -1,4 +1,4 @@
-<?php 
+<?php
 /**
 /**
  * Purpose: Provides the actual "Select CV" form on the Update/Delete Controlled
  * Purpose: Provides the actual "Select CV" form on the Update/Delete Controlled
  *   Vocabulary page. This form also triggers the edit javascript
  *   Vocabulary page. This form also triggers the edit javascript
@@ -12,8 +12,11 @@ function tripal_cv_cv_edit_form($form, &$form_state) {
   $cv_id = 0;
   $cv_id = 0;
   if (array_key_exists('values', $form_state)) {
   if (array_key_exists('values', $form_state)) {
     $cv_id = $form_state['values']['cv_id'];
     $cv_id = $form_state['values']['cv_id'];
-  }    
-  
+  }
+  elseif (isset($form_state['build_info']['args'][0])) {
+    $cv_id = $form_state['build_info']['args'][0];
+  }
+
   // get a list of db from chado for user to choose
   // get a list of db from chado for user to choose
   $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
   $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
   $results = chado_query($sql);
   $results = chado_query($sql);
@@ -35,15 +38,15 @@ function tripal_cv_cv_edit_form($form, &$form_state) {
       'event'    => 'change',
       'event'    => 'change',
       'method'   => 'replace',
       'method'   => 'replace',
     ),
     ),
-    '#default_value' => $cv_id, 
+    '#default_value' => $cv_id,
   );
   );
 
 
-        
+
   // if we don't have a db_id then we can  return the form, otherwise
   // if we don't have a db_id then we can  return the form, otherwise
   // add in the other fields
   // add in the other fields
   if ($cv_id) {
   if ($cv_id) {
     tripal_cv_add_cv_form_fields($form, $form_state, $cv_id);
     tripal_cv_add_cv_form_fields($form, $form_state, $cv_id);
-        
+
     $form['update'] = array(
     $form['update'] = array(
       '#type'         => 'submit',
       '#type'         => 'submit',
       '#value'        => t('Update'),
       '#value'        => t('Update'),
@@ -51,7 +54,7 @@ function tripal_cv_cv_edit_form($form, &$form_state) {
     $form['delete'] = array(
     $form['delete'] = array(
       '#type'         => 'submit',
       '#type'         => 'submit',
       '#value'        => t('Delete'),
       '#value'        => t('Delete'),
-      '#attributes'   => array('onclick' => 'if(!confirm("Really Delete?")){return false;}'), 
+      '#attributes'   => array('onclick' => 'if(!confirm("Really Delete?")){return false;}'),
     );
     );
   }
   }
   else {
   else {
@@ -62,21 +65,21 @@ function tripal_cv_cv_edit_form($form, &$form_state) {
       '#prefix' => '<div id="cv-edit-div">',
       '#prefix' => '<div id="cv-edit-div">',
       '#suffix' => '</div>',
       '#suffix' => '</div>',
     );
     );
-  } 
+  }
   return $form;
   return $form;
 }
 }
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  * @ingroup tripal_db
  */
  */
 function tripal_cv_cv_add_form($form, $form_state) {
 function tripal_cv_cv_add_form($form, $form_state) {
-  
+
   // add in the form fields to this form
   // add in the form fields to this form
   tripal_cv_add_cv_form_fields($form, $form_state);
   tripal_cv_add_cv_form_fields($form, $form_state);
-  
+
   $form['add'] = array(
   $form['add'] = array(
     '#type'         => 'submit',
     '#type'         => 'submit',
     '#value'        => t('Add'),
     '#value'        => t('Add'),
@@ -85,11 +88,11 @@ function tripal_cv_cv_add_form($form, $form_state) {
   return $form;
   return $form;
 }
 }
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  * @param $cv_id
  * @param $cv_id
- * 
+ *
  * @ingroup tripal_db
  * @ingroup tripal_db
  */
  */
 function tripal_cv_add_cv_form_fields(&$form, $form_state, $cv_id = NULL) {
 function tripal_cv_add_cv_form_fields(&$form, $form_state, $cv_id = NULL) {
@@ -100,17 +103,17 @@ function tripal_cv_add_cv_form_fields(&$form, $form_state, $cv_id = NULL) {
   if ($cv_id) {
   if ($cv_id) {
     $values = array('cv_id' => $cv_id);
     $values = array('cv_id' => $cv_id);
     $result = tripal_core_chado_select('cv', array('*'), $values);
     $result = tripal_core_chado_select('cv', array('*'), $values);
-    $cv = $result[0]; 
+    $cv = $result[0];
     $default_name = $cv->name;
     $default_name = $cv->name;
-    $default_desc = $cv->definition; 
-  }   
-  
+    $default_desc = $cv->definition;
+  }
+
   // add a fieldset for the Drupal Schema API
   // add a fieldset for the Drupal Schema API
   $form['fields'] = array(
   $form['fields'] = array(
     '#type' => 'fieldset',
     '#type' => 'fieldset',
     '#title' => 'Controlled Vocabulary Details',
     '#title' => 'Controlled Vocabulary Details',
     '#collapsible' => 0,
     '#collapsible' => 0,
-  );      
+  );
 
 
   $form['fields']['name']= array(
   $form['fields']['name']= array(
     '#type'          => 'textfield',
     '#type'          => 'textfield',
@@ -118,7 +121,7 @@ function tripal_cv_add_cv_form_fields(&$form, $form_state, $cv_id = NULL) {
     '#description'   => t('Please enter the name for this vocabulary.'),
     '#description'   => t('Please enter the name for this vocabulary.'),
     '#required'      => TRUE,
     '#required'      => TRUE,
     '#default_value' => $default_name,
     '#default_value' => $default_name,
-    '#maxlength'     => 255,  
+    '#maxlength'     => 255,
   );
   );
 
 
   $form['fields']['definition']= array(
   $form['fields']['definition']= array(
@@ -135,44 +138,44 @@ function tripal_cv_add_cv_form_fields(&$form, $form_state, $cv_id = NULL) {
  * Validation fucntion for tripal_cv_cv_add_form
  * Validation fucntion for tripal_cv_cv_add_form
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
- * 
+ *
  * @ingroup tripal_cv
  * @ingroup tripal_cv
  */
  */
 function tripal_cv_cv_add_form_validate($form, &$form_state) {
 function tripal_cv_cv_add_form_validate($form, &$form_state) {
-  tripal_cv_form_fields_validate($form, $form_state); 
+  tripal_cv_form_fields_validate($form, $form_state);
 }
 }
 /**
 /**
  * Validation fucntion for tripal_cv_cv_edit_form
  * Validation fucntion for tripal_cv_cv_edit_form
  * @param unknown_type $form
  * @param unknown_type $form
  * @param unknown_type $form_state
  * @param unknown_type $form_state
- * 
+ *
  * @ingroup tripal_cv
  * @ingroup tripal_cv
  */
  */
 function tripal_cv_cv_edit_form_validate($form, &$form_state) {
 function tripal_cv_cv_edit_form_validate($form, &$form_state) {
-  tripal_cv_form_fields_validate($form, $form_state); 
+  tripal_cv_form_fields_validate($form, $form_state);
 }
 }
 /**
 /**
  * Genetic validation form for shared fields of both the edit and add forms
  * Genetic validation form for shared fields of both the edit and add forms
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
- * 
+ *
  * @ingroup tripal_cv
  * @ingroup tripal_cv
  */
  */
 function tripal_cv_form_fields_validate($form, &$form_state) {
 function tripal_cv_form_fields_validate($form, &$form_state) {
   $name =  array_key_exists('name', $form_state['values'])       ? trim($form_state['values']['name']) : '';
   $name =  array_key_exists('name', $form_state['values'])       ? trim($form_state['values']['name']) : '';
   $desc =  array_key_exists('definition', $form_state['values']) ? trim($form_state['values']['definition']) : '';
   $desc =  array_key_exists('definition', $form_state['values']) ? trim($form_state['values']['definition']) : '';
   $cv_id = array_key_exists('cv_id', $form_state['values'])      ? trim($form_state['values']['cv_id']) : '';
   $cv_id = array_key_exists('cv_id', $form_state['values'])      ? trim($form_state['values']['cv_id']) : '';
-  
-   
+
+
   // make sure the cv name is unique
   // make sure the cv name is unique
   $values = array('name' => $name);
   $values = array('name' => $name);
-  $results = tripal_core_chado_select('cv', array('cv_id'), $values);   
+  $results = tripal_core_chado_select('cv', array('cv_id'), $values);
   if (count($results) > 0 and $results[0]->cv_id != $cv_id) {
   if (count($results) > 0 and $results[0]->cv_id != $cv_id) {
     form_set_error('name', 'The vocabulary name must be unique');
     form_set_error('name', 'The vocabulary name must be unique');
   }
   }
 }
 }
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  */
  */
@@ -191,10 +194,10 @@ function tripal_cv_cv_add_form_submit($form, &$form_state) {
   }
   }
   else {
   else {
     drupal_set_message(t("Failed to add controlled vocabulary."));
     drupal_set_message(t("Failed to add controlled vocabulary."));
-  }     
+  }
 }
 }
 /**
 /**
- * 
+ *
  * @param unknown_type $form
  * @param unknown_type $form
  * @param unknown_type $form_state
  * @param unknown_type $form_state
  */
  */
@@ -203,12 +206,12 @@ function tripal_cv_cv_edit_form_submit($form, &$form_state) {
   $desc  = array_key_exists('definition', $form_state['values']) ? trim($form_state['values']['definition']) : '';
   $desc  = array_key_exists('definition', $form_state['values']) ? trim($form_state['values']['definition']) : '';
   $cv_id = array_key_exists('cv_id', $form_state['values'])      ? trim($form_state['values']['cv_id']) : '';
   $cv_id = array_key_exists('cv_id', $form_state['values'])      ? trim($form_state['values']['cv_id']) : '';
   $op    = array_key_exists('op', $form_state['values'])         ? trim($form_state['values']['op']) : '';
   $op    = array_key_exists('op', $form_state['values'])         ? trim($form_state['values']['op']) : '';
-  
+
   $values = array(
   $values = array(
     'name' => $name,
     'name' => $name,
     'definition' => $desc,
     'definition' => $desc,
   );
   );
-  if (strcmp($op, 'Update')==0) {      
+  if (strcmp($op, 'Update')==0) {
     $match = array('cv_id' => $cv_id);
     $match = array('cv_id' => $cv_id);
     $success = tripal_core_chado_update('cv', $match, $values);
     $success = tripal_core_chado_update('cv', $match, $values);
     if ($success) {
     if ($success) {
@@ -235,25 +238,25 @@ function tripal_cv_cv_edit_form_submit($form, &$form_state) {
  * @ingroup tripal_cv
  * @ingroup tripal_cv
  */
  */
 function tripal_cv_edit_form_ajax($form, $form_state) {
 function tripal_cv_edit_form_ajax($form, $form_state) {
-  
+
   $elements = array();
   $elements = array();
-  
-  // add in the form fields and the buttons 
+
+  // add in the form fields and the buttons
   if (array_key_exists('cv_id', $form_state['values'])) {
   if (array_key_exists('cv_id', $form_state['values'])) {
     $elements['fields'] = $form['fields'];
     $elements['fields'] = $form['fields'];
     $elements['update'] = $form['update'];
     $elements['update'] = $form['update'];
     $elements['delete'] = $form['delete'];
     $elements['delete'] = $form['delete'];
   }
   }
-  
+
    // add back in the cv-edit-div that is used for the next round of AJAX
    // add back in the cv-edit-div that is used for the next round of AJAX
   $elements['fields']['#prefix'] =  '<div id="cv-edit-div">';
   $elements['fields']['#prefix'] =  '<div id="cv-edit-div">';
   $elements['fields']['#suffix'] =  '</div">';
   $elements['fields']['#suffix'] =  '</div">';
-  
+
   // reset the values for the fields to the defaults
   // reset the values for the fields to the defaults
   $elements['fields']['name']['#value']        = $elements['fields']['name']['#default_value'];
   $elements['fields']['name']['#value']        = $elements['fields']['name']['#default_value'];
   $elements['fields']['definition']['#value']  = $elements['fields']['definition']['#default_value'];
   $elements['fields']['definition']['#value']  = $elements['fields']['definition']['#default_value'];
-  
+
   //drupal_set_message('<pre>' . print_r($elements, TRUE) . '</pre>', "status");
   //drupal_set_message('<pre>' . print_r($elements, TRUE) . '</pre>', "status");
-  
+
   return $elements;
   return $elements;
 }
 }

+ 109 - 94
tripal_cv/includes/cvterm_form.inc

@@ -1,7 +1,7 @@
-<?php 
+<?php
 
 
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  */
  */
@@ -20,16 +20,28 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
     $cv_id = $form_state['storage']['cv_id'];
     $cv_id = $form_state['storage']['cv_id'];
     $cvterm_name = $form_state['storage']['name'];
     $cvterm_name = $form_state['storage']['name'];
     $cvterm_id = $form_state['storage']['cvterm_id'];
     $cvterm_id = $form_state['storage']['cvterm_id'];
-  }  
+  }
   // get the cv if form was submitted via AJAX
   // get the cv if form was submitted via AJAX
   $cvterm = '';
   $cvterm = '';
   if (array_key_exists('values', $form_state)) {
   if (array_key_exists('values', $form_state)) {
-    $cv_id = $form_state['values']['cv_id'];   
+    $cv_id = $form_state['values']['cv_id'];
     if (array_key_exists('cvterm', $form_state['values'])) {
     if (array_key_exists('cvterm', $form_state['values'])) {
       $cvterm = $form_state['values']['cvterm'];
       $cvterm = $form_state['values']['cvterm'];
-    }    
-  }   
-    
+    }
+  }
+  elseif (isset($form_state['build_info']['args'][0])) {
+    $cv_id = $form_state['build_info']['args'][0];
+    $cvterm_id = $form_state['build_info']['args'][1];
+    if ($form_state['build_info']['args'][1]) {
+      $result = db_select('chado.cvterm','c')
+        ->fields('c', array('name'))
+        ->condition('c.cvterm_id',$cvterm_id)
+        ->execute();
+      $cvterm_name = $result->fetchObject()->name;
+      $step = 1;
+    }
+  }
+
   // get a list of CVs
   // get a list of CVs
   $cvs = array();
   $cvs = array();
   $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
   $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
@@ -37,7 +49,7 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
   $cvs[] = 'Select a vocabulary';
   $cvs[] = 'Select a vocabulary';
   foreach ($results as $cv) {
   foreach ($results as $cv) {
     $cvs[$cv->cv_id] = $cv->name;
     $cvs[$cv->cv_id] = $cv->name;
-  }    
+  }
   $form['cv_id'] = array(
   $form['cv_id'] = array(
     '#title' => t('Controlled Vocabulary (Ontology) Name'),
     '#title' => t('Controlled Vocabulary (Ontology) Name'),
     '#type' => 'select',
     '#type' => 'select',
@@ -50,11 +62,11 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
        'event'   => 'change',
        'event'   => 'change',
        'method'  => 'replace',
        'method'  => 'replace',
        'event'    => 'change',
        'event'    => 'change',
-    ),    
+    ),
   );
   );
-    
+
   if ($cv_id and $step == 0) {
   if ($cv_id and $step == 0) {
-    
+
     $form['name']= array(
     $form['name']= array(
       '#type'          => 'textfield',
       '#type'          => 'textfield',
       '#title'         => t("Term Name"),
       '#title'         => t("Term Name"),
@@ -68,16 +80,16 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
       '#value'         => 'continue',
       '#value'         => 'continue',
     );
     );
   }
   }
-  elseif ($step == 1) {    
-       
+  elseif ($step == 1) {
+
     tripal_cv_add_cvterm_form_fields($form, $form_state, $cv_id, $cvterm_name);
     tripal_cv_add_cvterm_form_fields($form, $form_state, $cv_id, $cvterm_name);
-    
+
     // when editing there are certain fields the user should not change for a term
     // when editing there are certain fields the user should not change for a term
     // let's mark those as disabled
     // let's mark those as disabled
     $form['cv_id']['#disabled'] = TRUE;
     $form['cv_id']['#disabled'] = TRUE;
     $form['fields']['db_id']['#disabled'] = TRUE;
     $form['fields']['db_id']['#disabled'] = TRUE;
     $form['fields']['accession']['#disabled'] = TRUE;
     $form['fields']['accession']['#disabled'] = TRUE;
-    
+
     // add in the div for replacing the fields if needed
     // add in the div for replacing the fields if needed
     $form['fields']['#prefix'] = '<div id="cvterm-edit-div">';
     $form['fields']['#prefix'] = '<div id="cvterm-edit-div">';
     $form['fields']['#suffix'] = '</div>';
     $form['fields']['#suffix'] = '</div>';
@@ -87,7 +99,7 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
       '#type' => 'hidden',
       '#type' => 'hidden',
       '#value' =>  $cvterm_id,
       '#value' =>  $cvterm_id,
     );
     );
-    
+
     $form['update'] = array(
     $form['update'] = array(
       '#type'         => 'submit',
       '#type'         => 'submit',
       '#value'        => t('Update'),
       '#value'        => t('Update'),
@@ -95,10 +107,10 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
     $form['delete'] = array(
     $form['delete'] = array(
       '#type'         => 'submit',
       '#type'         => 'submit',
       '#value'        => t('Delete'),
       '#value'        => t('Delete'),
-      '#attributes'   => array('onclick' => 'if(!confirm("Really Delete?")){return false;}'), 
-    );    
-  } 
-  
+      '#attributes'   => array('onclick' => 'if(!confirm("Really Delete?")){return false;}'),
+    );
+  }
+
   if ($step == 0) {
   if ($step == 0) {
     // if we don't have a cv_id then this is the first time the form has
     // if we don't have a cv_id then this is the first time the form has
     // benn loaded and we need to create the div where ajax replacement elements get stored
     // benn loaded and we need to create the div where ajax replacement elements get stored
@@ -111,16 +123,19 @@ function tripal_cv_cvterm_edit_form($form, &$form_state) {
   return $form;
   return $form;
 }
 }
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  */
  */
 function tripal_cv_cvterm_add_form($form, &$form_state) {
 function tripal_cv_cvterm_add_form($form, &$form_state) {
   $cv_id = 0;
   $cv_id = 0;
   if (array_key_exists('values', $form_state)) {
   if (array_key_exists('values', $form_state)) {
-    $cv_id = $form_state['values']['cv_id'];   
+    $cv_id = $form_state['values']['cv_id'];
   }
   }
-  
+  elseif (isset($form_state['build_info']['args'][0])) {
+    $cv_id = $form_state['build_info']['args'][0];
+  }
+
   // get a list of CVs
   // get a list of CVs
   $cvs = array();
   $cvs = array();
   $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
   $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
@@ -128,7 +143,7 @@ function tripal_cv_cvterm_add_form($form, &$form_state) {
   $cvs[] = 'Select a vocabulary';
   $cvs[] = 'Select a vocabulary';
   foreach ($results as $cv) {
   foreach ($results as $cv) {
     $cvs[$cv->cv_id] = $cv->name;
     $cvs[$cv->cv_id] = $cv->name;
-  }    
+  }
   $form['cv_id'] = array(
   $form['cv_id'] = array(
     '#title' => t('Controlled Vocabulary (Ontology) Name'),
     '#title' => t('Controlled Vocabulary (Ontology) Name'),
     '#type' => 'select',
     '#type' => 'select',
@@ -137,21 +152,21 @@ function tripal_cv_cvterm_add_form($form, &$form_state) {
     '#default_value' => $cv_id,
     '#default_value' => $cv_id,
   );
   );
   tripal_cv_add_cvterm_form_fields($form, $form_state);
   tripal_cv_add_cvterm_form_fields($form, $form_state);
-  
+
   $form['add'] = array(
   $form['add'] = array(
     '#type'         => 'submit',
     '#type'         => 'submit',
     '#value'        => t('Add Term'),
     '#value'        => t('Add Term'),
   );
   );
-  
+
   return $form;
   return $form;
 }
 }
 
 
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  * @param $cv_id
  * @param $cv_id
- * 
+ *
  * @ingroup tripal_db
  * @ingroup tripal_db
  */
  */
 function tripal_cv_add_cvterm_form_fields(&$form, $form_state, $cv_id = 0, $cvterm_name = '') {
 function tripal_cv_add_cvterm_form_fields(&$form, $form_state, $cv_id = 0, $cvterm_name = '') {
@@ -168,47 +183,47 @@ function tripal_cv_add_cvterm_form_fields(&$form, $form_state, $cv_id = 0, $cvte
     $values = array('cv_id' => $cv_id, 'name' => $cvterm_name);
     $values = array('cv_id' => $cv_id, 'name' => $cvterm_name);
     $cvterm = tripal_core_generate_chado_var('cvterm', $values);
     $cvterm = tripal_core_generate_chado_var('cvterm', $values);
     $name = $cvterm->name;
     $name = $cvterm->name;
-    $definition = $cvterm->definition; 
+    $definition = $cvterm->definition;
     $is_relationship = $cvterm->is_relationshiptype;
     $is_relationship = $cvterm->is_relationshiptype;
     $is_obsolete = $cvterm->is_obsolete;
     $is_obsolete = $cvterm->is_obsolete;
     $db_id = $cvterm->dbxref_id->db_id->db_id;
     $db_id = $cvterm->dbxref_id->db_id->db_id;
     $accession = $cvterm->dbxref_id->accession;
     $accession = $cvterm->dbxref_id->accession;
-  }    
-  
+  }
+
   // add a fieldset for the Drupal Schema API
   // add a fieldset for the Drupal Schema API
   $form['fields'] = array(
   $form['fields'] = array(
     '#type' => 'fieldset',
     '#type' => 'fieldset',
     '#title' => 'Term Details',
     '#title' => 'Term Details',
     '#collapsible' => 0,
     '#collapsible' => 0,
-  );      
-  
-  
+  );
+
+
   $form['fields']['name']= array(
   $form['fields']['name']= array(
     '#type'          => 'textfield',
     '#type'          => 'textfield',
     '#title'         => t("Term Name"),
     '#title'         => t("Term Name"),
     '#default_value' => $name,
     '#default_value' => $name,
     '#required'      => TRUE,
     '#required'      => TRUE,
   );
   );
-  
+
   $form['fields']['definition']= array(
   $form['fields']['definition']= array(
     '#type'          => 'textarea',
     '#type'          => 'textarea',
     '#title'         => t('Description'),
     '#title'         => t('Description'),
     '#description'   => t('Please enter a description for this term'),
     '#description'   => t('Please enter a description for this term'),
     '#default_value' => $definition,
     '#default_value' => $definition,
   );
   );
-  
+
   $form['fields']['is_relationship'] = array(
   $form['fields']['is_relationship'] = array(
     '#type'          => 'checkbox',
     '#type'          => 'checkbox',
     '#title'         => t('This term describes a relationship?'),
     '#title'         => t('This term describes a relationship?'),
     '#default_value' => $is_relationship,
     '#default_value' => $is_relationship,
   );
   );
-  
+
   $form['fields']['is_obsolete'] = array(
   $form['fields']['is_obsolete'] = array(
     '#type'          => 'checkbox',
     '#type'          => 'checkbox',
     '#title'         => t('This term is obsolete?'),
     '#title'         => t('This term is obsolete?'),
     '#default_value' => $is_obsolete,
     '#default_value' => $is_obsolete,
   );
   );
-  
+
   $values = array();
   $values = array();
   $columns = array('db_id', 'name');
   $columns = array('db_id', 'name');
   $options = array('order_by' => array('name' => 'ASC'));
   $options = array('order_by' => array('name' => 'ASC'));
@@ -228,22 +243,22 @@ function tripal_cv_add_cvterm_form_fields(&$form, $form_state, $cv_id = 0, $cvte
     '#default_value' => $db_id,
     '#default_value' => $db_id,
     '#required' => TRUE,
     '#required' => TRUE,
   );
   );
-  
+
   $form['fields']['accession']= array(
   $form['fields']['accession']= array(
     '#type'          => 'textfield',
     '#type'          => 'textfield',
     '#title'         => t("Accession"),
     '#title'         => t("Accession"),
-    '#description'   => t('If this term has an existing accession (unique identifier) in the database 
+    '#description'   => t('If this term has an existing accession (unique identifier) in the database
        please enter that here.  If the accession is numeric with a database prefix (e.g. GO:003023), please
        please enter that here.  If the accession is numeric with a database prefix (e.g. GO:003023), please
-       enter just the numeric value.  The database prefix will be appended whenever the term is displayed. 
-       If the accession is not numeric then enter it as is.  If no value is provied, the term name 
+       enter just the numeric value.  The database prefix will be appended whenever the term is displayed.
+       If the accession is not numeric then enter it as is.  If no value is provied, the term name
        provided above will be used as the accession.'),
        provided above will be used as the accession.'),
     '#required'      => TRUE,
     '#required'      => TRUE,
     '#default_value' => $accession,
     '#default_value' => $accession,
-  );     
+  );
 }
 }
 
 
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  */
  */
@@ -253,14 +268,14 @@ function tripal_cv_cvterm_edit_form_validate($form, &$form_state) {
   $name = array_key_exists('name', $form_state['values']) ? $form_state['values']['name'] : '';
   $name = array_key_exists('name', $form_state['values']) ? $form_state['values']['name'] : '';
   $cvterm_id = array_key_exists('cvterm_id', $form_state['values']) ? $form_state['values']['cvterm_id'] : '';
   $cvterm_id = array_key_exists('cvterm_id', $form_state['values']) ? $form_state['values']['cvterm_id'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
-  
+
   $step = $form_state['storage']['step'];
   $step = $form_state['storage']['step'];
-   
+
   // make sure the cv term name is unique for this vocabulary
   // make sure the cv term name is unique for this vocabulary
   if ($step == 1) {
   if ($step == 1) {
     $values = array('name' => $name, 'cv_id' => $cv_id);
     $values = array('name' => $name, 'cv_id' => $cv_id);
     $results = tripal_core_chado_select('cvterm', array('cvterm_id'), $values);
     $results = tripal_core_chado_select('cvterm', array('cvterm_id'), $values);
-    foreach ($results as $r) {   
+    foreach ($results as $r) {
       if ($r->cvterm_id != $cvterm_id) {
       if ($r->cvterm_id != $cvterm_id) {
         form_set_error('name', 'The term name must be unique for this vocabulary. Another term with this name already exists.');
         form_set_error('name', 'The term name must be unique for this vocabulary. Another term with this name already exists.');
       }
       }
@@ -268,7 +283,7 @@ function tripal_cv_cvterm_edit_form_validate($form, &$form_state) {
   }
   }
 }
 }
 /**
 /**
- * 
+ *
  * @param $form
  * @param $form
  * @param $form_state
  * @param $form_state
  */
  */
@@ -277,7 +292,7 @@ function tripal_cv_cvterm_add_form_validate($form, &$form_state) {
   $db_id = array_key_exists('db_id', $form_state['values']) ? $form_state['values']['db_id'] : '';
   $db_id = array_key_exists('db_id', $form_state['values']) ? $form_state['values']['db_id'] : '';
   $name = array_key_exists('name', $form_state['values']) ? $form_state['values']['name'] : '';
   $name = array_key_exists('name', $form_state['values']) ? $form_state['values']['name'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
-    
+
   $values = array('cv_id' => $cv_id);
   $values = array('cv_id' => $cv_id);
   $results = tripal_core_chado_select('cv', array('name'), $values);
   $results = tripal_core_chado_select('cv', array('name'), $values);
   if (!$results or count($results) == 0) {
   if (!$results or count($results) == 0) {
@@ -290,20 +305,20 @@ function tripal_cv_cvterm_add_form_validate($form, &$form_state) {
   if (!$results or count($results) == 0) {
   if (!$results or count($results) == 0) {
     form_set_error('db_id', 'The database name does not exist');
     form_set_error('db_id', 'The database name does not exist');
   }
   }
-  
+
   // make sure the cv term name is unique for this vocabulary
   // make sure the cv term name is unique for this vocabulary
   $values = array('name' => $name, 'cv_id' => $cv_id);
   $values = array('name' => $name, 'cv_id' => $cv_id);
-  $results = tripal_core_chado_select('cvterm', array('cvterm_id'), $values);   
+  $results = tripal_core_chado_select('cvterm', array('cvterm_id'), $values);
   if (count($results) > 0) {
   if (count($results) > 0) {
     form_set_error('name', 'The term name must be unique for this vocabulary. Another term with this name already exists.');
     form_set_error('name', 'The term name must be unique for this vocabulary. Another term with this name already exists.');
   }
   }
-  
+
   // make sure this accession is unique for the database
   // make sure this accession is unique for the database
   $values = array('accession' => $accession, 'db_id' => $db_id);
   $values = array('accession' => $accession, 'db_id' => $db_id);
-  $results = tripal_core_chado_select('dbxref', array('dbxref_id'), $values);   
+  $results = tripal_core_chado_select('dbxref', array('dbxref_id'), $values);
   if (count($results) > 0 ) {
   if (count($results) > 0 ) {
     form_set_error('accession', 'The accession is not uniuqe for this vocabulary\'s database.');
     form_set_error('accession', 'The accession is not uniuqe for this vocabulary\'s database.');
-  }  
+  }
 
 
 }
 }
 
 
@@ -314,85 +329,85 @@ function tripal_cv_cvterm_add_form_validate($form, &$form_state) {
  * @ingroup tripal_cv
  * @ingroup tripal_cv
  */
  */
 function tripal_cv_cvterm_edit_form_submit($form, &$form_state) {
 function tripal_cv_cvterm_edit_form_submit($form, &$form_state) {
-  
+
   $cv_id = array_key_exists('cv_id', $form_state['values']) ? $form_state['values']['cv_id'] : '';
   $cv_id = array_key_exists('cv_id', $form_state['values']) ? $form_state['values']['cv_id'] : '';
   $name = array_key_exists('name', $form_state['values']) ? $form_state['values']['name'] : '';
   $name = array_key_exists('name', $form_state['values']) ? $form_state['values']['name'] : '';
   $definition = array_key_exists('definition', $form_state['values']) ? $form_state['values']['definition'] : '';
   $definition = array_key_exists('definition', $form_state['values']) ? $form_state['values']['definition'] : '';
   $is_relationship = array_key_exists('is_relationship', $form_state['values']) ? $form_state['values']['is_relationship'] : '';
   $is_relationship = array_key_exists('is_relationship', $form_state['values']) ? $form_state['values']['is_relationship'] : '';
   $is_obsolete = array_key_exists('is_obsolete', $form_state['values']) ? $form_state['values']['is_obsolete'] : '';
   $is_obsolete = array_key_exists('is_obsolete', $form_state['values']) ? $form_state['values']['is_obsolete'] : '';
   $cvterm_id = array_key_exists('cvterm_id', $form_state['values']) ? $form_state['values']['cvterm_id'] : '';
   $cvterm_id = array_key_exists('cvterm_id', $form_state['values']) ? $form_state['values']['cvterm_id'] : '';
-  
+
   $db_id = array_key_exists('db_id', $form_state['values']) ? $form_state['values']['db_id'] : '';
   $db_id = array_key_exists('db_id', $form_state['values']) ? $form_state['values']['db_id'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
-  
+
   $op    = array_key_exists('op', $form_state['values'])         ? trim($form_state['values']['op']) : '';
   $op    = array_key_exists('op', $form_state['values'])         ? trim($form_state['values']['op']) : '';
-  
-  
+
+
   $step = $form_state['storage']['step'];
   $step = $form_state['storage']['step'];
 
 
   switch ($step) {
   switch ($step) {
     case 0:  // a cvterm name has been selected
     case 0:  // a cvterm name has been selected
       $cv_id = array_key_exists('cv_id', $form_state['values']) ? trim($form_state['values']['cv_id']) : '';
       $cv_id = array_key_exists('cv_id', $form_state['values']) ? trim($form_state['values']['cv_id']) : '';
       $name  = array_key_exists('name', $form_state['values'])  ? trim($form_state['values']['name'])  : '';
       $name  = array_key_exists('name', $form_state['values'])  ? trim($form_state['values']['name'])  : '';
-      
+
       // get the original cvterm_id
       // get the original cvterm_id
       $values = array('name' => $name, 'cv_id' => $cv_id);
       $values = array('name' => $name, 'cv_id' => $cv_id);
-      $results = tripal_core_chado_select('cvterm', array('cvterm_id'), $values);  
-      $cvterm = $results[0]; 
-    
+      $results = tripal_core_chado_select('cvterm', array('cvterm_id'), $values);
+      $cvterm = $results[0];
+
       $form_state['storage']['cv_id'] = $cv_id;
       $form_state['storage']['cv_id'] = $cv_id;
       $form_state['storage']['name'] = $name;
       $form_state['storage']['name'] = $name;
       $form_state['storage']['step'] = 1;
       $form_state['storage']['step'] = 1;
       $form_state['storage']['cvterm_id'] = $cvterm->cvterm_id;
       $form_state['storage']['cvterm_id'] = $cvterm->cvterm_id;
       $form_state['rebuild'] = TRUE;
       $form_state['rebuild'] = TRUE;
       break;
       break;
-      
-    case 1:  // update/delete button has been clicked          
-      
+
+    case 1:  // update/delete button has been clicked
+
       if ($op == 'Update') {
       if ($op == 'Update') {
         // get the cv
         // get the cv
         $values = array('cv_id' => $cv_id);
         $values = array('cv_id' => $cv_id);
         $results = tripal_core_chado_select('cv', array('name'), $values);
         $results = tripal_core_chado_select('cv', array('name'), $values);
         $cv = $results[0];
         $cv = $results[0];
-        
+
         // get the db
         // get the db
         $values = array('db_id' => $db_id);
         $values = array('db_id' => $db_id);
         $results = tripal_core_chado_select('db', array('name'), $values);
         $results = tripal_core_chado_select('db', array('name'), $values);
         $db = $results[0];
         $db = $results[0];
-        
+
         // now add the term
         // now add the term
-        $term = array(    
+        $term = array(
           'name' => $name,
           'name' => $name,
           'namespace' => $cv->name,
           'namespace' => $cv->name,
           'id' => $accession,
           'id' => $accession,
           'def' => $definition,
           'def' => $definition,
           'is_obsolete' => $is_obsolete,
           'is_obsolete' => $is_obsolete,
-        );  
-        
+        );
+
         $cvterm = tripal_cv_add_cvterm($term, $cv->name, $is_relationship, TRUE, $db->name);
         $cvterm = tripal_cv_add_cvterm($term, $cv->name, $is_relationship, TRUE, $db->name);
         if ($cvterm) {
         if ($cvterm) {
           drupal_set_message('Term updated successfully.');
           drupal_set_message('Term updated successfully.');
-        } 
+        }
         else {
         else {
-          drupal_set_message('Could not add term. Check Drupal recent logs for error messages.', 'error');  
+          drupal_set_message('Could not add term. Check Drupal recent logs for error messages.', 'error');
         }
         }
       }
       }
       if ($op == 'Delete') {
       if ($op == 'Delete') {
         $values = array('cvterm_id' => $cvterm_id);
         $values = array('cvterm_id' => $cvterm_id);
         $success = tripal_core_chado_delete('cvterm', $values);
         $success = tripal_core_chado_delete('cvterm', $values);
         if ($success) {
         if ($success) {
-          drupal_set_message('Term deleted successfully.');  
-        } 
+          drupal_set_message('Term deleted successfully.');
+        }
         else {
         else {
-          drupal_set_message('Could not delete term term. Check Drupal recent logs for error messages.', 'error');  
-        }             
+          drupal_set_message('Could not delete term term. Check Drupal recent logs for error messages.', 'error');
+        }
       }
       }
       break;
       break;
-  }      
+  }
 }
 }
 
 
 /**
 /**
- * 
+ *
  * @param unknown_type $form
  * @param unknown_type $form
  * @param unknown_type $form_state
  * @param unknown_type $form_state
  */
  */
@@ -402,36 +417,36 @@ function tripal_cv_cvterm_add_form_submit($form, &$form_state) {
   $definition = array_key_exists('definition', $form_state['values']) ? $form_state['values']['definition'] : '';
   $definition = array_key_exists('definition', $form_state['values']) ? $form_state['values']['definition'] : '';
   $is_relationship = array_key_exists('is_relationship', $form_state['values']) ? $form_state['values']['is_relationship'] : '';
   $is_relationship = array_key_exists('is_relationship', $form_state['values']) ? $form_state['values']['is_relationship'] : '';
   $is_obsolete = array_key_exists('is_obsolete', $form_state['values']) ? $form_state['values']['is_obsolete'] : '';
   $is_obsolete = array_key_exists('is_obsolete', $form_state['values']) ? $form_state['values']['is_obsolete'] : '';
-  
+
   $db_id = array_key_exists('db_id', $form_state['values']) ? $form_state['values']['db_id'] : '';
   $db_id = array_key_exists('db_id', $form_state['values']) ? $form_state['values']['db_id'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
   $accession = array_key_exists('accession', $form_state['values']) ? $form_state['values']['accession'] : '';
-  
+
   // get the database
   // get the database
   $values = array('db_id' => $db_id);
   $values = array('db_id' => $db_id);
   $results = tripal_core_chado_select('db', array('name'), $values);
   $results = tripal_core_chado_select('db', array('name'), $values);
   $db = $results[0];
   $db = $results[0];
-      
+
   // get the cv
   // get the cv
   $values = array('cv_id' => $cv_id);
   $values = array('cv_id' => $cv_id);
   $results = tripal_core_chado_select('cv', array('name'), $values);
   $results = tripal_core_chado_select('cv', array('name'), $values);
   $cv = $results[0];
   $cv = $results[0];
 
 
   // now add the term
   // now add the term
-  $term = array(    
+  $term = array(
     'name' => $name,
     'name' => $name,
     'namespace' => $cv->name,
     'namespace' => $cv->name,
     'id' => $accession,
     'id' => $accession,
     'def' => $definition,
     'def' => $definition,
     'is_obsolete' => $is_obsolete,
     'is_obsolete' => $is_obsolete,
-  );  
-      
+  );
+
   $cvterm = tripal_cv_add_cvterm($term, $cv->name, $is_relationship, TRUE, $db->name);
   $cvterm = tripal_cv_add_cvterm($term, $cv->name, $is_relationship, TRUE, $db->name);
   if ($cvterm) {
   if ($cvterm) {
     drupal_set_message('Term added successfully.');
     drupal_set_message('Term added successfully.');
-  } 
+  }
   else {
   else {
-    drupal_set_message('Could not add term. Check Drupal recent logs for error messages.', 'error');  
-  }    
+    drupal_set_message('Could not add term. Check Drupal recent logs for error messages.', 'error');
+  }
 }
 }
 /**
 /**
  * Ajax callback for the tripal_cv_form
  * Ajax callback for the tripal_cv_form
@@ -440,14 +455,14 @@ function tripal_cv_cvterm_add_form_submit($form, &$form_state) {
 function tripal_cv_cvterm_edit_form_ajax($form, $form_state) {
 function tripal_cv_cvterm_edit_form_ajax($form, $form_state) {
 
 
   $elements = array();
   $elements = array();
-  
+
   $elements['name'] = $form['name'];
   $elements['name'] = $form['name'];
-  $elements['continue'] = $form['continue'];   
-  
+  $elements['continue'] = $form['continue'];
+
   // add back in the cv-edit-div that is used for the next round of AJAX
   // add back in the cv-edit-div that is used for the next round of AJAX
   $elements['name']['#prefix'] =  '<div id="cvterm-edit-div">';
   $elements['name']['#prefix'] =  '<div id="cvterm-edit-div">';
-  $elements['name']['#suffix'] =  '</div">';  
-  
-    
+  $elements['name']['#suffix'] =  '</div">';
+
+
   return $elements;
   return $elements;
 }
 }

+ 1 - 570
tripal_cv/includes/tripal_cv_admin.inc

@@ -37,573 +37,4 @@ function tripal_cv_admin_cv_listing() {
   }
   }
 
 
   return $output;
   return $output;
-}
-
-/**
- * Purpose: Provides the form for Updating and Deleteing existing
- *   chado controlled vocabularies (See chado cv table)
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_edit_page() {
-  $output .= drupal_get_form('tripal_cv_select_form');
-  $output .= '<div id="cv-edit-div">Please select a vocabulary above to view or edit</div>';
-
-  return $output;
-}
-*/
-
-/**
- * Purpose: Provides the actual "Select CV" form on the Update/Delete Controlled
- *   Vocabulary page. This form also triggers the edit javascript
- * @todo Modify this form to use Drupal AJAX
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_select_form() {
-
-  // get a list of db from chado for user to choose
-  $sql = "SELECT * FROM {cv} WHERE NOT name = 'tripal' ORDER BY name ";
-  $results = chado_query($sql);
-
-  $cvs = array();
-  $cvs[] = '';
-  while ($cv = db_fetch_object($results)) {
-    $cvs[$cv->cv_id] = $cv->name;
-  }
-
-  $form['cvid'] = array(
-    '#title' => t('Controlled Vocabulary/Ontology Name'),
-    '#type' => 'select',
-    '#options' => $cvs,
-    '#ahah' => array(
-      'path' => 'admin/tripal/tripal_cv/cv/edit/js',
-      'wrapper' => 'cv-edit-div',
-      'effect' => 'fade',
-      'event' => 'change',
-      'method' => 'replace',
-    ),
-  );
-
-  return $form;
-}
-*/
-
-/**
- * Purpose: The edit controlled vocabulary javascript
- *
- * @ingroup tripal_cv
- *
-function tripal_ajax_cv_edit() {
-
-  // get the database id, build the form and then return the JSON object
-  $cvid = filter_xss($_POST['cvid']);
-  $form = drupal_get_form('tripal_cv_edit_form', $cvid);
-  drupal_json(array('status' => TRUE, 'data' => $form));
-
-}
-*/
-
-/**
- * Purpose: Provides a form to allow updating/deleteing of controlled vocabularies
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_edit_form(&$form_state = NULL, $cvid = NULL) {
-
-  $sql = "SELECT * FROM {cv} WHERE cv_id = :cv_id ";
-  $cv = chado_query($sql, array(':cv_id' => $cvid));
-  $cv = $cv->fetch_object();
-
-  // set the default values.  If there is a value set in the
-  // form_state then let's use that, otherwise, we'll pull
-  // the values from the database
-  $default_db = $form_state['values']['name'];
-  $default_desc = $form_state['values']['description'];
-  $default_url = $form_state['values']['url'];
-  $default_urlprefix = $form_state['values']['urlprefix'];
-  if (!$default_db) {
-    $default_cv = $cv->name;
-  }
-  if (!$default_desc) {
-    $default_desc = $cv->definition;
-  }
-
-  $form['cvid'] = array(
-    '#type' => 'hidden',
-    '#value' => $cvid
-  );
-
-  $form['name']= array(
-    '#type'          => 'textfield',
-    '#title'         => t("Controlled Vocabulary name"),
-    '#description'   => t('Please enter the name for this vocabulary.'),
-    '#required'      => FALSE,
-    '#default_value' => $default_cv,
-    '#weight'        => 1
-  );
-
-  $form['definition']= array(
-    '#type'          => 'textarea',
-    '#title'         => t('Description'),
-    '#description'   => t('Please enter a description for this vocabulary'),
-    '#default_value' => $default_desc,
-    '#weight'        => 2
-  );
-
-  $form['update'] = array(
-    '#type'         => 'submit',
-    '#value'        => t('Update'),
-    '#weight'       => 5,
-    '#executes_submit_callback' => TRUE,
-  );
-  $form['delete'] = array(
-    '#type'         => 'submit',
-    '#value'        => t('Delete'),
-    '#weight'       => 6,
-    '#executes_submit_callback' => TRUE,
-  );
-
-  $form['#redirect'] = 'admin/tripal/tripal_cv';
-
-
-  return $form;
-}
-*/
-
-/**
- * Purpose: The submit function of the update/delete controlled vocabulary form
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_edit_form_submit($form, &$form_state) {
-
-  $name =  $form_state['values']['name'];
-  $desc =  $form_state['values']['definition'];
-  $cvid =  $form_state['values']['cvid'];
-  $op   =  $form_state['values']['op'];
-
-  if (strcmp($op, 'Update') == 0) {
-    $sql = "
-       UPDATE {cv} SET
-         name = :name,
-         definition = :description
-       WHERE cv_id = :cv_id
-    ";
-    $db = chado_query($sql, array(':name' => $name, ':description' => $desc, ':cv_id' => $cvid));
-    if ($db) {
-      drupal_set_message(t("Controlled vocabulary updated"));
-    }
-    else {
-      drupal_set_message(t("Failed to update controlled vocabulary."), 'error');
-    }
-  }
-  if (strcmp($op, 'Delete')==0) {
-    $sql = "
-       DELETE FROM {cv}
-       WHERE cv_id = :cv_id
-    ";
-    $db = chado_query($sql, array(':cv_id' => $cvid));
-    if ($db) {
-      drupal_set_message(t("Controlled vocabulary deleted"));
-    }
-    else {
-      drupal_set_message(t("Failed to delete controlled vocabulary."), 'error');
-    }
-  }
-
-}
-*/
-
-/**
- * Purpose: Provides the Add controlled vocabulary form
- *
-  * @ingroup tripal_cv
- *
-function tripal_cv_add_form(&$form_state = NULL) {
-
-  $form['cvid'] = array(
-    '#type' => 'hidden',
-    '#value' => $cvid
-  );
-
-  $form['name']= array(
-    '#type'          => 'textfield',
-    '#title'         => t("Controlled Vocabulary name"),
-    '#description'   => t('Please enter the name for this vocabulary.  This field will be ignored if an OBO file or URL is provided above'),
-    '#required'      => FALSE,
-    '#default_value' => $default_cv,
-    '#weight'        => 1
-  );
-
-  $form['definition']= array(
-    '#type'          => 'textarea',
-    '#title'         => t('Description'),
-    '#description'   => t('Please enter a description for this vocabulary'),
-    '#default_value' => $default_desc,
-    '#weight'        => 2
-  );
-
-  $form['add'] = array(
-    '#type'         => 'submit',
-    '#value'        => t('Add'),
-    '#weight'       => 5,
-    '#executes_submit_callback' => TRUE,
-  );
-
-  $form['#redirect'] = 'admin/tripal/tripal_cv';
-
-  return $form;
-}
-*/
-/**
- * Purpose: The submit function for the add controlled vocabulary form
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_add_form_submit($form, &$form_state) {
-
-  $name =  $form_state['values']['name'];
-  $desc =  $form_state['values']['definition'];
-
-  $sql = "
-    INSERT INTO {cv}
-     (name,definition)
-    VALUES
-     (:name, :description)
-  ";
-  $db = chado_query($sql, array(':name' => $name, ':description' => $desc));
-  if ($db) {
-    drupal_set_message(t("Controlled vocabulary added"));
-  }
-  else {
-    drupal_set_message(t("Failed to add controlled vocabulary."), 'error');
-  }
-
-}
-*/
-/**
- * Purpose: Provides the form that allows adding of terms to an existing
- *   controlled vocabulary
- *
-  * @ingroup tripal_cv
- *
-function tripal_cv_cvterm_form(&$form_state, $action = 'add') {
-  tripal_core_ahah_init_form();
-
-  $form = array();
-
-  // get defaults
-  $cv_id = $form_state['values']['cv_id'] ? $form_state['values']['cv_id'] : FALSE;
-  $name  = $form_state['values']['name'] ? $form_state['values']['name'] : '';
-
-  // if we have a cv_id and a term name then get the rest of the term details
-  if ($cv_id and $name) {
-     $values = array(
-       'cv_id' => $cv_id,
-       'name' => $name,
-     );
-     $results = tripal_core_chado_select('cvterm', array('*'), $values);
-     if (!$results or count($results) == 0) {
-       // we can't find the cvterm so reset the name to blank
-       $name = '';
-     }
-     else {
-       $cvterm = $results[0];
-       $definition = $cvterm->definition;
-       $is_relationshiptype = $cvterm->is_relationshiptype;
-       $is_obsolete = $cvterm->is_obsolete;
-
-       // now get the database
-       $values = array('dbxref_id' => $cvterm->dbxref_id);
-       $results = tripal_core_chado_select('dbxref', array('*'), $values);
-       $dbxref = $results[0];
-       $accession = $dbxref->accession;
-       $db_id = $dbxref->db_id;
-     }
-  }
-
-  $values = array();
-  $columns = array('cv_id', 'name');
-  $options = array('order_by' => array('name' => 'ASC'));
-  $results = tripal_core_chado_select('cv', $columns, $values, $options);
-  $cvs = array();
-  $cvs[] = '';
-  foreach ($results as $cv) {
-    $cvs[$cv->cv_id] = $cv->name;
-  }
-
-  $form['wrapper-top'] = array(
-    '#type' => 'markup',
-    '#value' => '<div id="cvterm-form">',
-  );
-
-  $form['form_action'] = array(
-    '#type' => 'hidden',
-    '#value' => $action,
-  );
-
-  $form['cv_id'] = array(
-    '#title' => t('Controlled Vocabulary (Ontology) Name'),
-    '#type' => 'select',
-    '#options' => $cvs,
-    '#required' => TRUE,
-    '#default_value' => $cv_id,
-    '#ahah' => array(
-       'path'    => 'admin/tripal/tripal_cv/cvterm/ahah',
-       'wrapper' => 'cvterm-form',
-       'event'   => 'change',
-       'method'  => 'replace',
-    ),
-  );
-
-  if ($cv_id) {
-    $form['add_cvterm'] = array(
-      '#type'           => 'fieldset',
-      '#title'          => t('Term Details'),
-      '#prefix'         => '<div id="cvterm-add-div">',
-      '#suffix'         => '</div>'
-    );
-    $description = t('Please enter the name for this vocabulary term.');
-    if ($action == 'edit') {
-      $description = t('Enter the name of the term to edit.  This field will update automatically as you type. Click outside of the box after entering the term.');
-    }
-    $form['add_cvterm']['name']= array(
-      '#type'          => 'textfield',
-      '#title'         => t("Term Name"),
-      '#description'   => $description,
-      '#default_value' => $name,
-      '#required'      => TRUE,
-    );
-    if ($action == 'edit') {
-      if ($name) {
-        $form['add_cvterm']['name']['#attributes'] = array('readonly' => 'readonly');
-        $form['add_cvterm']['name']['#description'] = 'The term name cannot be changed. If the name is incorrect, please create a new term and make this one as obsolete.';
-      }
-      else {
-        $form['add_cvterm']['name']['#autocomplete_path'] = "admin/tripal/tripal_cv/cvterm/auto_name/$cv_id";
-        $form['add_cvterm']['name']['#ahah'] = array(
-           'path'    => 'admin/tripal/tripal_cv/cvterm/ahah',
-           'wrapper' => 'cvterm-form',
-           'method'  => 'replace',
-        );
-      }
-    }
-
-    if ($action == 'add' or $name) {
-
-
-      $form['add_cvterm']['definition']= array(
-        '#type'          => 'textarea',
-        '#title'         => t('Description'),
-        '#description'   => t('Please enter a description for this term'),
-        '#default_value' => $definition,
-      );
-
-      $form['add_cvterm']['is_relationshiptype'] = array(
-        '#type'          => 'checkbox',
-        '#title'         => t('This term describes a relationship?'),
-        '#default_value' => $is_relationshiptype,
-      );
-
-      $form['add_cvterm']['is_obsolete'] = array(
-        '#type'          => 'checkbox',
-        '#title'         => t('This term is obsolete?'),
-        '#default_value' => $is_obsolete,
-      );
-
-      $values = array();
-      $columns = array('db_id', 'name');
-      $options = array('order_by' => array('name' => 'ASC'));
-      $results = tripal_core_chado_select('db', $columns, $values, $options);
-      $dbs = array();
-      $dbs[] = '';
-      foreach ($results as $db) {
-        $dbs[$db->db_id] = $db->name;
-      }
-      $form['add_cvterm']['db_id'] = array(
-        '#type'         => 'select',
-        '#title'         => t('Database'),
-        '#description'   => t('All terms must be assocated with an external database.
-                            Please select the external database to associate with
-                            this term'),
-        '#options'      => $dbs,
-        '#default_value' => $db_id,
-        '#required' => TRUE,
-      );
-      if ($action == 'edit') {
-        // we don't want to allow the user to change the database on an edit.
-        $form['add_cvterm']['db_id']['#disabled'] = TRUE;
-        $form['add_cvterm']['db_id']['#description'] = 'The database to which this term belongs cannot be changed.';
-      }
-
-      $form['add_cvterm']['accession']= array(
-        '#type'          => 'textfield',
-        '#title'         => t("Accession"),
-        '#description'   => t('If this term has an existing accession (unique identifier) in the database
-           please enter that here.  If the accession is numeric with a database prefix (e.g. GO:003023), please
-           enter just the numeric value.  The database prefix will be appended whenever the term is displayed.
-           If the accession is not numeric then enter it as is.  If no value is provied, the term name
-           provided above will be used as the accession.'),
-        '#required'      => FALSE,
-        '#default_value' => $accession,
-      );
-      if ($action == 'edit') {
-        $form['add_cvterm']['accession']['#attributes'] = array('readonly' => 'readonly');
-        $form['add_cvterm']['accession']['#description'] = 'Cannot change the term accession.';
-      }
-      $button_text = 'Add Term';
-      if ($action == 'edit') {
-        $button_text = 'Update Term';
-      }
-      $form['add_cvterm']['submit'] = array(
-        '#type'  => 'submit',
-        '#value' => $button_text,
-      );
-    } // end if name selected (or action == 'add')
-  } //end of if cv selected
-
-
-  $form['wrapper-bottom'] = array(
-    '#type' => 'markup',
-    '#value' => '</div>',
-  );
-
-  return $form;
-}
-*/
-
-/**
- * Purpose: Validates the input for adding a cvterm
- *
-  * @ingroup tripal_cv
- *
-function tripal_cv_cvterm_form_validate($form, &$form_state) {
-
-  // Ensure that submit does not get called unless the AHAH in the form was called
-  if (!empty($form_state['ahah_submission'])) {
-    return;
-  }
-
-}
-*/
-/**
- * Purpose: Adds terms to an existing controlled vocabulary
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_cvterm_form_submit($form, &$form_state) {
-
-  // Ensure the AHAH in the form was called
-  if (!empty($form_state['ahah_submission'])) {
-    return;
-  }
-
-  // get the database
-  $values = array('db_id' => $form_state['values']['db_id']);
-  $results = tripal_core_chado_select('db', array('name'), $values);
-  if (!$results or count($results) == 0) {
-    drupal_set_message(t('Unable to add term.  Cannot find the database.'), 'error');
-    return;
-  }
-  $db = $results[0];
-
-  // get the cv
-  $values = array('cv_id' => $form_state['values']['cv_id']);
-  $results = tripal_core_chado_select('cv', array('name'), $values);
-  if (!$results or count($results) == 0) {
-    drupal_set_message(t('Unable to add term.  Cannot find the vocabulary.'), 'error');
-    return;
-  }
-  $cv = $results[0];
-
-  // get the accession for this term
-  $accession = $form_state['values']['accession'];
-  if (!$accession) {
-    $accession = $form_state['values']['name'];
-  }
-  if (is_numeric($accession)) {
-    $accession = $db->name . ":" . $accession;
-  }
-
-
-  $update = 0;
-  if ($form_state['values']['form_action'] == 'edit') {
-    $update = 1;
-  }
-
-  // now add the term
-  $term = array(
-    'name' => $form_state['values']['name'],
-    'namespace' => $cv->name,
-    'id' => $accession,
-    'def' => $form_state['values']['definition'],
-    'is_obsolete' => $form_state['values']['is_obsolete'],
-  );
-
-  $is_relationship = $form_state['values']['is_relationshiptype'];
-  $cvterm = tripal_cv_add_cvterm($term, $cv->name, $is_relationship, $update, $db->name);
-  if ($cvterm) {
-    if (!$update) {
-      drupal_set_message('Term added successfully.');
-    }
-    else {
-      drupal_set_message('Term updated successfully.');
-    }
-  }
-  else {
-    drupal_set_message('Could not add term. Check Drupal recent logs for error messages.', 'error');
-  }
-
-}
-*/
-/**
- * Purpose: This function gets called when the selecting of a cv from
- *   the select list triggers it. This function simply rebuilds the form
- *   with new information. No elements are created here
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_cvterm_callback() {
-  $status = TRUE;
-
-  // prepare and render the form
-  $form = tripal_core_ahah_prepare_form();
-  $data = drupal_render($form);
-
-  // bind javascript events to the new objects that will be returned
-  // so that AHAH enabled elements will work.
-  $settings = tripal_core_ahah_bind_events();
-
-  // return the updated JSON
-  drupal_json(
-    array(
-      'status'   => $status,
-      'data'     => $data,
-      'settings' => $settings,
-    )
-  );
-}
-*/
-/**
- * Cvterm path form submit
- *
- * @ingroup tripal_cv
- *
-function tripal_cv_cvtermpath_form_submit($form, &$form_state) {
-  global $user;
-
-  $cvid =  $form_state['values']['cvid'];
-
-  // first get the controlled vocabulary name:
-  $cv = chado_query("SELECT * FROM {cv} WHERE cv_id = :cv_id", array(':cv_id' => $cvid));
-  $cv = $cv->fetch_object();
-
-  // Submit a job to update cvtermpath
-  $job_args = array($cvid);
-  if ($form_state['values']['op'] == t('Update cvtermpath')) {
-    tripal_add_job("Update cvtermpath: $cv->name", 'tripal_cv',
-       'tripal_cv_update_cvtermpath', $job_args, $user->uid);
-  }
-}
-*/
+}

+ 13 - 5
tripal_cv/tripal_cv.module

@@ -89,17 +89,17 @@ function tripal_cv_menu() {
   /*
   /*
    * Menu items for adding and editing CVs
    * Menu items for adding and editing CVs
    */
    */
-  $items['admin/tripal/chado/tripal_cv/edit_cv'] = array(
+  $items['admin/tripal/chado/tripal_cv/cv/edit/%'] = array(
     'title' => 'Edit a Controlled Vocabulary',
     'title' => 'Edit a Controlled Vocabulary',
     'description' => 'Edit the details such as name and description for an existing controlled vocabulary.',
     'description' => 'Edit the details such as name and description for an existing controlled vocabulary.',
     'page callback' => 'drupal_get_form',
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('tripal_cv_cv_edit_form'),
+    'page arguments' => array('tripal_cv_cv_edit_form', 6),
     'access callback' => 'user_access',
     'access callback' => 'user_access',
     'access arguments' => array('administer controlled vocabularies'),
     'access arguments' => array('administer controlled vocabularies'),
     'type' => MENU_CALLBACK,
     'type' => MENU_CALLBACK,
   );
   );
 
 
-  $items['admin/tripal/chado/tripal_cv/add_cv'] = array(
+  $items['admin/tripal/chado/tripal_cv/cv/add'] = array(
     'title' => 'Add a Controlled Vocabulary',
     'title' => 'Add a Controlled Vocabulary',
     'description' => 'Manually a new controlled vocabulary.',
     'description' => 'Manually a new controlled vocabulary.',
     'page callback' => 'drupal_get_form',
     'page callback' => 'drupal_get_form',
@@ -112,6 +112,14 @@ function tripal_cv_menu() {
   /*
   /*
    * Menu items for adding and editing CVterms
    * Menu items for adding and editing CVterms
    */
    */
+  $items['admin/tripal/chado/tripal_cv/cv/%/cvterm/add'] = array(
+    'title' => 'Add a Controlled Vocabulary Term',
+    'description' => 'Add a new controlled vocabulary term.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('tripal_cv_cvterm_add_form',5),
+    'access arguments' => array('administer controlled vocabularies'),
+    'type' => MENU_CALLBACK,
+  );
   $items['admin/tripal/chado/tripal_cv/cvterm/add'] = array(
   $items['admin/tripal/chado/tripal_cv/cvterm/add'] = array(
     'title' => 'Add a Controlled Vocabulary Term',
     'title' => 'Add a Controlled Vocabulary Term',
     'description' => 'Add a new controlled vocabulary term.',
     'description' => 'Add a new controlled vocabulary term.',
@@ -120,11 +128,11 @@ function tripal_cv_menu() {
     'access arguments' => array('administer controlled vocabularies'),
     'access arguments' => array('administer controlled vocabularies'),
     'type' => MENU_CALLBACK,
     'type' => MENU_CALLBACK,
   );
   );
-  $items['admin/tripal/chado/tripal_cv/cvterm/edit/%'] = array(
+  $items['admin/tripal/chado/tripal_cv/cv/%/cvterm/edit/%'] = array(
     'title' => 'Edit a Controlled Vocabulary Term',
     'title' => 'Edit a Controlled Vocabulary Term',
     'description' => 'Edit an existing controlled vocabulary term.',
     'description' => 'Edit an existing controlled vocabulary term.',
     'page callback' => 'drupal_get_form',
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('tripal_cv_cvterm_edit_form'),
+    'page arguments' => array('tripal_cv_cvterm_edit_form',5,8),
     'access arguments' => array('administer controlled vocabularies'),
     'access arguments' => array('administer controlled vocabularies'),
     'type' => MENU_CALLBACK,
     'type' => MENU_CALLBACK,
   );
   );

+ 394 - 350
tripal_cv/tripal_cv.views_default.inc

@@ -21,159 +21,182 @@ function tripal_cv_views_default_views() {
  */
  */
 function tripal_cv_defaultview_admin_cvs_listing() {
 function tripal_cv_defaultview_admin_cvs_listing() {
 
 
-  $view = new view();
-  $view->name = 'tripal_cv_admin_cvs';
-  $view->description = 'A listing of all controlled vocabularies';
-  $view->tag = 'tripal admin';
-  $view->base_table = 'cv';
-  $view->human_name = 'CVs Admin';
-  $view->core = 6;
-  $view->api_version = '3.0';
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+$view = new view();
+$view->name = 'tripal_cv_admin_cvs';
+$view->description = 'A listing of all controlled vocabularies';
+$view->tag = 'tripal admin';
+$view->base_table = 'cv';
+$view->human_name = 'CVs Admin';
+$view->core = 6;
+$view->api_version = '3.0';
+$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
 
-  /* Display: Defaults */
-  $handler = $view->new_display('default', 'Defaults', 'default');
-  $handler->display->display_options['title'] = 'Controlled Vocabularies';
-  $handler->display->display_options['use_more_always'] = FALSE;
-  $handler->display->display_options['access']['type'] = 'perm';
-  $handler->display->display_options['access']['perm'] = 'administer controlled vocabularies';
-  $handler->display->display_options['cache']['type'] = 'none';
-  $handler->display->display_options['query']['type'] = 'views_query';
-  $handler->display->display_options['exposed_form']['type'] = 'basic';
-  $handler->display->display_options['pager']['type'] = 'full';
-  $handler->display->display_options['pager']['options']['items_per_page'] = '25';
-  $handler->display->display_options['pager']['options']['offset'] = '0';
-  $handler->display->display_options['pager']['options']['id'] = '0';
-  $handler->display->display_options['pager']['options']['quantity'] = '9';
-  $handler->display->display_options['style_plugin'] = 'table';
-  $handler->display->display_options['style_options']['grouping'] = '';
-  $handler->display->display_options['style_options']['columns'] = array(
-    'name' => 'name',
-    'definition' => 'definition',
-    'nothing' => 'nothing',
-  );
-  $handler->display->display_options['style_options']['default'] = 'name';
-  $handler->display->display_options['style_options']['info'] = array(
-    'name' => array(
-      'sortable' => 1,
-      'separator' => '',
-    ),
-    'definition' => array(
-      'sortable' => 0,
-      'separator' => '',
-    ),
-    'nothing' => array(
-      'separator' => '',
-    ),
-  );
-  /* Header: Global: Text area */
-  $handler->display->display_options['header']['text']['id'] = 'text';
-  $handler->display->display_options['header']['text']['table'] = 'views';
-  $handler->display->display_options['header']['text']['field'] = 'area';
-  $handler->display->display_options['header']['text']['label'] = 'Add Cv';
-  $handler->display->display_options['header']['text']['empty'] = TRUE;
-  $handler->display->display_options['header']['text']['content'] = '<ul class="action-links">
-          <li><a href="tripal_cv/add_cv">Add Vocabulary</a></li>
+/* Display: Defaults */
+$handler = $view->new_display('default', 'Defaults', 'default');
+$handler->display->display_options['title'] = 'Controlled Vocabularies';
+$handler->display->display_options['use_more_always'] = FALSE;
+$handler->display->display_options['access']['type'] = 'perm';
+$handler->display->display_options['access']['perm'] = 'administer controlled vocabularies';
+$handler->display->display_options['cache']['type'] = 'none';
+$handler->display->display_options['query']['type'] = 'views_query';
+$handler->display->display_options['exposed_form']['type'] = 'basic';
+$handler->display->display_options['pager']['type'] = 'full';
+$handler->display->display_options['pager']['options']['items_per_page'] = '25';
+$handler->display->display_options['pager']['options']['offset'] = '0';
+$handler->display->display_options['pager']['options']['id'] = '0';
+$handler->display->display_options['pager']['options']['quantity'] = '9';
+$handler->display->display_options['style_plugin'] = 'table';
+$handler->display->display_options['style_options']['grouping'] = '';
+$handler->display->display_options['style_options']['columns'] = array(
+  'name' => 'name',
+  'definition' => 'definition',
+  'nothing' => 'nothing',
+);
+$handler->display->display_options['style_options']['default'] = 'name';
+$handler->display->display_options['style_options']['info'] = array(
+  'name' => array(
+    'sortable' => 1,
+    'separator' => '',
+  ),
+  'definition' => array(
+    'sortable' => 0,
+    'separator' => '',
+  ),
+  'nothing' => array(
+    'separator' => '',
+  ),
+);
+/* Header: Global: Text area */
+$handler->display->display_options['header']['text']['id'] = 'text';
+$handler->display->display_options['header']['text']['table'] = 'views';
+$handler->display->display_options['header']['text']['field'] = 'area';
+$handler->display->display_options['header']['text']['label'] = 'Add Cv';
+$handler->display->display_options['header']['text']['empty'] = TRUE;
+$handler->display->display_options['header']['text']['content'] = '<ul class="action-links">
+          <li><a href="tripal_cv/cv/add">Add Vocabulary</a></li>
           <li><a href="tripal_cv/obo_loader">Load Ontology</a></li>
           <li><a href="tripal_cv/obo_loader">Load Ontology</a></li>
      </ul>';
      </ul>';
-  $handler->display->display_options['header']['text']['format'] = 'full_html';
-  /* No results behavior: Global: Text area */
-  $handler->display->display_options['empty']['text']['id'] = 'area';
-  $handler->display->display_options['empty']['text']['table'] = 'views';
-  $handler->display->display_options['empty']['text']['field'] = 'area';
-  $handler->display->display_options['empty']['text']['content'] = 'No controlled vocabularies match the supplied criteria.';
-  $handler->display->display_options['empty']['text']['format'] = '2';
-  /* Field: Chado Cv: Cv Id */
-  $handler->display->display_options['fields']['cv_id']['id'] = 'cv_id';
-  $handler->display->display_options['fields']['cv_id']['table'] = 'cv';
-  $handler->display->display_options['fields']['cv_id']['field'] = 'cv_id';
-  $handler->display->display_options['fields']['cv_id']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['cv_id']['separator'] = '';
-  /* Field: Chado Cv: Name */
-  $handler->display->display_options['fields']['name']['id'] = 'name';
-  $handler->display->display_options['fields']['name']['table'] = 'cv';
-  $handler->display->display_options['fields']['name']['field'] = 'name';
-  /* Field: Chado Cv: Definition */
-  $handler->display->display_options['fields']['definition']['id'] = 'definition';
-  $handler->display->display_options['fields']['definition']['table'] = 'cv';
-  $handler->display->display_options['fields']['definition']['field'] = 'definition';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
-  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_1']['label'] = 'Edit Link';
-  $handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'edit';
-  $handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'tripal_cv/edit_cv/[cv_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['label'] = 'View Terms link';
-  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'View Terms';
-  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/tripal_cv/list_cvterms?cv%5B%5D=[name]';
-  $handler->display->display_options['fields']['nothing']['hide_alter_empty'] = TRUE;
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
-  $handler->display->display_options['fields']['nothing_2']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_2']['label'] = '';
-  $handler->display->display_options['fields']['nothing_2']['alter']['text'] = '[nothing_1]<br />
-  [nothing]';
-  $handler->display->display_options['fields']['nothing_2']['element_class'] = 'short-column';
-  $handler->display->display_options['fields']['nothing_2']['element_label_class'] = 'short-column';
-  $handler->display->display_options['fields']['nothing_2']['element_label_colon'] = FALSE;
-  /* Sort criterion: Chado Cv: Name */
-  $handler->display->display_options['sorts']['name']['id'] = 'name';
-  $handler->display->display_options['sorts']['name']['table'] = 'cv';
-  $handler->display->display_options['sorts']['name']['field'] = 'name';
-  /* Filter criterion: Chado Cv: Name */
-  $handler->display->display_options['filters']['name']['id'] = 'name';
-  $handler->display->display_options['filters']['name']['table'] = 'cv';
-  $handler->display->display_options['filters']['name']['field'] = 'name';
-  $handler->display->display_options['filters']['name']['operator'] = 'contains';
-  $handler->display->display_options['filters']['name']['group'] = '0';
-  $handler->display->display_options['filters']['name']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
-  $handler->display->display_options['filters']['name']['expose']['label'] = 'Name Contains';
-  $handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
-  $handler->display->display_options['filters']['name']['expose']['identifier'] = 'name';
-  $handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-  /* Filter criterion: Chado Cv: Definition */
-  $handler->display->display_options['filters']['definition']['id'] = 'definition';
-  $handler->display->display_options['filters']['definition']['table'] = 'cv';
-  $handler->display->display_options['filters']['definition']['field'] = 'definition';
-  $handler->display->display_options['filters']['definition']['operator'] = 'contains';
-  $handler->display->display_options['filters']['definition']['group'] = '0';
-  $handler->display->display_options['filters']['definition']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['definition']['expose']['operator_id'] = 'definition_op';
-  $handler->display->display_options['filters']['definition']['expose']['label'] = 'Definition Contains';
-  $handler->display->display_options['filters']['definition']['expose']['operator'] = 'definition_op';
-  $handler->display->display_options['filters']['definition']['expose']['identifier'] = 'definition';
-  $handler->display->display_options['filters']['definition']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
+$handler->display->display_options['header']['text']['format'] = 'full_html';
+/* No results behavior: Global: Text area */
+$handler->display->display_options['empty']['text']['id'] = 'area';
+$handler->display->display_options['empty']['text']['table'] = 'views';
+$handler->display->display_options['empty']['text']['field'] = 'area';
+$handler->display->display_options['empty']['text']['content'] = 'No controlled vocabularies match the supplied criteria.';
+$handler->display->display_options['empty']['text']['format'] = '2';
+/* Field: Chado Cv: Cv Id */
+$handler->display->display_options['fields']['cv_id']['id'] = 'cv_id';
+$handler->display->display_options['fields']['cv_id']['table'] = 'cv';
+$handler->display->display_options['fields']['cv_id']['field'] = 'cv_id';
+$handler->display->display_options['fields']['cv_id']['exclude'] = TRUE;
+$handler->display->display_options['fields']['cv_id']['separator'] = '';
+/* Field: Chado Cv: Name */
+$handler->display->display_options['fields']['name']['id'] = 'name';
+$handler->display->display_options['fields']['name']['table'] = 'cv';
+$handler->display->display_options['fields']['name']['field'] = 'name';
+/* Field: Chado Cv: Definition */
+$handler->display->display_options['fields']['definition']['id'] = 'definition';
+$handler->display->display_options['fields']['definition']['table'] = 'cv';
+$handler->display->display_options['fields']['definition']['field'] = 'definition';
+/* Field: Global: Custom text */
+$handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
+$handler->display->display_options['fields']['nothing_1']['table'] = 'views';
+$handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
+$handler->display->display_options['fields']['nothing_1']['label'] = 'Edit Link';
+$handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
+$handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'edit';
+$handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
+$handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'admin/tripal/chado/tripal_cv/cv/edit/[cv_id]';
+/* Field: Global: Custom text */
+$handler->display->display_options['fields']['nothing']['id'] = 'nothing';
+$handler->display->display_options['fields']['nothing']['table'] = 'views';
+$handler->display->display_options['fields']['nothing']['field'] = 'nothing';
+$handler->display->display_options['fields']['nothing']['label'] = 'View Terms link';
+$handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
+$handler->display->display_options['fields']['nothing']['alter']['text'] = 'View Terms';
+$handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
+$handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/chado/tripal_cv/cvterms?cv=[name]';
+$handler->display->display_options['fields']['nothing']['hide_alter_empty'] = TRUE;
+/* Field: Global: Custom text */
+$handler->display->display_options['fields']['nothing_3']['id'] = 'nothing_3';
+$handler->display->display_options['fields']['nothing_3']['table'] = 'views';
+$handler->display->display_options['fields']['nothing_3']['field'] = 'nothing';
+$handler->display->display_options['fields']['nothing_3']['label'] = 'Add term';
+$handler->display->display_options['fields']['nothing_3']['exclude'] = TRUE;
+$handler->display->display_options['fields']['nothing_3']['alter']['text'] = 'Add Term';
+$handler->display->display_options['fields']['nothing_3']['alter']['make_link'] = TRUE;
+$handler->display->display_options['fields']['nothing_3']['alter']['path'] = 'admin/tripal/chado/tripal_cv/cv/[cv_id]/cvterm/add';
+/* Field: Global: Custom text */
+$handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
+$handler->display->display_options['fields']['nothing_2']['table'] = 'views';
+$handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
+$handler->display->display_options['fields']['nothing_2']['label'] = '';
+$handler->display->display_options['fields']['nothing_2']['alter']['text'] = '[nothing_1]<br />
+  [nothing]   [nothing_3]';
+$handler->display->display_options['fields']['nothing_2']['element_class'] = 'short-column';
+$handler->display->display_options['fields']['nothing_2']['element_label_class'] = 'short-column';
+$handler->display->display_options['fields']['nothing_2']['element_label_colon'] = FALSE;
+/* Sort criterion: Chado Cv: Name */
+$handler->display->display_options['sorts']['name']['id'] = 'name';
+$handler->display->display_options['sorts']['name']['table'] = 'cv';
+$handler->display->display_options['sorts']['name']['field'] = 'name';
+/* Filter criterion: Chado Cv: Name */
+$handler->display->display_options['filters']['name']['id'] = 'name';
+$handler->display->display_options['filters']['name']['table'] = 'cv';
+$handler->display->display_options['filters']['name']['field'] = 'name';
+$handler->display->display_options['filters']['name']['operator'] = 'contains';
+$handler->display->display_options['filters']['name']['group'] = '0';
+$handler->display->display_options['filters']['name']['exposed'] = TRUE;
+$handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
+$handler->display->display_options['filters']['name']['expose']['label'] = 'Name Contains';
+$handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
+$handler->display->display_options['filters']['name']['expose']['identifier'] = 'name';
+$handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
+/* Filter criterion: Chado Cv: Definition */
+$handler->display->display_options['filters']['definition']['id'] = 'definition';
+$handler->display->display_options['filters']['definition']['table'] = 'cv';
+$handler->display->display_options['filters']['definition']['field'] = 'definition';
+$handler->display->display_options['filters']['definition']['operator'] = 'contains';
+$handler->display->display_options['filters']['definition']['group'] = '0';
+$handler->display->display_options['filters']['definition']['exposed'] = TRUE;
+$handler->display->display_options['filters']['definition']['expose']['operator_id'] = 'definition_op';
+$handler->display->display_options['filters']['definition']['expose']['label'] = 'Definition Contains';
+$handler->display->display_options['filters']['definition']['expose']['operator'] = 'definition_op';
+$handler->display->display_options['filters']['definition']['expose']['identifier'] = 'definition';
+$handler->display->display_options['filters']['definition']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
 
 
-  /* Display: Page */
-  $handler = $view->new_display('page', 'Page', 'page_1');
-  $handler->display->display_options['path'] = 'admin/tripal/chado/tripal_cv/cvs';
-  $handler->display->display_options['menu']['type'] = 'default tab';
-  $handler->display->display_options['menu']['title'] = 'Vocabularies';
-  $handler->display->display_options['menu']['description'] = 'A listing of all controlled vocabularies';
-  $handler->display->display_options['menu']['weight'] = '-10';
-  $handler->display->display_options['menu']['name'] = 'management';
-  $handler->display->display_options['menu']['context'] = 0;
-  $handler->display->display_options['menu']['context_only_inline'] = 0;
-  $handler->display->display_options['tab_options']['weight'] = '0';
+  /** MANUALLY ADD since filter handler no exporting correctly */
+  $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'textfield';
+  $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['select_optional'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
+
+/* Display: Page */
+$handler = $view->new_display('page', 'Page', 'page_1');
+$handler->display->display_options['path'] = 'admin/tripal/chado/tripal_cv/cvs';
+$handler->display->display_options['menu']['type'] = 'default tab';
+$handler->display->display_options['menu']['title'] = 'Vocabularies';
+$handler->display->display_options['menu']['description'] = 'A listing of all controlled vocabularies';
+$handler->display->display_options['menu']['weight'] = '-10';
+$handler->display->display_options['menu']['name'] = 'management';
+$handler->display->display_options['menu']['context'] = 0;
+$handler->display->display_options['menu']['context_only_inline'] = 0;
+$handler->display->display_options['tab_options']['weight'] = '0';
+
+
+  /** MANUALLY ADD since filter handler no exporting correctly
+  $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'textfield';
+  $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['select_optional'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
+  */
 
 
   return $view;
   return $view;
 }
 }
@@ -183,217 +206,238 @@ function tripal_cv_defaultview_admin_cvs_listing() {
  */
  */
 function tripal_cv_defaultview_admin_cvterms_listing() {
 function tripal_cv_defaultview_admin_cvterms_listing() {
 
 
-  $view = new view();
-  $view->name = 'tripal_cv_admin_cvterms';
-  $view->description = 'A listing of all controlled vocabulary terms filtered by controlled vocabulary';
-  $view->tag = 'tripal admin';
-  $view->base_table = 'cvterm';
-  $view->human_name = 'CV Terms Admin';
-  $view->core = 0;
-  $view->api_version = '3.0';
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+$view = new view();
+$view->name = 'tripal_cv_admin_cvterms';
+$view->description = 'A listing of all controlled vocabulary terms filtered by controlled vocabulary';
+$view->tag = 'tripal admin';
+$view->base_table = 'cvterm';
+$view->human_name = 'CV Terms Admin';
+$view->core = 0;
+$view->api_version = '3.0';
+$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
 
 
-  /* Display: Defaults */
-  $handler = $view->new_display('default', 'Defaults', 'default');
-  $handler->display->display_options['title'] = 'Controlled Vocabulary Terms';
-  $handler->display->display_options['use_more_always'] = FALSE;
-  $handler->display->display_options['access']['type'] = 'perm';
-  $handler->display->display_options['access']['perm'] = 'administer controlled vocabularies';
-  $handler->display->display_options['cache']['type'] = 'none';
-  $handler->display->display_options['query']['type'] = 'views_query';
-  $handler->display->display_options['exposed_form']['type'] = 'basic';
-  $handler->display->display_options['pager']['type'] = 'full';
-  $handler->display->display_options['pager']['options']['items_per_page'] = '25';
-  $handler->display->display_options['pager']['options']['offset'] = '0';
-  $handler->display->display_options['pager']['options']['id'] = '0';
-  $handler->display->display_options['pager']['options']['quantity'] = '9';
-  $handler->display->display_options['style_plugin'] = 'table';
-  $handler->display->display_options['style_options']['grouping'] = '';
-  $handler->display->display_options['style_options']['columns'] = array(
-    'name_1' => 'name_1',
-    'name' => 'name',
-    'definition' => 'definition',
-    'is_obsolete' => 'is_obsolete',
-    'is_relationshiptype' => 'is_relationshiptype',
-  );
-  $handler->display->display_options['style_options']['default'] = '-1';
-  $handler->display->display_options['style_options']['info'] = array(
-    'name_1' => array(
-      'sortable' => 1,
-      'separator' => '',
-    ),
-    'name' => array(
-      'sortable' => 1,
-      'separator' => '',
-    ),
-    'definition' => array(
-      'sortable' => 0,
-      'separator' => '',
-    ),
-    'is_obsolete' => array(
-      'sortable' => 1,
-      'separator' => '',
-    ),
-    'is_relationshiptype' => array(
-      'sortable' => 1,
-      'separator' => '',
-    ),
-  );
-  /* Header: Global: Text area */
-  $handler->display->display_options['header']['text']['id'] = 'text';
-  $handler->display->display_options['header']['text']['table'] = 'views';
-  $handler->display->display_options['header']['text']['field'] = 'area';
-  $handler->display->display_options['header']['text']['label'] = 'Add cvterm';
-  $handler->display->display_options['header']['text']['empty'] = TRUE;
-  $handler->display->display_options['header']['text']['content'] = '<ul class="action-links">
+/* Display: Defaults */
+$handler = $view->new_display('default', 'Defaults', 'default');
+$handler->display->display_options['title'] = 'Controlled Vocabulary Terms';
+$handler->display->display_options['use_more_always'] = FALSE;
+$handler->display->display_options['access']['type'] = 'perm';
+$handler->display->display_options['access']['perm'] = 'administer controlled vocabularies';
+$handler->display->display_options['cache']['type'] = 'none';
+$handler->display->display_options['query']['type'] = 'views_query';
+$handler->display->display_options['exposed_form']['type'] = 'basic';
+$handler->display->display_options['pager']['type'] = 'full';
+$handler->display->display_options['pager']['options']['items_per_page'] = '25';
+$handler->display->display_options['pager']['options']['offset'] = '0';
+$handler->display->display_options['pager']['options']['id'] = '0';
+$handler->display->display_options['pager']['options']['quantity'] = '9';
+$handler->display->display_options['style_plugin'] = 'table';
+$handler->display->display_options['style_options']['grouping'] = '';
+$handler->display->display_options['style_options']['columns'] = array(
+  'name_1' => 'name_1',
+  'name' => 'name',
+  'definition' => 'definition',
+  'is_obsolete' => 'is_obsolete',
+  'is_relationshiptype' => 'is_relationshiptype',
+);
+$handler->display->display_options['style_options']['default'] = '-1';
+$handler->display->display_options['style_options']['info'] = array(
+  'name_1' => array(
+    'sortable' => 1,
+    'separator' => '',
+  ),
+  'name' => array(
+    'sortable' => 1,
+    'separator' => '',
+  ),
+  'definition' => array(
+    'sortable' => 0,
+    'separator' => '',
+  ),
+  'is_obsolete' => array(
+    'sortable' => 1,
+    'separator' => '',
+  ),
+  'is_relationshiptype' => array(
+    'sortable' => 1,
+    'separator' => '',
+  ),
+);
+/* Header: Global: Text area */
+$handler->display->display_options['header']['text']['id'] = 'text';
+$handler->display->display_options['header']['text']['table'] = 'views';
+$handler->display->display_options['header']['text']['field'] = 'area';
+$handler->display->display_options['header']['text']['label'] = 'Add cvterm';
+$handler->display->display_options['header']['text']['empty'] = TRUE;
+$handler->display->display_options['header']['text']['content'] = '<ul class="action-links">
         <li><a href="cvterm/add">Add Term</a></li>
         <li><a href="cvterm/add">Add Term</a></li>
    </ul>';
    </ul>';
-  $handler->display->display_options['header']['text']['format'] = 'full_html';
-  /* No results behavior: Global: Text area */
-  $handler->display->display_options['empty']['text']['id'] = 'area';
-  $handler->display->display_options['empty']['text']['table'] = 'views';
-  $handler->display->display_options['empty']['text']['field'] = 'area';
-  $handler->display->display_options['empty']['text']['content'] = 'There are no terms associated with the selected controlled vocabulary. Please select a different vocabulary from the list above.';
-  $handler->display->display_options['empty']['text']['format'] = '1';
-  /* Field: Chado Cv: Name */
-  $handler->display->display_options['fields']['name_1']['id'] = 'name_1';
-  $handler->display->display_options['fields']['name_1']['table'] = 'cv';
-  $handler->display->display_options['fields']['name_1']['field'] = 'name';
-  $handler->display->display_options['fields']['name_1']['label'] = 'Vocabulary';
-  $handler->display->display_options['fields']['name_1']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['name_1']['alter']['path'] = 'cvs?name=[name_1]';
-  /* Field: Chado Cvterm: Cvterm Id */
-  $handler->display->display_options['fields']['cvterm_id']['id'] = 'cvterm_id';
-  $handler->display->display_options['fields']['cvterm_id']['table'] = 'cvterm';
-  $handler->display->display_options['fields']['cvterm_id']['field'] = 'cvterm_id';
-  $handler->display->display_options['fields']['cvterm_id']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['cvterm_id']['separator'] = '';
-  /* Field: Chado Cvterm: Name */
-  $handler->display->display_options['fields']['name']['id'] = 'name';
-  $handler->display->display_options['fields']['name']['table'] = 'cvterm';
-  $handler->display->display_options['fields']['name']['field'] = 'name';
-  /* Field: Chado Cvterm: Definition */
-  $handler->display->display_options['fields']['definition']['id'] = 'definition';
-  $handler->display->display_options['fields']['definition']['table'] = 'cvterm';
-  $handler->display->display_options['fields']['definition']['field'] = 'definition';
-  $handler->display->display_options['fields']['definition']['element_class'] = 'wide-column';
-  $handler->display->display_options['fields']['definition']['element_label_class'] = 'wide-column';
-  /* Field: Chado Cvterm: Is Obsolete */
-  $handler->display->display_options['fields']['is_obsolete']['id'] = 'is_obsolete';
-  $handler->display->display_options['fields']['is_obsolete']['table'] = 'cvterm';
-  $handler->display->display_options['fields']['is_obsolete']['field'] = 'is_obsolete';
-  $handler->display->display_options['fields']['is_obsolete']['label'] = 'Obsolete?';
-  $handler->display->display_options['fields']['is_obsolete']['alter']['alter_text'] = TRUE;
-  $handler->display->display_options['fields']['is_obsolete']['alter']['text'] = 'Yes';
-  $handler->display->display_options['fields']['is_obsolete']['element_class'] = 'short-column';
-  $handler->display->display_options['fields']['is_obsolete']['element_label_class'] = 'short-column';
-  $handler->display->display_options['fields']['is_obsolete']['empty'] = 'No';
-  $handler->display->display_options['fields']['is_obsolete']['empty_zero'] = TRUE;
-  $handler->display->display_options['fields']['is_obsolete']['separator'] = '';
-  /* Field: Chado Cvterm: Is Relationshiptype */
-  $handler->display->display_options['fields']['is_relationshiptype']['id'] = 'is_relationshiptype';
-  $handler->display->display_options['fields']['is_relationshiptype']['table'] = 'cvterm';
-  $handler->display->display_options['fields']['is_relationshiptype']['field'] = 'is_relationshiptype';
-  $handler->display->display_options['fields']['is_relationshiptype']['label'] = 'Relation-ship?';
-  $handler->display->display_options['fields']['is_relationshiptype']['alter']['alter_text'] = TRUE;
-  $handler->display->display_options['fields']['is_relationshiptype']['alter']['text'] = 'Yes';
-  $handler->display->display_options['fields']['is_relationshiptype']['element_class'] = 'short-column';
-  $handler->display->display_options['fields']['is_relationshiptype']['element_label_class'] = 'short-column';
-  $handler->display->display_options['fields']['is_relationshiptype']['empty'] = 'No';
-  $handler->display->display_options['fields']['is_relationshiptype']['empty_zero'] = TRUE;
-  $handler->display->display_options['fields']['is_relationshiptype']['separator'] = '';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
-  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'edit';
-  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
-  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/chado/tripal_cv/cvterm/edit/[cvterm_id]';
-  /* Field: Global: Custom text */
-  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
-  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
-  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
-  $handler->display->display_options['fields']['nothing_1']['label'] = '';
-  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = '[nothing]';
-  $handler->display->display_options['fields']['nothing_1']['element_class'] = 'short-column';
-  $handler->display->display_options['fields']['nothing_1']['element_label_class'] = 'short-column';
-  $handler->display->display_options['fields']['nothing_1']['element_label_colon'] = FALSE;
-  /* Sort criterion: Chado Cv: Name */
-  $handler->display->display_options['sorts']['name']['id'] = 'name';
-  $handler->display->display_options['sorts']['name']['table'] = 'cv';
-  $handler->display->display_options['sorts']['name']['field'] = 'name';
-  /* Sort criterion: Chado Cvterm: Name */
-  $handler->display->display_options['sorts']['name_1']['id'] = 'name_1';
-  $handler->display->display_options['sorts']['name_1']['table'] = 'cvterm';
-  $handler->display->display_options['sorts']['name_1']['field'] = 'name';
-  /* Filter criterion: Chado Cv: Name */
-  $handler->display->display_options['filters']['name']['id'] = 'name';
-  $handler->display->display_options['filters']['name']['table'] = 'cv';
-  $handler->display->display_options['filters']['name']['field'] = 'name';
-  $handler->display->display_options['filters']['name']['value'] = 'All';
-  $handler->display->display_options['filters']['name']['group'] = '0';
-  $handler->display->display_options['filters']['name']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
-  $handler->display->display_options['filters']['name']['expose']['label'] = 'Vocabulary';
-  $handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
-  $handler->display->display_options['filters']['name']['expose']['identifier'] = 'cv';
+$handler->display->display_options['header']['text']['format'] = 'full_html';
+/* No results behavior: Global: Text area */
+$handler->display->display_options['empty']['text']['id'] = 'area';
+$handler->display->display_options['empty']['text']['table'] = 'views';
+$handler->display->display_options['empty']['text']['field'] = 'area';
+$handler->display->display_options['empty']['text']['content'] = 'There are no terms associated with the selected controlled vocabulary. Please select a different vocabulary from the list above.';
+$handler->display->display_options['empty']['text']['format'] = '1';
+/* Field: Chado Cv: Cv Id */
+$handler->display->display_options['fields']['cv_id']['id'] = 'cv_id';
+$handler->display->display_options['fields']['cv_id']['table'] = 'cv';
+$handler->display->display_options['fields']['cv_id']['field'] = 'cv_id';
+$handler->display->display_options['fields']['cv_id']['exclude'] = TRUE;
+$handler->display->display_options['fields']['cv_id']['separator'] = '';
+/* Field: Chado Cv: Name */
+$handler->display->display_options['fields']['name_1']['id'] = 'name_1';
+$handler->display->display_options['fields']['name_1']['table'] = 'cv';
+$handler->display->display_options['fields']['name_1']['field'] = 'name';
+$handler->display->display_options['fields']['name_1']['label'] = 'Vocabulary';
+$handler->display->display_options['fields']['name_1']['alter']['make_link'] = TRUE;
+$handler->display->display_options['fields']['name_1']['alter']['path'] = 'admin/tripal/chado/tripal_cv/cvs?name=[name_1]';
+/* Field: Chado Cvterm: Cvterm Id */
+$handler->display->display_options['fields']['cvterm_id']['id'] = 'cvterm_id';
+$handler->display->display_options['fields']['cvterm_id']['table'] = 'cvterm';
+$handler->display->display_options['fields']['cvterm_id']['field'] = 'cvterm_id';
+$handler->display->display_options['fields']['cvterm_id']['exclude'] = TRUE;
+$handler->display->display_options['fields']['cvterm_id']['separator'] = '';
+/* Field: Chado Cvterm: Name */
+$handler->display->display_options['fields']['name']['id'] = 'name';
+$handler->display->display_options['fields']['name']['table'] = 'cvterm';
+$handler->display->display_options['fields']['name']['field'] = 'name';
+/* Field: Chado Cvterm: Definition */
+$handler->display->display_options['fields']['definition']['id'] = 'definition';
+$handler->display->display_options['fields']['definition']['table'] = 'cvterm';
+$handler->display->display_options['fields']['definition']['field'] = 'definition';
+$handler->display->display_options['fields']['definition']['element_class'] = 'wide-column';
+$handler->display->display_options['fields']['definition']['element_label_class'] = 'wide-column';
+/* Field: Chado Cvterm: Is Obsolete */
+$handler->display->display_options['fields']['is_obsolete']['id'] = 'is_obsolete';
+$handler->display->display_options['fields']['is_obsolete']['table'] = 'cvterm';
+$handler->display->display_options['fields']['is_obsolete']['field'] = 'is_obsolete';
+$handler->display->display_options['fields']['is_obsolete']['label'] = 'Obsolete?';
+$handler->display->display_options['fields']['is_obsolete']['alter']['alter_text'] = TRUE;
+$handler->display->display_options['fields']['is_obsolete']['alter']['text'] = 'Yes';
+$handler->display->display_options['fields']['is_obsolete']['element_class'] = 'short-column';
+$handler->display->display_options['fields']['is_obsolete']['element_label_class'] = 'short-column';
+$handler->display->display_options['fields']['is_obsolete']['empty'] = 'No';
+$handler->display->display_options['fields']['is_obsolete']['empty_zero'] = TRUE;
+$handler->display->display_options['fields']['is_obsolete']['separator'] = '';
+/* Field: Chado Cvterm: Is Relationshiptype */
+$handler->display->display_options['fields']['is_relationshiptype']['id'] = 'is_relationshiptype';
+$handler->display->display_options['fields']['is_relationshiptype']['table'] = 'cvterm';
+$handler->display->display_options['fields']['is_relationshiptype']['field'] = 'is_relationshiptype';
+$handler->display->display_options['fields']['is_relationshiptype']['label'] = 'Relation-ship?';
+$handler->display->display_options['fields']['is_relationshiptype']['alter']['alter_text'] = TRUE;
+$handler->display->display_options['fields']['is_relationshiptype']['alter']['text'] = 'Yes';
+$handler->display->display_options['fields']['is_relationshiptype']['element_class'] = 'short-column';
+$handler->display->display_options['fields']['is_relationshiptype']['element_label_class'] = 'short-column';
+$handler->display->display_options['fields']['is_relationshiptype']['empty'] = 'No';
+$handler->display->display_options['fields']['is_relationshiptype']['empty_zero'] = TRUE;
+$handler->display->display_options['fields']['is_relationshiptype']['separator'] = '';
+/* Field: Global: Custom text */
+$handler->display->display_options['fields']['nothing']['id'] = 'nothing';
+$handler->display->display_options['fields']['nothing']['table'] = 'views';
+$handler->display->display_options['fields']['nothing']['field'] = 'nothing';
+$handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
+$handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
+$handler->display->display_options['fields']['nothing']['alter']['text'] = 'edit';
+$handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
+$handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/chado/tripal_cv/cv/[cv_id]/cvterm/edit/[cvterm_id]';
+/* Field: Global: Custom text */
+$handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
+$handler->display->display_options['fields']['nothing_1']['table'] = 'views';
+$handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
+$handler->display->display_options['fields']['nothing_1']['label'] = '';
+$handler->display->display_options['fields']['nothing_1']['alter']['text'] = '[nothing]';
+$handler->display->display_options['fields']['nothing_1']['element_class'] = 'short-column';
+$handler->display->display_options['fields']['nothing_1']['element_label_class'] = 'short-column';
+$handler->display->display_options['fields']['nothing_1']['element_label_colon'] = FALSE;
+/* Sort criterion: Chado Cv: Name */
+$handler->display->display_options['sorts']['name']['id'] = 'name';
+$handler->display->display_options['sorts']['name']['table'] = 'cv';
+$handler->display->display_options['sorts']['name']['field'] = 'name';
+/* Sort criterion: Chado Cvterm: Name */
+$handler->display->display_options['sorts']['name_1']['id'] = 'name_1';
+$handler->display->display_options['sorts']['name_1']['table'] = 'cvterm';
+$handler->display->display_options['sorts']['name_1']['field'] = 'name';
+/* Filter criterion: Chado Cv: Name */
+$handler->display->display_options['filters']['name']['id'] = 'name';
+$handler->display->display_options['filters']['name']['table'] = 'cv';
+$handler->display->display_options['filters']['name']['field'] = 'name';
+$handler->display->display_options['filters']['name']['value'] = 'All';
+$handler->display->display_options['filters']['name']['group'] = '0';
+$handler->display->display_options['filters']['name']['exposed'] = TRUE;
+$handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
+$handler->display->display_options['filters']['name']['expose']['label'] = 'Vocabulary';
+$handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
+$handler->display->display_options['filters']['name']['expose']['identifier'] = 'cv';
+$handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
+/* Filter criterion: Chado Cvterm: Name */
+$handler->display->display_options['filters']['name_1']['id'] = 'name_1';
+$handler->display->display_options['filters']['name_1']['table'] = 'cvterm';
+$handler->display->display_options['filters']['name_1']['field'] = 'name';
+$handler->display->display_options['filters']['name_1']['operator'] = 'contains';
+$handler->display->display_options['filters']['name_1']['group'] = '0';
+$handler->display->display_options['filters']['name_1']['exposed'] = TRUE;
+$handler->display->display_options['filters']['name_1']['expose']['operator_id'] = '';
+$handler->display->display_options['filters']['name_1']['expose']['label'] = 'Name Contains';
+$handler->display->display_options['filters']['name_1']['expose']['identifier'] = 'name';
+$handler->display->display_options['filters']['name_1']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
+/* Filter criterion: Chado Cvterm: Definition */
+$handler->display->display_options['filters']['definition']['id'] = 'definition';
+$handler->display->display_options['filters']['definition']['table'] = 'cvterm';
+$handler->display->display_options['filters']['definition']['field'] = 'definition';
+$handler->display->display_options['filters']['definition']['operator'] = 'contains';
+$handler->display->display_options['filters']['definition']['group'] = '0';
+$handler->display->display_options['filters']['definition']['exposed'] = TRUE;
+$handler->display->display_options['filters']['definition']['expose']['operator_id'] = 'definition_op';
+$handler->display->display_options['filters']['definition']['expose']['label'] = 'Definition Contains';
+$handler->display->display_options['filters']['definition']['expose']['operator'] = 'definition_op';
+$handler->display->display_options['filters']['definition']['expose']['identifier'] = 'definition';
+$handler->display->display_options['filters']['definition']['expose']['remember_roles'] = array(
+  2 => '2',
+  1 => 0,
+  3 => 0,
+);
+
+/** MANUALLY ADDED since filter handler no exporting correctly */
   $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'select';
   $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'select';
   $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
   $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
   $handler->display->display_options['filters']['name']['expose']['select_optional'] = TRUE;
   $handler->display->display_options['filters']['name']['expose']['select_optional'] = TRUE;
   $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
   $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
-  $handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-  /* Filter criterion: Chado Cvterm: Name */
-  $handler->display->display_options['filters']['name_1']['id'] = 'name_1';
-  $handler->display->display_options['filters']['name_1']['table'] = 'cvterm';
-  $handler->display->display_options['filters']['name_1']['field'] = 'name';
-  $handler->display->display_options['filters']['name_1']['operator'] = 'contains';
-  $handler->display->display_options['filters']['name_1']['group'] = '0';
-  $handler->display->display_options['filters']['name_1']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['name_1']['expose']['operator_id'] = '';
-  $handler->display->display_options['filters']['name_1']['expose']['label'] = 'Name Contains';
-  $handler->display->display_options['filters']['name_1']['expose']['identifier'] = 'name';
-  $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'textfield';
+
+  $handler->display->display_options['filters']['name_1']['expose']['values_form_type'] = 'textfield';
+  $handler->display->display_options['filters']['name_1']['expose']['select_multiple'] = FALSE;
+  $handler->display->display_options['filters']['name_1']['expose']['select_optional'] = FALSE;
+  $handler->display->display_options['filters']['name_1']['expose']['max_length'] = 40;
+
+/* Display: Page */
+$handler = $view->new_display('page', 'Page', 'page_1');
+$handler->display->display_options['path'] = 'admin/tripal/chado/tripal_cv/cvterms';
+$handler->display->display_options['menu']['type'] = 'tab';
+$handler->display->display_options['menu']['title'] = 'Terms';
+$handler->display->display_options['menu']['description'] = 'A listing of a controlled vocabulary terms for a given vocabulary';
+$handler->display->display_options['menu']['weight'] = '-8';
+$handler->display->display_options['menu']['name'] = 'management';
+$handler->display->display_options['menu']['context'] = 0;
+$handler->display->display_options['menu']['context_only_inline'] = 0;
+
+  /** MANUALLY ADD since filter handler no exporting correctly
+  $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'select';
   $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
   $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
-  $handler->display->display_options['filters']['name']['expose']['select_optional'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['select_optional'] = TRUE;
   $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
   $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
-  $handler->display->display_options['filters']['name_1']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
-  /* Filter criterion: Chado Cvterm: Definition */
-  $handler->display->display_options['filters']['definition']['id'] = 'definition';
-  $handler->display->display_options['filters']['definition']['table'] = 'cvterm';
-  $handler->display->display_options['filters']['definition']['field'] = 'definition';
-  $handler->display->display_options['filters']['definition']['operator'] = 'contains';
-  $handler->display->display_options['filters']['definition']['group'] = '0';
-  $handler->display->display_options['filters']['definition']['exposed'] = TRUE;
-  $handler->display->display_options['filters']['definition']['expose']['operator_id'] = 'definition_op';
-  $handler->display->display_options['filters']['definition']['expose']['label'] = 'Definition Contains';
-  $handler->display->display_options['filters']['definition']['expose']['operator'] = 'definition_op';
-  $handler->display->display_options['filters']['definition']['expose']['identifier'] = 'definition';
-  $handler->display->display_options['filters']['definition']['expose']['remember_roles'] = array(
-    2 => '2',
-    1 => 0,
-    3 => 0,
-  );
 
 
-  /* Display: Page */
-  $handler = $view->new_display('page', 'Page', 'page_1');
-  $handler->display->display_options['path'] = 'admin/tripal/chado/tripal_cv/cvterms';
-  $handler->display->display_options['menu']['type'] = 'tab';
-  $handler->display->display_options['menu']['title'] = 'Terms';
-  $handler->display->display_options['menu']['description'] = 'A listing of a controlled vocabulary terms for a given vocabulary';
-  $handler->display->display_options['menu']['weight'] = '-8';
-  $handler->display->display_options['menu']['name'] = 'management';
-  $handler->display->display_options['menu']['context'] = 0;
-  $handler->display->display_options['menu']['context_only_inline'] = 0;
+  $handler->display->display_options['filters']['name_1']['expose']['values_form_type'] = 'textfield';
+  $handler->display->display_options['filters']['name_1']['expose']['select_multiple'] = FALSE;
+  $handler->display->display_options['filters']['name_1']['expose']['select_optional'] = FALSE;
+  $handler->display->display_options['filters']['name_1']['expose']['max_length'] = 40;
+  */
 
 
   return $view;
   return $view;
 }
 }