Browse Source

API now uses priority, tripal_views_join.handler and tripal_views_field

Lacey Sanderson 13 years ago
parent
commit
770b79c3ec
1 changed files with 16 additions and 5 deletions
  1. 16 5
      base/tripal_views/tripal_views.api.inc

+ 16 - 5
base/tripal_views/tripal_views.api.inc

@@ -21,7 +21,7 @@
       'feature_id' => array(
         'name' => 'feature_id', //field name in database
         'title' => 'Feature ID', //human-readable name -seen in Views UI
-        'help' => 'This is the unique identifier for features', //help/description seen in Views UI
+        'description' => 'This is the unique identifier for features', //help/description seen in Views UI
         'type' => 'int', // the type of field
         'handlers' => array(  //possible keys are field, filter, sort, argument, relationship
           'field' => array(
@@ -48,6 +48,7 @@ function tripal_core_views_integration_add_entry($defn_array) {
   $view_record = array(
     'name' => $defn_array['name'],
     'comment' => $defn_array['description'],
+    'priority' => $defn_array['priority'],
   );
   switch($defn_array['type']) {
     case 'chado':
@@ -66,11 +67,13 @@ function tripal_core_views_integration_add_entry($defn_array) {
     // Insert Field Definitions
     foreach ($defn_array['fields'] as $field) {
       $field_record = array(
+      	'setup_id' => $view_record['setup_id'],
         'column_name' => $field['name'],
-        'title' => $field['title'],
-        'help' => $field['help'],
+        'name' => $field['title'],
+        'description' => $field['description'],
+        'type' => $field['type'],
       );
-      //$status = drupal_write_record('tripal_views_fields',$field_record);
+      $status = drupal_write_record('tripal_views_field',$field_record);
       
       if ($status) {
       
@@ -98,8 +101,15 @@ function tripal_core_views_integration_add_entry($defn_array) {
             'base_table' => $defn_array['table'],
             'base_field' => $field['name'],
             'left_table' => $join['table'],
-            'left_field' => $join['field']
+            'left_field' => $join['field'],
           );
+
+          if (!empty($join['handler'])) {
+          	$join_record['handler'] = $join['handler'];
+          } else {
+          	$join_record['handler'] = 'views_join';
+          }
+
           $status = drupal_write_record('tripal_views_join',$join_record);
           if (!$status) {
             drupal_set_message('Unable to join '.$join['table'].'.'.$join['field'].' with '.$defn_array['table'].'.'.$field['name'], 'error');
@@ -129,6 +139,7 @@ function tripal_core_views_integration_remove_entry($tablename, $priority) {
   $views = db_fetch_object(db_query("SELECT * FROM {tripal_views} WHERE table_name='%s'",$tablename));
   if ($views->setup_id) {
     db_query('DELETE FROM {tripal_views} WHERE setup_id=%d',$views->setup_id);
+    db_query('DELETE FROM {tripal_views_field} WHERE setup_id=%d',$views->setup_id);
     db_query('DELETE FROM {tripal_views_handlers} WHERE setup_id=%d',$views->setup_id);
     db_query('DELETE FROM {tripal_views_join} WHERE setup_id=%d',$views->setup_id);
   }