|  | @@ -371,7 +371,7 @@ class chado_linker__relationship extends TripalField {
 | 
	
		
			
				|  |  |        ),
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |      if ($cv_id) {
 | 
	
		
			
				|  |  | -      $options = array();      
 | 
	
		
			
				|  |  | +      $options = array();
 | 
	
		
			
				|  |  |        $widget['type_name'] = array(
 | 
	
		
			
				|  |  |          '#type' => 'textfield',
 | 
	
		
			
				|  |  |          '#title' => t('Relationship Type'),
 | 
	
	
		
			
				|  | @@ -871,27 +871,74 @@ class chado_linker__relationship extends TripalField {
 | 
	
		
			
				|  |  |    public static function instanceSettingsForm($field, $instance) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      $element = parent::instanceSettingsForm($field, $instance);
 | 
	
		
			
				|  |  | -    $element['instructions'] = array(
 | 
	
		
			
				|  |  | +    $element['relationships'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'fieldset',
 | 
	
		
			
				|  |  | +      '#title' => 'Allowed Relationship Types',
 | 
	
		
			
				|  |  | +      '#description' => t('There are three ways that relationship types
 | 
	
		
			
				|  |  | +          can be limited for users who have permission to add new relationships.
 | 
	
		
			
				|  |  | +          Please select the most appropriate for you use case.  By default
 | 
	
		
			
				|  |  | +          all vocabularies are provided to the user which allows use of any
 | 
	
		
			
				|  |  | +          term for the relationship type.'),
 | 
	
		
			
				|  |  | +      '#collapsed' => TRUE,
 | 
	
		
			
				|  |  | +      '#collapsible' => TRUE,
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +//     $element['instructions'] = array(
 | 
	
		
			
				|  |  | +//       '#type' => 'item',
 | 
	
		
			
				|  |  | +//       '#markup' => 'You may provide a list of terms that will be available in a select box
 | 
	
		
			
				|  |  | +//         as the relationship types. This select box will replace the vocabulary select box if the
 | 
	
		
			
				|  |  | +//         following value is set.'
 | 
	
		
			
				|  |  | +//     );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    $vocs = tripal_get_cv_select_options();
 | 
	
		
			
				|  |  | +    $element['relationships']['option1'] = array(
 | 
	
		
			
				|  |  |        '#type' => 'item',
 | 
	
		
			
				|  |  | -      '#markup' => 'You may provide a list of terms that will be available in a select box
 | 
	
		
			
				|  |  | -        as the relationship types. This select box will replace the vocabulary select box if the
 | 
	
		
			
				|  |  | -        following value is set.'
 | 
	
		
			
				|  |  | +      '#title' => 'Option #1',
 | 
	
		
			
				|  |  | +      '#description' => t('Use this option to limit the vocabularies that a user .
 | 
	
		
			
				|  |  | +        could use to specify relationship types. With this option any term in .
 | 
	
		
			
				|  |  | +        the vocabulary can be used for the relationship type. You may select
 | 
	
		
			
				|  |  | +        more than one vocabulary.'),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +    $element['relationships']['option1_vocabs'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'select',
 | 
	
		
			
				|  |  | +      '#multiple' => TRUE,
 | 
	
		
			
				|  |  | +      '#options' => $vocs,
 | 
	
		
			
				|  |  | +      '#size' => 6,
 | 
	
		
			
				|  |  | +      '#default_value' => $instance['settings']['default_vocabs'],
 | 
	
		
			
				|  |  | +      // TODO add ajax here so that the relationship autocomplete below works
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    $element['child_relationship_types'] = array(
 | 
	
		
			
				|  |  | +    $element['relationships']['option2'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'item',
 | 
	
		
			
				|  |  | +      '#title' => '<b>Option #2</b>',
 | 
	
		
			
				|  |  | +      '#description' => 'Some vocabularies are heirarchichal (an ontology). Within this
 | 
	
		
			
				|  |  | +         heirarchy groups of related terms typically fall under a common parent. If you
 | 
	
		
			
				|  |  | +         wish to limit the list of terms that a user can use for the relationship type,
 | 
	
		
			
				|  |  | +         you can provide the parent term here.  Then, only that term\'s children will
 | 
	
		
			
				|  |  | +         then be avilable for use as a relationship type.',
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +    $element['relationships']['option2_vocab'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'select',
 | 
	
		
			
				|  |  | +      '#description' => 'Specify Default Vocabularies',
 | 
	
		
			
				|  |  | +      '#multiple' => FALSE,
 | 
	
		
			
				|  |  | +      '#options' => $vocs,
 | 
	
		
			
				|  |  | +      '#default_value' => $instance['settings']['default_vocabs'],
 | 
	
		
			
				|  |  | +      // TODO add ajax here so that the relationship autocomplete below works
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +    $element['relationships']['option2_parent'] = array(
 | 
	
		
			
				|  |  |        '#type' => 'textfield',
 | 
	
		
			
				|  |  | -      '#title' => 'Child Relationship Types',
 | 
	
		
			
				|  |  | -      '#description' => 'Provide a term that all of its child terms will be available as  
 | 
	
		
			
				|  |  | -        relationship types.',
 | 
	
		
			
				|  |  | +      '#description' => 'Specify a Heirarchical Parent Term',
 | 
	
		
			
				|  |  |        '#default_value' => $instance['settings']['child_relationship_types'],
 | 
	
		
			
				|  |  |        '#autocomplete_path' => "admin/tripal/storage/chado/auto_name/cvterm/"
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    $element['relationship_types'] = array(
 | 
	
		
			
				|  |  | -      '#type' => 'textarea',
 | 
	
		
			
				|  |  | -      '#title' => 'Specific Relationship Types',
 | 
	
		
			
				|  |  | -      '#description' => 'Provide terms separated by a new line. The term provided should be 
 | 
	
		
			
				|  |  | +    $element['relationships']['option3'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'item',
 | 
	
		
			
				|  |  | +      '#title' => 'Option #3',
 | 
	
		
			
				|  |  | +      '#description' => 'Provide terms separated by a new line. The term provided should be
 | 
	
		
			
				|  |  |          unique and distinguishable by the name.',
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +    $element['relationships']['relationship_types'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'textarea',
 | 
	
		
			
				|  |  |        '#default_value' => $instance['settings']['relationship_types'],
 | 
	
		
			
				|  |  |      );
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -917,7 +964,7 @@ class chado_linker__relationship extends TripalField {
 | 
	
		
			
				|  |  |          // Don't save the form  if a term can not be found or it matches more than one cvterm
 | 
	
		
			
				|  |  |          if (!isset($term->cvterm_id)) {
 | 
	
		
			
				|  |  |            form_set_error(
 | 
	
		
			
				|  |  | -            "instance][settings][relationship_types", 
 | 
	
		
			
				|  |  | +            "instance][settings][relationships][relationship_types",
 | 
	
		
			
				|  |  |              t("The term '@type' can not be found or matches more than one term.", array('@type' => $type))
 | 
	
		
			
				|  |  |            );
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -929,7 +976,7 @@ class chado_linker__relationship extends TripalField {
 | 
	
		
			
				|  |  |        $term = tripal_get_cvterm(array('name' => trim($supertype)));
 | 
	
		
			
				|  |  |        if (!isset($term->cvterm_id)) {
 | 
	
		
			
				|  |  |          form_set_error(
 | 
	
		
			
				|  |  | -            "instance][settings][child_relationship_types",
 | 
	
		
			
				|  |  | +            "instance][settings][relationships][child_relationship_types",
 | 
	
		
			
				|  |  |              t("The term '@type' can not be found or matches more than one term.", array('@type' => $supertype))
 | 
	
		
			
				|  |  |              );
 | 
	
		
			
				|  |  |        }
 |