|  | @@ -6,17 +6,23 @@
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  | - * Load Chado Schema 1.11 Form
 | 
	
		
			
				|  |  | + * Load Chado Schema Form
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * @ingroup tripal_core
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function tripal_core_chado_load_form() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  $version = tripal_core_set_chado_version();
 | 
	
		
			
				|  |  | +  // we want to force the version of Chado to be set properly
 | 
	
		
			
				|  |  | +  $real_version = tripal_core_set_chado_version();
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  // get the effective version.  Pass true as second argument
 | 
	
		
			
				|  |  | +  // to warn the user if the current version is not compatible
 | 
	
		
			
				|  |  | +  $version = tripal_core_get_chado_version(FALSE, TRUE);
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |    $form['current_version'] = array(
 | 
	
		
			
				|  |  |      '#type' => 'item',
 | 
	
		
			
				|  |  |      '#title' => t("Current installed version of Chado"),
 | 
	
		
			
				|  |  | -    '#value' => $version,
 | 
	
		
			
				|  |  | +    '#value' => $real_version,
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $form['action_to_do'] = array(
 | 
	
	
		
			
				|  | @@ -73,19 +79,31 @@ function tripal_core_chado_load_form_submit($form, &$form_state) {
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function tripal_core_install_chado($action) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  $vsql = "INSERT INTO chadoprop (type_id, value) VALUES  "
 | 
	
		
			
				|  |  | -        ."((SELECT cvterm_id "
 | 
	
		
			
				|  |  | -        ."FROM cvterm CVT "
 | 
	
		
			
				|  |  | -        ." INNER JOIN cv CV on CVT.cv_id = CV.cv_id "
 | 
	
		
			
				|  |  | -        ."WHERE CV.name = 'chado_properties' AND CVT.name = 'version'), "
 | 
	
		
			
				|  |  | -        ."'%s') ";
 | 
	
		
			
				|  |  | +  $vsql = "INSERT INTO chadoprop (type_id, value) VALUES  " .
 | 
	
		
			
				|  |  | +          "((SELECT cvterm_id " .
 | 
	
		
			
				|  |  | +          "FROM cvterm CVT " .
 | 
	
		
			
				|  |  | +          " INNER JOIN cv CV on CVT.cv_id = CV.cv_id " .
 | 
	
		
			
				|  |  | +          "WHERE CV.name = 'chado_properties' AND CVT.name = 'version'), " .
 | 
	
		
			
				|  |  | +          "'%s') ";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if($action == 'Install Chado v1.2'){
 | 
	
		
			
				|  |  |      $schema_file = drupal_get_path('module', 'tripal_core') . '/chado_schema/default_schema-1.2.sql';
 | 
	
		
			
				|  |  |      $init_file = drupal_get_path('module', 'tripal_core') . '/chado_schema/initialize-1.2.sql';
 | 
	
		
			
				|  |  |      if (tripal_core_reset_chado_schema()) {
 | 
	
		
			
				|  |  | -      tripal_core_install_sql($schema_file);
 | 
	
		
			
				|  |  | -      tripal_core_install_sql($init_file);
 | 
	
		
			
				|  |  | +      $success = tripal_core_install_sql($schema_file);
 | 
	
		
			
				|  |  | +      if ($success) {
 | 
	
		
			
				|  |  | +        print "Installation Complete!\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      else {
 | 
	
		
			
				|  |  | +        print "Installation Problems!  Please check output above for errors.\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      $success = tripal_core_install_sql($init_file);
 | 
	
		
			
				|  |  | +      if ($success) {
 | 
	
		
			
				|  |  | +        print "Installation Complete!\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      else {
 | 
	
		
			
				|  |  | +        print "Installation Problems!  Please check output above for errors.\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        db_query($vsql,'1.2'); # set the version
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else {
 | 
	
	
		
			
				|  | @@ -96,16 +114,40 @@ function tripal_core_install_chado($action) {
 | 
	
		
			
				|  |  |    elseif($action == 'Upgrade Chado v1.11 to v1.2') {
 | 
	
		
			
				|  |  |      $schema_file = drupal_get_path('module', 'tripal_core') . '/chado_schema/default_schema-1.11-1.2-diff.sql';
 | 
	
		
			
				|  |  |      $init_file = drupal_get_path('module', 'tripal_core') . '/chado_schema/upgrade-1.11-1.2.sql';
 | 
	
		
			
				|  |  | -    tripal_core_install_sql($schema_file);
 | 
	
		
			
				|  |  | -    tripal_core_install_sql($init_file);
 | 
	
		
			
				|  |  | +    $success = tripal_core_install_sql($schema_file);
 | 
	
		
			
				|  |  | +    if ($success) {
 | 
	
		
			
				|  |  | +      print "Installation Complete!\n";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    else {
 | 
	
		
			
				|  |  | +      print "Installation Problems!  Please check output above for errors.\n";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    $success = tripal_core_install_sql($init_file);
 | 
	
		
			
				|  |  | +    if ($success) {
 | 
	
		
			
				|  |  | +      print "Installation Complete!\n";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    else {
 | 
	
		
			
				|  |  | +      print "Installation Problems!  Please check output above for errors.\n";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |      db_query($vsql,'1.2'); # set the version
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    elseif($action == 'Install Chado v1.11'){
 | 
	
		
			
				|  |  |      $schema_file = drupal_get_path('module', 'tripal_core') . '/chado_schema/default_schema-1.11.sql';
 | 
	
		
			
				|  |  |      $init_file = drupal_get_path('module', 'tripal_core') . '/chado_schema/initialize-1.11.sql';
 | 
	
		
			
				|  |  |      if (tripal_core_reset_chado_schema()) {
 | 
	
		
			
				|  |  | -      tripal_core_install_sql($schema_file);
 | 
	
		
			
				|  |  | -      tripal_core_install_sql($init_file);
 | 
	
		
			
				|  |  | +      $success = tripal_core_install_sql($schema_file);
 | 
	
		
			
				|  |  | +      if ($success) {
 | 
	
		
			
				|  |  | +        print "Installation Complete!\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      else {
 | 
	
		
			
				|  |  | +        print "Installation Problems!  Please check output above for errors.\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      $success = tripal_core_install_sql($init_file);
 | 
	
		
			
				|  |  | +      if ($success) {
 | 
	
		
			
				|  |  | +        print "Installation Complete!\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      else {
 | 
	
		
			
				|  |  | +        print "Installation Problems!  Please check output above for errors.\n";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else {
 | 
	
		
			
				|  |  |        print "ERROR: cannot install chado.  Please check database permissions\n";
 | 
	
	
		
			
				|  | @@ -201,6 +243,7 @@ function tripal_core_install_sql($sql_file) {
 | 
	
		
			
				|  |  |    $in_string = 0;
 | 
	
		
			
				|  |  |    $query = '';
 | 
	
		
			
				|  |  |    $i = 0;
 | 
	
		
			
				|  |  | +  $success = 1;
 | 
	
		
			
				|  |  |    foreach ($lines as $line_num => $line) {
 | 
	
		
			
				|  |  |      $i++;
 | 
	
		
			
				|  |  |      $type = '';
 | 
	
	
		
			
				|  | @@ -314,11 +357,13 @@ function tripal_core_install_sql($sql_file) {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else {
 | 
	
		
			
				|  |  |        print "UNHANDLED $i, $in_string: $line";
 | 
	
		
			
				|  |  | -      return tripal_core_chado_install_done();
 | 
	
		
			
				|  |  | +      tripal_core_chado_install_done();
 | 
	
		
			
				|  |  | +      return FALSE;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if (preg_match_all("/\n/", $query, $temp) > 100) {
 | 
	
		
			
				|  |  |        print "SQL query is too long.  Terminating:\n$query\n";
 | 
	
		
			
				|  |  | -      return tripal_core_chado_install_done();
 | 
	
		
			
				|  |  | +      tripal_core_chado_install_done();
 | 
	
		
			
				|  |  | +      return FALSE;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if ($type and sizeof($stack) == 0) {
 | 
	
		
			
				|  |  |        print "Adding $type: line $i\n";
 | 
	
	
		
			
				|  | @@ -329,15 +374,15 @@ function tripal_core_install_sql($sql_file) {
 | 
	
		
			
				|  |  |        $result = pg_query($active_db, $query);
 | 
	
		
			
				|  |  |        if (!$result) {
 | 
	
		
			
				|  |  |          $error  = pg_last_error();
 | 
	
		
			
				|  |  | -        print "Installation failed:\nSQL $i, $in_string: $query\n$error\n";
 | 
	
		
			
				|  |  | +        print "FAILED!!\nError Message:\nSQL $i, $in_string: $query\n$error\n";
 | 
	
		
			
				|  |  |          pg_query($active_db, "set search_path to public,chado");
 | 
	
		
			
				|  |  | -        return tripal_core_chado_install_done();
 | 
	
		
			
				|  |  | +        $success = 0;
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        $query = '';
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  print "Installation Complete!\n";
 | 
	
		
			
				|  |  |    tripal_core_chado_install_done();
 | 
	
		
			
				|  |  | +  return $success;    
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 |