|  | @@ -16,15 +16,15 @@ class chado_linker__prop_widget extends ChadoFieldWidget {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      $field_name = $this->field['field_name'];
 | 
	
		
			
				|  |  |      $field_type = $this->field['type'];
 | 
	
		
			
				|  |  | -    $field_table = $this->instance['settings']['chado_table'];
 | 
	
		
			
				|  |  | -    $field_column = $this->instance['settings']['chado_column'];
 | 
	
		
			
				|  |  | +    $base_table = $this->instance['settings']['base_table'];
 | 
	
		
			
				|  |  | +    $chado_table = $this->instance['settings']['chado_table'];
 | 
	
		
			
				|  |  | +    $chado_column = $this->instance['settings']['chado_column'];
 | 
	
		
			
				|  |  |      $instance = $this->instance;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Get the name of the pkey field for this property table and the name
 | 
	
		
			
				|  |  |      // of the FK field that links to the base table.
 | 
	
		
			
				|  |  | -    $schema = chado_get_schema($field_table);
 | 
	
		
			
				|  |  | +    $schema = chado_get_schema($chado_table);
 | 
	
		
			
				|  |  |      $pkey = $schema['primary key'][0];
 | 
	
		
			
				|  |  | -    $base_table = $this->instance['settings']['base_table'];
 | 
	
		
			
				|  |  |      $lfkey_field = key($schema['foreign keys'][$base_table]['columns']);
 | 
	
		
			
				|  |  |      $rfkey_field = $schema['foreign keys'][$base_table]['columns'][$lfkey_field];
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -39,20 +39,20 @@ class chado_linker__prop_widget extends ChadoFieldWidget {
 | 
	
		
			
				|  |  |      // array.  This happens when editing an existing record.
 | 
	
		
			
				|  |  |      if (count($items) > 0 and array_key_exists($delta, $items)) {
 | 
	
		
			
				|  |  |        // Check for element values that correspond to fields in the Chado table.
 | 
	
		
			
				|  |  | -      $record_id = tripal_get_field_item_keyval($items, $delta, 'chado-' . $field_table . '__' . $pkey, $record_id);
 | 
	
		
			
				|  |  | -      $fk_value = tripal_get_field_item_keyval($items, $delta, 'chado-' . $field_table . '__' . $lfkey_field, $fk_value);
 | 
	
		
			
				|  |  | -      $type_id = tripal_get_field_item_keyval($items, $delta, 'chado-' . $field_table . '__type_id', $type_id);
 | 
	
		
			
				|  |  | -      $value = tripal_get_field_item_keyval($items, $delta, 'chado-' . $field_table . '__value', $value);
 | 
	
		
			
				|  |  | -      $rank = tripal_get_field_item_keyval($items, $delta, 'chado-' . $field_table . '__rank', $rank);
 | 
	
		
			
				|  |  | +      $record_id = tripal_get_field_item_keyval($items, $delta, 'chado-' . $chado_table . '__' . $pkey, $record_id);
 | 
	
		
			
				|  |  | +      $fk_value = tripal_get_field_item_keyval($items, $delta, 'chado-' . $chado_table . '__' . $lfkey_field, $fk_value);
 | 
	
		
			
				|  |  | +      $type_id = tripal_get_field_item_keyval($items, $delta, 'chado-' . $chado_table . '__type_id', $type_id);
 | 
	
		
			
				|  |  | +      $value = tripal_get_field_item_keyval($items, $delta, 'chado-' . $chado_table . '__value', $value);
 | 
	
		
			
				|  |  | +      $rank = tripal_get_field_item_keyval($items, $delta, 'chado-' . $chado_table . '__rank', $rank);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Check $form_state['values'] to see if an AJAX call set the values.
 | 
	
		
			
				|  |  |      if (array_key_exists('values', $form_state) and array_key_exists($delta, $form_state['values'])) {
 | 
	
		
			
				|  |  | -      $record_id = $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__' . $pkey];
 | 
	
		
			
				|  |  | -      $fk_value = $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__' . $lfkey_field];
 | 
	
		
			
				|  |  | -      $type_id = $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__type_id'];
 | 
	
		
			
				|  |  | -      $value = $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__value'];
 | 
	
		
			
				|  |  | -      $rank = $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__rank'];
 | 
	
		
			
				|  |  | +      $record_id = $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__' . $pkey];
 | 
	
		
			
				|  |  | +      $fk_value = $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__' . $lfkey_field];
 | 
	
		
			
				|  |  | +      $type_id = $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__type_id'];
 | 
	
		
			
				|  |  | +      $value = $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__value'];
 | 
	
		
			
				|  |  | +      $rank = $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__rank'];
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      $widget['value'] = array(
 | 
	
	
		
			
				|  | @@ -60,25 +60,25 @@ class chado_linker__prop_widget extends ChadoFieldWidget {
 | 
	
		
			
				|  |  |        '#value' => array_key_exists($delta, $items) ? $items[$delta]['value'] : '',
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    $widget['chado-' . $field_table . '__' . $pkey] = array(
 | 
	
		
			
				|  |  | +    $widget['chado-' . $chado_table . '__' . $pkey] = array(
 | 
	
		
			
				|  |  |        '#type' => 'hidden',
 | 
	
		
			
				|  |  |        '#default_value' => $record_id,
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  | -    $widget['chado-' . $field_table . '__' . $lfkey_field] = array(
 | 
	
		
			
				|  |  | +    $widget['chado-' . $chado_table . '__' . $lfkey_field] = array(
 | 
	
		
			
				|  |  |        '#type' => 'hidden',
 | 
	
		
			
				|  |  |        '#value' => $fk_value,
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  | -    $widget['chado-' . $field_table . '__value'] = array(
 | 
	
		
			
				|  |  | +    $widget['chado-' . $chado_table . '__value'] = array(
 | 
	
		
			
				|  |  |        '#type' => 'textarea',
 | 
	
		
			
				|  |  |        '#default_value' => $value,
 | 
	
		
			
				|  |  |        '#title' => $instance['label'] . ' value',
 | 
	
		
			
				|  |  |        '#description' => $instance['description'],
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  | -    $widget['chado-' . $field_table . '__type_id'] = array(
 | 
	
		
			
				|  |  | +    $widget['chado-' . $chado_table . '__type_id'] = array(
 | 
	
		
			
				|  |  |        '#type' => 'hidden',
 | 
	
		
			
				|  |  |        '#value' => $type_id,
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  | -    $widget['chado-' . $field_table . '__rank'] = array(
 | 
	
		
			
				|  |  | +    $widget['chado-' . $chado_table . '__rank'] = array(
 | 
	
		
			
				|  |  |        '#type' => 'hidden',
 | 
	
		
			
				|  |  |        '#value' => $rank,
 | 
	
		
			
				|  |  |      );
 | 
	
	
		
			
				|  | @@ -90,24 +90,24 @@ class chado_linker__prop_widget extends ChadoFieldWidget {
 | 
	
		
			
				|  |  |     */
 | 
	
		
			
				|  |  |    public function submit($form, &$form_state, $entity_type, $entity, $langcode, $delta) {
 | 
	
		
			
				|  |  |      $field_name = $this->field['field_name'];
 | 
	
		
			
				|  |  | -    $field_table = $this->instance['settings']['chado_table'];
 | 
	
		
			
				|  |  | -    $schema = chado_get_schema($field_table);
 | 
	
		
			
				|  |  | +    $chado_table = $this->instance['settings']['chado_table'];
 | 
	
		
			
				|  |  | +    $schema = chado_get_schema($chado_table);
 | 
	
		
			
				|  |  |      $pkey = $schema['primary key'][0];
 | 
	
		
			
				|  |  |      $base_table = $this->instance['settings']['base_table'];
 | 
	
		
			
				|  |  |      $lfkey_field = key($schema['foreign keys'][$base_table]['columns']);
 | 
	
		
			
				|  |  |      $rfkey_field = $schema['foreign keys'][$base_table]['columns'][$lfkey_field];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    $value = $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__value'];
 | 
	
		
			
				|  |  | +    $value = $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__value'];
 | 
	
		
			
				|  |  |      $form_state['values'][$field_name]['und'][$delta]['value'] = $value;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // If the user removed the property then we want to clear out the other
 | 
	
		
			
				|  |  |      // fields so there is no insert.
 | 
	
		
			
				|  |  |      if (!$value) {
 | 
	
		
			
				|  |  | -      $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__' . $pkey] = '';
 | 
	
		
			
				|  |  | -      $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__' . $lfkey_field] = '';
 | 
	
		
			
				|  |  | -      $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__type_id'] = '';
 | 
	
		
			
				|  |  | -      $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__value'] = '';
 | 
	
		
			
				|  |  | -      $form_state['values'][$field_name]['und'][$delta]['chado-' . $field_table . '__rank'] = '';
 | 
	
		
			
				|  |  | +      $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__' . $pkey] = '';
 | 
	
		
			
				|  |  | +      $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__' . $lfkey_field] = '';
 | 
	
		
			
				|  |  | +      $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__type_id'] = '';
 | 
	
		
			
				|  |  | +      $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__value'] = '';
 | 
	
		
			
				|  |  | +      $form_state['values'][$field_name]['und'][$delta]['chado-' . $chado_table . '__rank'] = '';
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 |