| 
					
				 | 
			
			
				@@ -13,9 +13,8 @@ function tripal_chado_migrate_form($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $form['overview_vert_tabs'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '#type' => 'vertical_tabs' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $form['modes']['#group'] = 'overview_vert_tabs'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $form['modes']['#weight'] = 1000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $form['modes']['#default_tab'] = $_SESSION['tripal_migrate_current_tab']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $form['overview_vert_tabs']['#default_tab'] = key_exists('tripal_migrate_current_tab', $_SESSION) ? $_SESSION['tripal_migrate_current_tab'] : 'edit-step1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $form['instructions'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '#type' => 'item', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -230,10 +229,10 @@ function tripal_chado_migrate_form($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for the desired content types below.'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Get a list of enabled legacy modules with tv2 templates 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $mod_enabled = tripal_chado_migrate_get_enabled_legacy_modules(TRUE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $enabled_templates = variable_get('tripal_chado_enabled_legacy_templates', array()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $info = module_invoke_all('node_info'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($tv2_options AS $type_name => $type_label) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  $options = tripal_chado_get_tripal_v2_content_type_options(FALSE, TRUE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  foreach ($options AS $type_name => $type_label) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $title = $type_label; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if ($type_name != 'all' and !key_exists($type_name, $info)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -246,7 +245,7 @@ function tripal_chado_migrate_form($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $form['step3']['save_btn'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    '#type' => 'button', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    '#type' => 'submit', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '#name' => 'save_enabled_template_btn', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     '#value' => "Save", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -302,7 +301,7 @@ function tripal_chado_migrate_form($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $form['step4']['submit_btn'] = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      '#type' => 'button', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '#type' => 'submit', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       '#name' => 'complete_migration_btn', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       '#value' => "Submit", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -317,6 +316,18 @@ function tripal_chado_migrate_form($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @param $form_state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function tripal_chado_migrate_form_validate($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Implements hook_submit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * By submiting the form, a Tripal job to migrate Tripal v2 content is submitted 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param $form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @param $form_state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function tripal_chado_migrate_form_submit($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Store the legacy template setting in a Drupal variable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if ($form_state['clicked_button']['#name'] == 'save_enabled_template_btn') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $values = $form_state['values']; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -328,6 +339,7 @@ function tripal_chado_migrate_form_validate($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     variable_set('tripal_chado_enabled_legacy_templates', $enabled_templates); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     drupal_theme_rebuild(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $_SESSION['tripal_migrate_current_tab'] = 'edit-step3'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Complete migration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   else if ($form_state['clicked_button']['#name'] == 'complete_migration_btn') { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -369,41 +381,31 @@ function tripal_chado_migrate_form_validate($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $includes = array( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       module_load_include('inc', 'tripal_chado', 'includes/tripal_chado.migrate'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (count($config['cp_title']) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $args = array($config['cp_title']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tripal_add_job("Copy Title over to Tripal v3 Content", 'tripal_chado', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'tripal_chado_copy_title_for_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'tripal_chado_copy_title_for_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (count($config['mv_url']) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $args = array($config['mv_url']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tripal_add_job(" Migrate URL Alias to Tripal v3 Content ", 'tripal_chado', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'tripal_chado_migrate_url_alias_for_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'tripal_chado_migrate_url_alias_for_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (count($config['unpublish']) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $args = array($config['unpublish']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tripal_add_job(" Unpublish Tripal v2 Content ", 'tripal_chado', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'tripal_chado_unpublish_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'tripal_chado_unpublish_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (count($config['delete']) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       $args = array($config['delete']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       tripal_add_job("Delete Tripal v2 Content ", 'tripal_chado', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        'tripal_chado_delete_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'tripal_chado_delete_selected_types', $args, $user->uid, 10, $includes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $_SESSION['tripal_migrate_current_tab'] = 'edit-step4'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Implements hook_submit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * By submiting the form, a Tripal job to migrate Tripal v2 content is submitted 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * @param $form_state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_migrate_form_submit($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if ($form_state['clicked_button']['#name'] == 'migrate_btn') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else if ($form_state['clicked_button']['#name'] == 'migrate_btn') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     global $user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $values = $form_state['values']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $tv2_content_type = $form_state['values']['tv2_content_type']; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -443,6 +445,7 @@ function tripal_chado_migrate_form_submit($form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return drupal_set_message('Nothing to do. All data have been migrated or no data for migration.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $_SESSION['tripal_migrate_current_tab'] = 'edit-step2'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -468,16 +471,17 @@ function tripal_chado_migrate_form_step2_ajax_callback(&$form, &$form_state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @return string[] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  *  Return a string array keyed by the node type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_get_tripal_v2_content_type_options($all_option = FALSE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function tripal_chado_get_tripal_v2_content_type_options($all_option = FALSE, $has_template = FALSE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // Get all available Tripal v2 chado tables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $sql = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "SELECT table_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       FROM information_schema.tables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       WHERE table_schema = 'public' AND table_name LIKE 'chado_%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $result = db_query($sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Store 'chado_*' tables that has at least one node 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   $tables = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while ($field = $result->fetchField()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $count = db_query("SELECT count(*) FROM $field")->fetchField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $count = db_query("SELECT count(*) FROM $field LIMIT 1")->fetchField(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if ($count != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       array_push($tables, $field); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -493,8 +497,17 @@ function tripal_chado_get_tripal_v2_content_type_options($all_option = FALSE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $options['all'] = 'All'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   while ($obj = $result->fetchObject()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (in_array($obj->type, $tables)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $options[$obj->type] = $obj->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($has_template) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $mod = str_replace('chado_', 'tripal_', $obj->type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      $mod_dir = drupal_get_path('module', $mod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (file_exists($mod_dir . '/theme/templates/' . $mod . '_base.tpl.php')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $options[$obj->type] = $obj->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (in_array($obj->type, $tables)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $options[$obj->type] = $obj->name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return $options; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -608,31 +621,6 @@ function tripal_chado_migrate_selected_types($tv3_content_types) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * Get a list of enabled legacy modules 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- * return an associated array with value of module directory and keyed by the module name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function tripal_chado_migrate_get_enabled_legacy_modules ($has_base_template = FALSE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $mod_enabled = module_list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  $legacy_mod = array (); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  foreach ($mod_enabled AS $mod) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (preg_match('/^tripal_/', $mod)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $mod_dir = drupal_get_path('module', $mod); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (preg_match('/\/legacy\//', $mod_dir) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($has_base_template) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (file_exists($mod_dir . '/theme/templates/' . $mod . '_base.tpl.php')) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $legacy_mod[$mod] = $mod_dir; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          $legacy_mod[$mod] = $mod_dir; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  return $legacy_mod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Delete selected Tripal v2 content 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 
			 |