Bladeren bron

Added cancel button

Stephen Ficklin 9 jaren geleden
bovenliggende
commit
6b8addcb06
1 gewijzigde bestanden met toevoegingen van 50 en 16 verwijderingen
  1. 50 16
      tripal_entities/tripal_entities.module

+ 50 - 16
tripal_entities/tripal_entities.module

@@ -371,6 +371,10 @@ function chado_data_form($form, &$form_state, $entity = NULL) {
       '#type'  => 'hidden',
       '#value' => $entity_id,
     );
+    $form['entity'] = array(
+      '#type'  => 'value',
+      '#value' => $entity,
+    );
     $form['record_id'] = array(
       '#type'  => 'hidden',
       '#value' => $entity->record_id,
@@ -435,17 +439,21 @@ function chado_data_form($form, &$form_state, $entity = NULL) {
       '#type'  => 'hidden',
       '#value' => $bundle_id,
     );
-    $form['cv_name_shown'] = array(
+    $form['details'] = array(
+      '#type' => 'fieldset',
+      '#title' => 'Record Type',
+      '#collapsable' => FALSE,
+      '#weight' => -100,
+    );
+    $form['details']['cv_name_shown'] = array(
       '#type' => 'item',
       '#title' => 'Vocabulary',
       '#markup' => $cvterm->cv_id->name,
-      '#weight' => -100,
     );
-    $form['term_name_shown'] = array(
+    $form['details']['term_name_shown'] = array(
       '#type' => 'item',
-      '#title' => 'Record Type',
+      '#title' => 'Term',
       '#markup' => $cvterm->name,
-      '#weight' => -100,
     );
 /*
 
@@ -528,14 +536,29 @@ function chado_data_form($form, &$form_state, $entity = NULL) {
     $form['#parents'] = array('attached');
     field_attach_form('chado_data', $entity, $form, $form_state);
 
-    $form['submit'] = array(
-      '#type' => 'submit',
-      '#value' => t('Add a new ' . $cvterm->name),
-      '#name' => 'add_data',
-      '#weight' => 1000
-    );
+    if (!$entity_id) {
+      $form['submit'] = array(
+        '#type' => 'submit',
+        '#value' => t('Add a new ' . $cvterm->name),
+        '#name' => 'add_data',
+        '#weight' => 1000
+      );
+    }
+    else {
+      $form['submit'] = array(
+        '#type' => 'submit',
+        '#value' => t('Update'),
+        '#name' => 'update_data',
+        '#weight' => 1000
+      );
+    }
   }
-
+  $form['cancel'] = array(
+    '#type' => 'submit',
+    '#value' => t('Cancel'),
+    '#name' => 'cancel',
+    '#weight' => 1000
+  );
   $form['#prefix'] = '<div id="chado_data_form">';
   $form['#suffix'] = '</div>';
   return $form;
@@ -811,10 +834,11 @@ function chado_data_form_ajax_callback($form, $form_state) {
  * Implements hook_validate() for the chado_data_form.
  */
 function chado_data_form_validate($form, &$form_state) {
-   if ($form_state['clicked_button']['#name'] == 'add_data') {
-     $chado_data = (object) $form_state['values'];
-     field_attach_form_validate('chado_data', $chado_data, $form, $form_state);
-   }
+
+  if ($form_state['clicked_button']['#name'] == 'add_data') {
+    $chado_data = (object) $form_state['values'];
+    field_attach_form_validate('chado_data', $chado_data, $form, $form_state);
+  }
 }
 
 /**
@@ -822,6 +846,16 @@ function chado_data_form_validate($form, &$form_state) {
  *
  */
 function chado_data_form_submit($form, &$form_state) {
+  if ($form_state['clicked_button']['#name'] == 'cancel') {
+    if (array_key_exists('entity_id', $form_state['values'])){
+      $entity = $form_state['values']['entity'];
+      $form_state['redirect'] = "chado_data/$entity->entity_id";
+    }
+    else {
+      $form_state['redirect'] = "admin/structure/chado_data/manage";
+    }
+    return;
+  }
   if ($form_state['clicked_button']['#name'] == 'select_cvterm') {
     // don't do anything, we just need to know what the term name is.
     $form_state['rebuild'] = TRUE;