function tripal_cv_cvterm_edit_form_submit

2.x tripal_cv.cvterm_form.inc tripal_cv_cvterm_edit_form_submit($form, &$form_state)
3.x tripal_chado.cv.inc tripal_cv_cvterm_edit_form_submit($form, &$form_state)

Edits existing controlled vocabulary terms

Related topics

File

tripal_cv/includes/tripal_cv.cvterm_form.inc, line 327
Provides a form for creating & editing chado controlled vocabularies

Code

function tripal_cv_cvterm_edit_form_submit($form, &$form_state) {

  $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']) : '';
  $definition = array_key_exists('definition', $form_state['values']) ? trim($form_state['values']['definition']) : '';
  $is_relationship = array_key_exists('is_relationship', $form_state['values']) ? trim($form_state['values']['is_relationship']) : '';
  $is_obsolete = array_key_exists('is_obsolete', $form_state['values']) ? trim($form_state['values']['is_obsolete']) : '';
  $cvterm_id = array_key_exists('cvterm_id', $form_state['values']) ? trim($form_state['values']['cvterm_id']) : '';
  $db_id = array_key_exists('db_id', $form_state['values']) ? trim($form_state['values']['db_id']) : '';
  $accession = array_key_exists('accession', $form_state['values']) ? trim($form_state['values']['accession']) : '';
  $op = array_key_exists('op', $form_state['values']) ? trim($form_state['values']['op']) : '';


  $step = $form_state['storage']['step'];

  switch ($step) {
    case 0: // a cvterm name has been selected
      $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']) : '';

      // get the original cvterm_id
      $values = array('name' => $name, 'cv_id' => $cv_id);
      $results = chado_select_record('cvterm', array('cvterm_id'), $values);
      $cvterm = $results[0];

      $form_state['storage']['cv_id'] = $cv_id;
      $form_state['storage']['name'] = $name;
      $form_state['storage']['step'] = 1;
      $form_state['storage']['cvterm_id'] = $cvterm->cvterm_id;
      $form_state['rebuild'] = TRUE;
      break;

    case 1: // update/delete button has been clicked

      if ($op == 'Update') {
        // get the cv
        $values = array('cv_id' => $cv_id);
        $results = chado_select_record('cv', array('name'), $values);
        $cv = $results[0];

        // get the db
        $values = array('db_id' => $db_id);
        $results = chado_select_record('db', array('name'), $values);
        $db = $results[0];

        // now add the term
        $term = array(
          'name' => $name,
          'namespace' => $cv->name,
          'id' => $accession,
          'definition' => $definition,
          'is_obsolete' => $is_obsolete,
          'cv_name' => $cv->name,
          'is_relationship' => $is_relationship,
          'db_name' => $db_name
        );

        $cvterm = tripal_insert_cvterm($term, array('update_existing' => TRUE));
        if ($cvterm) {
          drupal_set_message('Term updated successfully.');
        }
        else {
          drupal_set_message('Could not add term. Check Drupal recent logs for error messages.', 'error');
        }
      }
      if ($op == 'Delete') {
        $values = array('cvterm_id' => $cvterm_id);
        $success = chado_delete_record('cvterm', $values);
        if ($success) {
          drupal_set_message('Term deleted successfully.');
        }
        else {
          drupal_set_message('Could not delete term term. Check Drupal recent logs for error messages.', 'error');
        }
      }
      break;
  }
}