瀏覽代碼

Added code to populate table fields for joining

spficklin 13 年之前
父節點
當前提交
c64364d6ab

+ 2 - 2
base/tripal_cv/tripal_cv.module

@@ -607,7 +607,7 @@ function tripal_cv_add_cvterm_form (&$form_state) {
 		array()
 	);
 	$cvs = array();
-  $cvs[] = '';
+   $cvs[] = '';
 	foreach ($results as $cv) {
 		$cvs[$cv->cv_id] = $cv->name;
 	}
@@ -628,7 +628,7 @@ function tripal_cv_add_cvterm_form (&$form_state) {
 
 	$form['add_cvterm'] = array(
 		'#type'					 => 'item',
-		'#value'				 => t('Please select a vocabulary above to add a term to it'),
+		'#value'				    => t('Please select a vocabulary above to add a term to it'),
 		'#prefix'				 => '<div id="cvterm-add-div">',
 		'#suffix'				 => '</div>'		
 	);

+ 100 - 84
base/tripal_views_setup/includes/tripal_views_setup.admin.inc

@@ -97,18 +97,18 @@ function tripal_views_setup_new_setup_form(&$form_state){
 
 
 	$form['mview_id'] = array(
-    '#title' => t('Materialized View'),
-    '#type' => 'select',
-    '#options' => $mview_options,
-    '#description' => 'Which materialized view to use.',
-    '#required' => TRUE,
-    '#ahah' => array(
-	    'path' => 'admin/tripal/tripal_views_setup/ajax/mview_cols',
-  	  'wrapper' => 'table-rows-div',
-      'effect' => 'fade',
-      'event' => 'change',
-      'method' => 'replace',
-	),
+      '#title' => t('Materialized View'),
+      '#type' => 'select',
+      '#options' => $mview_options,
+      '#description' => 'Which materialized view to use.',
+      '#required' => TRUE,
+      '#ahah' => array(
+	      'path' => 'admin/tripal/tripal_views_setup/ajax/mview_cols',
+  	      'wrapper' => 'table-rows-div',
+         'effect' => 'fade',
+         'event' => 'change',
+         'method' => 'replace',
+	   ),
 	);
 
 	// ignore this for now... we'll come back to it later -- spf
@@ -122,9 +122,9 @@ function tripal_views_setup_new_setup_form(&$form_state){
 	//	);
 
 	$form['view_setup_table'] = array(
-    '#type' => 'item',
-  	'#prefix' => '<div id="table-rows-div">',
-  	'#suffix' => '</div>',
+     '#type' => 'item',
+  	  '#prefix' => '<div id="table-rows-div">',
+  	  '#suffix' => '</div>',
 	);
 
 	if($form_state['values']['mview_id']){
@@ -133,9 +133,9 @@ function tripal_views_setup_new_setup_form(&$form_state){
 
 		$form['view_setup_table'] = array(
 			'#type' => 'fieldset',
-			'#title' => 'New View Setup',
+			'#title' => 'Table Fields Setup',
 			'#prefix' => '<div id="table-rows-div">',
-		  '#suffix' => '</div>',
+		   '#suffix' => '</div>',
 		);
 
 		// get the columns in this materialized view.  They are separated by commas
@@ -164,73 +164,72 @@ function tripal_views_setup_new_setup_form(&$form_state){
 			$column_type = $matches[2];
 
 			// first print the field name
-			$form['view_setup_table']["fields_start_$i"] = array(
-         '#type' => 'markup',
-         '#value' => "<div class=\"fields-new-row\">",
+			$form['view_setup_table']["fields_start_$mview_id-$i"] = array(
+           '#type' => 'markup',
+           '#value' => "<div class=\"fields-new-row\">",
 			);
 
-			$form['view_setup_table']["fields_column_name_$i"] = array(
-         '#type' => 'markup',
+			$form['view_setup_table']["fields_column_name_$mview_id-$i"] = array(
+           '#type' => 'markup',
            '#attributes' => array('class' => 'fields-column-name'),
-         '#value' => "<div class=\"column-id\"><span class=\"column-name\">$column_name</span>".
+           '#value' => "<div class=\"column-id\"><span class=\"column-name\">$column_name</span>".
                        "<br><span class=\"column-type\">$column_type</span></div>",
 			);
 
 			// second print the table join drop down
-			$form['view_setup_table']["fields_column_join_$i"] = array(
-         '#type' => 'select',
-         '#prefix' => "<div class=\"fields-column-join\">",
-         '#suffix' => "</div>",
-         '#options' => $chado_tables,
-         '#required' => FALSE,
-         '#ahah' => array(
-           'path' => 'admin/tripal/tripal_views_setup/ajax/field_col_join',
-           'wrapper' => "fields-column-join-column",
-           'effect' => 'fade',
-           'event' => 'change',
-           'method' => 'replace',
-			),
+			$table = $form_state['values']["fields_column_join_$mview_id_$i"];
+			$form['view_setup_table']["fields_column_join_$mview_id-$i"] = array(
+            '#type' => 'select',
+            '#prefix' => "<div class=\"fields-column-join\">",
+            '#suffix' => "</div>",
+            '#options' => $chado_tables,
+            '#required' => FALSE,
+            '#default_value' => $table,
+            '#ahah' => array(
+      	     'path' => 'admin/tripal/tripal_views_setup/ajax/field_col_join',
+      	     'wrapper' => "fields-column-join-column-$mview_id-$i",
+              'effect' => 'fade',
+              'event' => 'change',
+              'method' => 'replace',
+			   ),
 			);
-			$column_join = array();
-			if($form_state['values']["fields_column_join_$i"]){
-				$column_join = array('hello', 'world');
-			}
-			$form['view_setup_table']["fields_column_join_column_$i"] = array(
-         '#type' => 'select',
-//          '#prefix' => "<div id=\"fields-column-join-column-$i\" class=\"fields-column-join-column\">",
-				 '#prefix' => "<div class=\"fields-column-join-column\">",
-         '#suffix' => "</div>",
-         '#options' => $column_join,
-         '#required' => FALSE,
+         if($table){
+            $table_desc = module_invoke_all('chado_'.$table.'_schema');
+            $columns = array_keys($table_desc['fields']);
+         } else {
+            $columns = array();
+         }
+			$form['view_setup_table']["fields_column_join_column_$mview_id-$i"] = array(
+            '#type' => 'select',
+		      '#prefix' => "<div id=\"fields-column-join-column-$mview_id-$i\" class=\"fields-column-join-column\">",
+            '#suffix' => "</div>",
+            '#options' => $columns,
+            '#required' => FALSE,
 			);
-			$form['view_setup_table']["fields_column_handler_$i"] = array(
-         '#type' => 'select',
-           '#prefix' => "<div class=\"fields-column-handler\">",
-           '#suffix' => "</div>",
-         '#options' => $handlers,
-         '#required' => FALSE,
+			$form['view_setup_table']["fields_column_handler_$mview_id-$i"] = array(
+            '#type' => 'select',
+            '#prefix' => "<div class=\"fields-column-handler\">",
+            '#suffix' => "</div>",
+            '#options' => $handlers,
+            '#required' => FALSE,
 			);
 			$form['view_setup_table']["fields_end_$i"] = array(
-         '#type' => 'markup',
-         '#value' => "</div>",
+            '#type' => 'markup',
+            '#value' => "</div>",
 			);
 			$i++;
 		}
 
-		$form['row_counter'] = array(
-		'#type' => 'hidden',
-		'#value' => $i,
-		);
-
-
-
-	}
-	
-	$form['submit'] = array(
+	   $form['view_setup_table']['submit'] = array(
 	      '#type' => 'submit',
 	      '#value' => 'Create',
-	);
+	   );
 
+		$form['row_counter'] = array(
+		   '#type' => 'hidden',
+		   '#value' => $i,
+		);
+	} // end if($form_state['values']['mview_id']) 
 	return $form;
 }
 /**
@@ -239,16 +238,47 @@ function tripal_views_setup_new_setup_form(&$form_state){
  */
 function tripal_view_setup_ajax_mview_cols(){
 
-	$form = tripal_views_setup_ajax_getform($form_state, $args, $_POST);
+   // regenerate the form
+	$form = tripal_views_setup_ajax_rebuild_form($form_state, $args, $_POST);
 
-	unset($form['view_setup_table']['#prefix'], $form['view_setup_table']['#suffix']);
-	$output = theme('status_message') . drupal_render($form['view_setup_table']);
+   // because the AJAX sent a post of the mview_id, the form now has in it
+   // form components for the rows for the materialized view.  We want to add
+   // these components to the page, but we don't need to add the existing form 
+   // elements because they are already there.
+   $view_setup_table_form = $form['view_setup_table'];
+	unset($view_setup_table_form['#prefix'], $view_setup_table_form['#suffix']);
+	$output = theme('status_message') . drupal_render($view_setup_table_form);
 
 	// Final rendering callback.
 	drupal_json(array('status' => TRUE, 'data' => $output));
 }
+/**
+ *
+ * @ingroup tripal_view_setup
+ */
+function tripal_view_setup_ajax_field_col_join(){
+
+   // regenerate the form
+	$form = tripal_views_setup_ajax_rebuild_form($form_state, $args, $_POST);
 
-function tripal_views_setup_ajax_getform(&$form_state, &$args, &$_POST){
+   // get the information we need to pull out table select box that was changed
+   $mview_id = $form_state['values']['mview_id'];
+//   $row = $form_state['values']['mview_id'];
+
+//   $row_select_box = $form['view_setup_table']["fields-column-join-column-$mview_id-1"];
+//	unset($row_select_box['#prefix'], $row_select_box['#suffix']);
+//	$output = theme('status_message') . drupal_render($row_select_box);
+
+	// Final rendering callback.
+//	drupal_json(array('status' => TRUE, 'data' => $output));
+   drupal_json(array('status' => TRUE, 'data' => 'test'));
+
+}
+/**
+ *
+ * @ingroup tripal_view_setup
+ */
+function tripal_views_setup_ajax_rebuild_form(&$form_state, &$args, &$_POST){
 
 	// Retrieve the form from the cache
 	$form_state = array('storage' => NULL);
@@ -279,21 +309,7 @@ function tripal_views_setup_ajax_getform(&$form_state, &$args, &$_POST){
 	return $form;
 }
 
-/**
- *
- * @ingroup tripal_view_setup
- */
-function tripal_view_setup_ajax_field_col_join(){
-
-	$form = tripal_views_setup_ajax_getform($form_state, $args, $_POST);
 
-	unset($form['view_setup_table']['#prefix'], $form['view_setup_table']['#suffix']);
-	$output = theme('status_message') . drupal_render($form['view_setup_table']);
-
-	// Final rendering callback.
-	drupal_json(array('status' => TRUE, 'data' => $output));
-
-}
 
 /**
  *

+ 0 - 14
base/tripal_views_setup/tripal_views_setup.module

@@ -38,20 +38,6 @@ function tripal_views_setup_menu(){
      'type' => MENU_CALLBACK,
    );
 
-  // $items['admin/tripal/tripal_views_setup_new/ajax/mview_column'] = array(
-    // 'title' => 'Get Mview Columns',
-    // 'page callback' => 'tripal_views_setup_ajax_db_mview_columns',
-    // 'access arguments' => array('access administration pages'),
-    // 'type' => MENU_CALLBACK,
-  // );
-
-  // $items['admin/tripal/tripal_views_setup_new/ajax/base_table_name'] = array(
-    // 'title' => 'Get Chado Tables',
-    // 'page callback' => 'tripal_views_setup_ajax_db_chado_tables',
-    // 'access arguments' => array('access administration pages'),
-    // 'type' => MENU_CALLBACK,
-  // );
-
   return $items;
 }