|
@@ -185,6 +185,7 @@ function tripal_entities_field_widget_form(&$form, &$form_state, $field,
|
|
|
|
|
|
$widget = $element;
|
|
|
$widget['#delta'] = $delta;
|
|
|
+ $field_name = $field['field_name'];
|
|
|
|
|
|
switch ($instance['widget']['type']) {
|
|
|
case 'tripal_entities_organism_select_widget':
|
|
@@ -217,7 +218,12 @@ function tripal_entities_field_widget_form(&$form, &$form_state, $field,
|
|
|
$version = $dbxref->version;
|
|
|
$description = $dbxref->description;
|
|
|
}
|
|
|
-
|
|
|
+ $temp = tripal_entities_get_field_form_values($field_name, $form_state, 'dbxref__db_id');
|
|
|
+ if (count($temp) > 0) {
|
|
|
+ $db_id = $temp[0];
|
|
|
+ }
|
|
|
+ drupal_debug(array($field_name, $temp, $db_id));
|
|
|
+
|
|
|
$schema = chado_get_schema('dbxref');
|
|
|
$options = tripal_get_db_select_options();
|
|
|
$widget += array(
|
|
@@ -240,8 +246,8 @@ function tripal_entities_field_widget_form(&$form, &$form_state, $field,
|
|
|
'#required' => $element['#required'],
|
|
|
'#default_value' => $db_id,
|
|
|
'#ajax' => array(
|
|
|
- 'callback' => "tripal_entities_field_widget_form_ajax_callback",
|
|
|
- 'wrapper' => 'tripal_entities_field_widget_form',
|
|
|
+ 'callback' => "tripal_entities_primary_dbxref_widget_form_ajax_callback",
|
|
|
+ 'wrapper' => "$field_name-dbxref--db-id",
|
|
|
'effect' => 'fade',
|
|
|
'method' => 'replace'
|
|
|
)
|
|
@@ -269,6 +275,8 @@ function tripal_entities_field_widget_form(&$form, &$form_state, $field,
|
|
|
'#size' => 20,
|
|
|
),
|
|
|
),
|
|
|
+ '#prefix' => "<span id='$field_name-dbxref--db-id'>",
|
|
|
+ '#suffix' => "</span>"
|
|
|
);
|
|
|
$element['value'] = $widget;
|
|
|
break;
|
|
@@ -371,12 +379,12 @@ function tripal_entities_primary_dbxref_widget_validate($element, &$form_state)
|
|
|
/**
|
|
|
* Callback function for validating the tripal_entities_md5checksum_checkbox_widget.
|
|
|
*/
|
|
|
-function tripal_entities_md5checksum_checkbox_widget_validate($element, &$form_state) {
|
|
|
+function tripal_entities_md5checksum_checkbox_widget_validate($element, &$form_state) {
|
|
|
$field_name = $element['#field_name'];
|
|
|
|
|
|
// Calculate the md5 checksum for the sequence only if md5 box is checked and the residues exist
|
|
|
$residues = tripal_entities_get_field_form_values('feature__residues', $form_state);
|
|
|
- if (count($residues) > 0 && trim($residues[0]) != '') {
|
|
|
+ if (count($residues) > 0 && trim($residues[0]) != '') {
|
|
|
tripal_entities_set_field_form_values ($field_name, $form_state, md5($residues[0]));
|
|
|
}
|
|
|
else {
|
|
@@ -433,13 +441,15 @@ function theme_tripal_entities_primary_dbxref_widget($variables) {
|
|
|
*/
|
|
|
function tripal_entities_get_field_form_values($field_name, $form_state, $child = NULL) {
|
|
|
$values = array();
|
|
|
- foreach ($form_state['values'][$field_name] as $langcode => $items) {
|
|
|
- foreach ($items as $delta => $value) {
|
|
|
- if ($child and array_key_exists($child, $value['value'][0]) and $value['value'][0][$child]) {
|
|
|
- $values[] = $value['value'][0][$child];
|
|
|
- }
|
|
|
- else if (!$child and $value['value']) {
|
|
|
- $values[] = $value['value'];
|
|
|
+ if (array_key_exists($field_name, $form_state['values'])) {
|
|
|
+ foreach ($form_state['values'][$field_name] as $langcode => $items) {
|
|
|
+ foreach ($items as $delta => $value) {
|
|
|
+ if ($child and array_key_exists($child, $value['value'][0]) and $value['value'][0][$child]) {
|
|
|
+ $values[] = $value['value'][0][$child];
|
|
|
+ }
|
|
|
+ else if (!$child and $value['value']) {
|
|
|
+ $values[] = $value['value'];
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -467,7 +477,9 @@ function tripal_entities_set_field_form_values($field_name, &$form_state, $newva
|
|
|
/**
|
|
|
* An Ajax callback for the tripal_entities_admin_publish_form..
|
|
|
*/
|
|
|
-function tripal_entities_field_widget_form_ajax_callback($form, $form_state) {
|
|
|
+function tripal_entities_primary_dbxref_widget_form_ajax_callback($form, $form_state) {
|
|
|
// return the form so Drupal can update the content on the page
|
|
|
- return $form;
|
|
|
+// return $form['][', $element ['#parents']) . '][0][dbxref__accession',
|
|
|
+drupal_debug($form_state['triggering_element']);
|
|
|
+ return $form[$form_state['triggering_element']['#parents'][0]];
|
|
|
}
|