Browse Source

Working on featureprop adder

Stephen Ficklin 8 years ago
parent
commit
c12fc2eeaf
1 changed files with 26 additions and 16 deletions
  1. 26 16
      tripal_chado/includes/TripalFields/chado_linker__prop_adder.inc

+ 26 - 16
tripal_chado/includes/TripalFields/chado_linker__prop_adder.inc

@@ -38,12 +38,13 @@ class chado_linker__prop_adder extends TripalField {
   public function widgetForm(&$widget, &$form, &$form_state, $langcode, $items, $delta, $element) {
 
     $field_name = $widget['#field_name'];
-    
+
     $widget['#type'] = 'fieldset';
     $widget['#title'] = $element['#title'];
     $widget['#description'] = $element['#description'];
     $widget['#group'] = 'entity_form_vtabs';
 
+
 /*     $widget['kvproperty_instructions'] = array(
       '#type' => 'item',
       '#markup' => t('You may add additional properties to this form by
@@ -54,9 +55,13 @@ class chado_linker__prop_adder extends TripalField {
           of this type.'),
     ); */
     $term_name = array_key_exists('values', $form_state) ? $form_state['values']['term_name'] : '';
-    
+
+    $widget['wrapper'] = array(
+      '#prefix' =>  "<span id='$field_name-lookup-form'>",
+      '#suffix' => '</span>',
+    );
     // If no term has been selected yet then provide the auto complete field.
-    $widget['term_name'] = array(
+    $widget['wrapper']['term_name'] = array(
       '#title'       => t('Term'),
       '#type'        => 'textfield',
       '#description' => t("The content type must be the name of a term in
@@ -68,19 +73,20 @@ class chado_linker__prop_adder extends TripalField {
       '#default_value' => $term_name,
       '#autocomplete_path' => "admin/tripal/storage/chado/auto_name/cvterm/",
     );
-    $widget['select_button'] = array(
+
+    $widget['wrapper']['select_button'] = array(
       '#type' => 'button',
       '#value' => t('Lookup Term'),
       '#name' => 'select_cvterm',
       '#ajax' => array(
         'callback' => "tripal_chado_prop_adder_form_ajax_callback",
-        'wrapper' => "edit-$field_name-und-0",
+        'wrapper' => "$field_name-lookup-form",
         'effect' => 'fade',
         'method' => 'replace'
       ),
     );
     if ($term_name) {
-      $widget['terms_list'] = array(
+      $widget['wrapper']['terms_list'] = array(
         '#type' => 'fieldset',
         '#title' => t('Matching Terms'),
         '#description' => t('Please select the term the best matches the
@@ -102,7 +108,7 @@ class chado_linker__prop_adder extends TripalField {
           $default = TRUE;
           $attrs = array('checked' => 'checked');
         }
-        $widget['terms_list']['term-' . $term->cvterm_id] = array(
+        $widget['wrapper']['terms_list']['term-' . $term->cvterm_id] = array(
           '#type' => 'checkbox',
           '#title' =>  $term->name,
           '#default_value' => $default,
@@ -114,24 +120,25 @@ class chado_linker__prop_adder extends TripalField {
         $num_terms++;
       }
       if ($num_terms == 0) {
-        $widget['terms_list']['none'] = array(
+        $widget['wrapper']['terms_list']['none'] = array(
           '#type' => 'item',
           '#markup' => '<i>' . t('There is no term that matches the entered text.') . '</i>'
         );
       }
       // Add in the button for the cases of no terms or too many.
-      $widget['submit_button'] = array(
+      $widget['wrapper']['submit_button'] = array(
         '#type' => 'submit',
         '#value' => t('Use this term'),
         '#name' => 'use_cvterm'
       );
     }
-    
-    $widget['cancel_button'] = array(
+
+    $widget['wrapper']['cancel_button'] = array(
       '#type' => 'button',
       '#value' => t('Cancel'),
       '#name' => 'cancel_button',
-      '#limit_validation_errors' => array()
+      '#limit_validation_errors' => array(),
+      '#suffix' =>  "</span>",
     );
   }
 
@@ -151,7 +158,7 @@ class chado_linker__prop_adder extends TripalField {
     if (trim($kvproperty) && count($cvterms) == 1) {
       // Get the table and base table.
       $base_table = $this->field['settings']['base_table'];
-      
+
       // Generate the name for the property table and the field name that we'll
       // be creating.
       $prop_table = $base_table . 'prop';
@@ -269,7 +276,10 @@ class chado_linker__prop_adder extends TripalField {
  */
 function tripal_chado_prop_adder_form_ajax_callback($form, $form_state) {
   $field_name = $form_state['triggering_element']['#parents'][0];
-  $delta = $form_state['triggering_element']['#parents'][2];
-  drupal_debug($form[$field_name]['und'][$delta]);
-  return $form[$field_name]['und'][$delta];
+
+//   $delta = $form_state['triggering_element']['#parents'][2];
+//   drupal_debug($form[$field_name]['und'][$delta]);
+//   return $form[$field_name]['und'][$delta];
+  return print_r(array_keys($form),TRUE);
+  return $form[''][$field_name];
 }