Browse Source

Tripal Views: Updates to integration edit form to make it work with Drupal 7. Ajax for the join fields still not working.

Lacey Sanderson 11 years ago
parent
commit
e6289bd103

+ 33 - 19
tripal_views/includes/tripal_views_integration.inc

@@ -54,7 +54,7 @@ function tripal_views_integration_setup_list() {
   }
 
   if ($rows) {
-    $output .= theme('table', $header, $rows);
+    $output .= theme('table', array('header' => $header, 'rows' => $rows));
   }
   else {
     $output .= '<p>There are currently no Materialized Views defined. ';
@@ -87,7 +87,7 @@ function tripal_views_integration_setup_list() {
   }
 
   if ($rows) {
-    $output .= theme('table', $header, $rows);
+    $output .= theme('table', array('header' => $header, 'rows' => $rows));
   }
   else {
     $output .= '<p>There are currently no non-Materialized View Custom Tables defined.</p>';
@@ -117,7 +117,7 @@ function tripal_views_integration_setup_list() {
     );
   }
 
-  $output .= theme('table', $header, $rows);
+  $output .= theme('table', array('header' => $header, 'rows' => $rows));
   return $output;
 }
 
@@ -156,11 +156,12 @@ function tripal_views_integration_delete($setup_id) {
  *
  * @ingroup tripal_views_integration
  */
-function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
+function tripal_views_integration_form($form, $form_state) {
 
   $form = array();
   $data = array();
   $form['#cache'] = TRUE;
+  $setup_id = $form_state['build_info']['args'][0];
 
   // initialize Tripal AHAH
   tripal_core_ahah_init_form();
@@ -367,7 +368,6 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
     $table_name = $form_state['values']['table_name'];
     $form['view_setup_table'] = array(
       '#type' => 'fieldset',
-      '#title' => 'Join Selection',
       '#prefix' => '<div id="fieldset-table-rows-wrapper">',
       '#suffix' => '</div>',
     );
@@ -463,10 +463,10 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
 
       // COLUMN I
       $form['view_setup_table']["$table_id-$i"]["fields_name_$table_id-$i"] = array(
-        '#type' => 'markup',
+        '#type' => 'item',
         '#prefix' => "<div class=\"column-one\">",
-        '#value' => "<span class=\"column-name\">" . filter_xss($column_name) . "</span>".
-                    "<br /><span class=\"column-type\">" . filter_xss($column_type) . "</span>",
+        '#value' => '<span class="column-name">' . filter_xss($column_name) . '</span>'.
+                    '<br /><span class="column-type">' . filter_xss($column_type) . '</span>',
         '#suffix' => "</div>",
       );
       $data['field_types'][$column_name] = $column_type;
@@ -520,15 +520,19 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
       // set the default values for the join table and columns
       $default_join_table = 0;
       $default_join_field = 0;
-      if (isset($setup_id) && !isset($form_state['values']["fields_join_$table_id-$i"])) {
+      if (isset($setup_id) && !isset($form_state['values']["fields_join_$table_id-$i"]) && isset($default_joins[$column_name])) {
         $default_join_table = $default_joins[$column_name]['left_table'];
         $default_join_field = $default_joins[$column_name]['left_field'];
         $form_state['values']["fields_join_$table_id-$i"] = $default_join_table;
         $form_state['values']["fields_join_column_$table_id-$i"] = $default_join_field;
       }
-      else{
-        $default_join_table = $form_state['values']["fields_join_$table_id-$i"];
-        $default_join_field = $form_state['values']["fields_join_column_$table_id-$i"];
+      else {
+        if (isset($form_state['values']["fields_join_$table_id-$i"])) {
+          $default_join_table = $form_state['values']["fields_join_$table_id-$i"];
+        }
+        if (isset($form_state['values']["fields_join_column_$table_id-$i"])) {
+          $default_join_field = $form_state['values']["fields_join_column_$table_id-$i"];
+        }
       }
 
       $form['view_setup_table']["$table_id-$i"]['column-3']["fields_join_$table_id-$i"] = array(
@@ -570,11 +574,11 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
       );
 
       $default_join_handler = 0;
-      if (isset($setup_id) && !isset($form_state['values']["fields_join_handler_$table_id-$i"])) {
+      if (isset($setup_id) && !isset($form_state['values']["fields_join_handler_$table_id-$i"]) && isset($default_handlers[$column_name]['join'])) {
         $default_join_handler = $default_handlers[$column_name]['join']['handler_name'];
         $form_state['values']["fields_join_handler_$table_id-$i"] = $default_join_handler;
       }
-      else {
+      elseif (isset($form_state['values']["fields_join_handler_$table_id-$i"])) {
         $default_join_handler = $form_state['values']["fields_join_handler_$table_id-$i"];
       }
       $form['view_setup_table']["$table_id-$i"]['column-3']["fields_join_handler_$table_id-$i"] = array(
@@ -699,12 +703,17 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
       );
 
       $default_argument_handler = 0;
-      if (isset($setup_id) && !isset($form_state['values']["fields_argument_handler_$table_id-$i"])) {
+      if (isset($setup_id)
+        && !isset($form_state['values']["fields_argument_handler_$table_id-$i"])
+        && isset($default_handlers[$column_name]['argument']))
+      {
         $default_argument_handler = $default_handlers[$column_name]['argument']['handler_name'];
         $form_state['values']["fields_argument_handler_$table_id-$i"]=$default_argument_handler ;
       }
       else {
-        $default_argument_handler = $form_state['values']["fields_argument_handler_$table_id-$i"];
+        if (isset($form_state['values']["fields_argument_handler_$table_id-$i"])) {
+          $default_argument_handler = $form_state['values']["fields_argument_handler_$table_id-$i"];
+        }
         if (!$default_argument_handler) {
           if ($column_type == 'integer' or $column_type == 'int' or $column_type == 'serial') {
             $default_argument_handler = 'views_handler_argument_numeric';
@@ -733,12 +742,17 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL) {
       );
 
       $default_relationship_handler = 0;
-      if (isset($setup_id) && !isset($form_state['values']["fields_relationship_handler_$table_id-$i"])) {
+      if (isset($setup_id)
+        && !isset($form_state['values']["fields_relationship_handler_$table_id-$i"])
+        && isset($default_handlers[$column_name]['relationship']))
+      {
         $default_relationship_handler = $default_handlers[$column_name]['relationship']['handler_name'];
         $form_state['values']["fields_relationship_handler_$table_id-$i"]=$default_relationship_handler;
       }
       else {
-        $default_relationship_handler = $form_state['values']["fields_relationship_handler_$table_id-$i"];
+        if (isset($form_state['values']["fields_relationship_handler_$table_id-$i"])) {
+          $default_relationship_handler = $form_state['values']["fields_relationship_handler_$table_id-$i"];
+        }
         if (!$default_relationship_handler) {
           if ($column_type == 'integer' or $column_type == 'int' or $column_type == 'serial') {
             $default_relationship_handler = 'views_handler_relationship';
@@ -1107,7 +1121,7 @@ function tripal_views_integration_ajax_view_setup_table() {
   );
 }
 /*
- *
+ * Used to pass in aquisition_id-1 and fields_join_column_aquisition_id-1
  */
 function tripal_views_integration_ajax_join_field($field, $join_field) {
   // prepare and render the form

+ 14 - 12
tripal_views/tripal_views.module

@@ -26,7 +26,7 @@ function tripal_views_menu() {
 
   $items['admin/tripal/views'] = array(
     'title' => 'Views Integration',
-    'description' => 'Integration with Drupal Views',
+    'description' => 'Integration of all the chado tables and fields with Drupal Views.',
     'page callback' => 'theme',
     'page arguments' => array('tripal_views_admin'),
     'access arguments' => array('manage tripal_views_integration'),
@@ -148,7 +148,7 @@ function tripal_views_permission() {
  */
 function tripal_views_views_api() {
   return array(
-    'api' => 2.0,
+    'api' => 3.0,
   );
 }
 
@@ -160,26 +160,26 @@ function tripal_views_views_api() {
  *
  * @ingroup tripal_views
  */
-function tripal_views_theme() {
+function tripal_views_theme($existing, $type, $theme, $path) {
   return array(
     'tripal_views_integration_form' => array(
-      'arguments' => array('form' => NULL),
       'template'  => 'tripal_views_integration_fields_form',
+      'render element'=> 'form',
     ),
     'tripal_views_data_export_download_form' => array(
-      'arguments' => array('form' => NULL),
+      'render element'=> 'form',
       'template'  => 'tripal_views_data_export_download_form',
     ),
     'file_upload_combo' => array(
-      'arguments' => array('element' => NULL)
+      'variables' => array('element' => NULL)
     ),
     'sequence_combo' => array(
-      'arguments' => array('element' => NULL)
+      'variables' => array('element' => NULL)
     ),
-    // instructions page for the pub module
+    // instructions page for the views module
     'tripal_views_admin' => array(
       'template' => 'tripal_views_admin',
-      'arguments' =>  array(NULL),
+      'variables' =>  array(NULL),
       'path' => drupal_get_path('module', 'tripal_views') . '/theme'
     ),
   );
@@ -219,16 +219,18 @@ function tripal_views_biological_data_page() {
 /*
  *
  */
-function tripal_views_form_alter(&$form, &$form_state, $form_id) {
+function tripal_views_form_alter($form, $form_state, $form_id) {
   if ($form_id == "tripal_views_integration_form") {
     // updating the form through the ahah callback sets the action of
     // the form to the ahah callback URL. We need to set it back
     // to the normal form URL
-    if ($form_state['values']['setup_id']) {
-      $form['#action'] = url("admin/tripal/views/integration/edit/" . $form_state['values']['setup_id']);
+    /**
+    if (isset($form_state['input']['setup_id'])) {
+      $form['#action'] = url("admin/tripal/views/integration/edit/" . $form_state['input']['setup_id']);
     }
     else {
       $form['#action'] = url("admin/tripal/views/integration/new");
     }
+    */
   }
 }

+ 1 - 3
tripal_views/tripal_views_integration_fields_form.tpl.php

@@ -61,7 +61,5 @@
 
 </style>
 
-<?php print drupal_render($form); ?>
-
-<!-- END -->
+<?php print drupal_render_children($form); ?>