Explorar el Código

fixed merge conflict

Stephen Ficklin hace 11 años
padre
commit
0a99861330

+ 1 - 0
tripal_bulk_loader/includes/tripal_bulk_loader.admin.templates.inc

@@ -18,6 +18,7 @@
  * @ingroup tripal_bulk_loader
  */
 function tripal_bulk_loader_modify_template_base_form($form, &$form_state = NULL, $mode) {
+
   // set the breadcrumb
   $breadcrumb = array();
   $breadcrumb[] = l('Home', '<front>');

+ 0 - 3
tripal_bulk_loader/includes/tripal_bulk_loader.loader.inc

@@ -918,9 +918,6 @@ function tripal_bulk_loader_add_foreignkey_to_values($table_array, $values, $dat
           array_key_exists($field, $tbl_description['foreign keys'][$foreign_table]['columns']) and
           $foreign_field == $tbl_description['foreign keys'][$foreign_table]['columns'][$field]) {
 
-        if (sizeof($foreign_values) == 1 && isset($foreign_values->currval)) {
-          $foreign_values = $foreign_values->currval;
-        }
         $values[$field] = $foreign_values;
       }
       // if the field in the Referral records is not in an FK relationship

+ 86 - 62
tripal_db/includes/tripal_db.admin.inc

@@ -1,48 +1,72 @@
 <?php
+
 /**
  *
- *
- * @ingroup tripal_db
  */
-function tripal_db_admin_page() {
-  $add_url = url("admin/tripal/tripal_db/add_db");
-  $output = "<a href=\"$add_url\">Add a new external database</a>";
-  $output .= drupal_get_form('tripal_db_select_form');
-  $output .= '<div id="db-edit-div">Please select a database above to view or edit</div>';
+function tripal_db_admin_db_listing() {
+  $output = '';
+
+  // set the breadcrumb
+  $breadcrumb = array();
+  $breadcrumb[] = l('Home', '<front>');
+  $breadcrumb[] = l('Administration', 'admin');
+  $breadcrumb[] = l('Tripal', 'admin/tripal');
+  $breadcrumb[] = l('Chado Modules', 'admin/tripal/chado');
+  $breadcrumb[] = l('Databases', 'admin/tripal/chado/tripal_db');
+  drupal_set_breadcrumb($breadcrumb);
+
+  // Add the view
+  $dbs_view = views_embed_view('db_admin','default');
+  $dbxrefs_view = views_embed_view('db_reference_admin','default');
+  if (isset($dbs_view) && isset($dbxrefs_view)) {
+    $output .= $dbs_view;
+  }
+  else {
+    $output .= '<p>The Tripal DB Module uses primarily views to provide an '
+      . 'administrative interface. Currently one or more views needed for this '
+      . 'administrative interface are disabled. <strong>Click each of the following links to '
+      . 'enable the pertinent views</strong>:</p>';
+    $output .= '<ul>';
+    if (!isset($dbs_view)) {
+      $output .= '<li>'.l('DB Admin', 'admin/tripal/chado/tripal_db/views/dbs/enable').'</li>';
+    }
+    if (!isset($dbxrefs_view)) {
+      $output .= '<li>'.l('DB Reference Admin', 'admin/tripal/chado/tripal_db/views/dbxrefs/enable').'</li>';
+    }
+    $output .= '</ul>';
+  }
+
   return $output;
 }
-/**
- * 
- */
-function tripal_db_select_form() {
-  return $form;
-}
 
 /**
- * 
+ *
  * @param $form
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_db_edit_form($form, &$form_state) {
-  
+
   // get the dbid if form was submitted via AJAX
   $dbid = 0;
   if (array_key_exists('values', $form_state)) {
     $dbid = $form_state['values']['dbid'];
-  }  
-  
+  }
+  elseif (isset($form_state['build_info']['args'][0])) {
+    $dbid = $form_state['build_info']['args'][0];
+  }
+
   // get a list of db from chado for user to choose
   $sql = "SELECT * FROM {db} WHERE NOT name = 'tripal' ORDER BY name ";
   $results = chado_query($sql);
-  
+
   $dbs = array();
   $dbs[] = 'Select a database';
   foreach ($results as $db) {
     $dbs[$db->db_id] = $db->name;
   }
-  
+
   $form['dbid'] = array(
     '#title' => t('External Database Name'),
     '#type' => 'select',
@@ -54,15 +78,15 @@ function tripal_db_db_edit_form($form, &$form_state) {
       'event'    => 'change',
       'method'   => 'replace',
     ),
-    '#default_value' => $dbid,    
+    '#default_value' => $dbid,
   );
-  
-      
+
+
   // if we don't have a db_id then we can  return the form, otherwise
   // add in the other fields
   if ($dbid) {
     tripal_db_add_db_form_fields($form, $form_state, $dbid);
-        
+
     $form['update'] = array(
       '#type'         => 'submit',
       '#value'        => t('Update'),
@@ -70,7 +94,7 @@ function tripal_db_db_edit_form($form, &$form_state) {
     $form['delete'] = array(
       '#type'         => 'submit',
       '#value'        => t('Delete'),
-      '#attributes'   => array('onclick' => 'if(!confirm("Really Delete?")){return false;}'), 
+      '#attributes'   => array('onclick' => 'if(!confirm("Really Delete?")){return false;}'),
     );
   }
   else {
@@ -85,17 +109,17 @@ function tripal_db_db_edit_form($form, &$form_state) {
   return $form;
 }
 /**
- * 
+ *
  * @param $form
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_db_add_form($form, $form_state) {
-  
+
   // add in the form fields to this form
   tripal_db_add_db_form_fields($form, $form_state);
-  
+
   $form['add'] = array(
     '#type'         => 'submit',
     '#value'        => t('Add'),
@@ -104,38 +128,38 @@ function tripal_db_db_add_form($form, $form_state) {
   return $form;
 }
 /**
- * 
+ *
  * @param $form
  * @param $form_state
  * @param $dbid
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_add_db_form_fields(&$form, $form_state, $dbid = NULL) {
-  
+
   $default_db        = '';
   $default_desc      = '';
   $default_url       = '';
   $default_urlprefix = '';
-        
-  // get the default values from the database first  
+
+  // get the default values from the database first
   if ($dbid) {
     $values = array('db_id' => $dbid);
     $result = tripal_core_chado_select('db', array('*'), $values);
-    $db = $result[0]; 
+    $db = $result[0];
     $default_db = $db->name;
     $default_desc = $db->description;
     $default_url = $db->url;
-    $default_urlprefix = $db->urlprefix;   
-  }   
-    
+    $default_urlprefix = $db->urlprefix;
+  }
+
   // add a fieldset for the Drupal Schema API
   $form['fields'] = array(
     '#type' => 'fieldset',
     '#title' => 'Database Details',
     '#collapsible' => 0,
-  );    
-  
+  );
+
   $form['fields']['name']= array(
     '#type'          => 'textfield',
     '#title'         => t("Database Name"),
@@ -173,48 +197,48 @@ function tripal_db_add_db_form_fields(&$form, $form_state, $dbid = NULL) {
  * Validation fucntion for tripal_db_db_add_form
  * @param $form
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_db_add_form_validate($form, &$form_state) {
-  tripal_db_form_fields_validate($form, $form_state); 
+  tripal_db_form_fields_validate($form, $form_state);
 }
 /**
  * Validation fucntion for tripal_db_db_edit_form
  * @param unknown_type $form
  * @param unknown_type $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_db_edit_form_validate($form, &$form_state) {
-  tripal_db_form_fields_validate($form, $form_state); 
+  tripal_db_form_fields_validate($form, $form_state);
 }
 /**
  * Genetic validation form for shared fields of both the edit and add forms
  * @param $form
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_form_fields_validate($form, &$form_state) {
   $name =  array_key_exists('name', $form_state['values'])        ? trim($form_state['values']['name']) : '';
   $desc =  array_key_exists('description', $form_state['values']) ? trim($form_state['values']['description']) : '';
   $url  =  array_key_exists('url', $form_state['values'])         ? trim($form_state['values']['url']) : '';
-  $urlp =  array_key_exists('urlprefix', $form_state['values'])   ? trim($form_state['values']['urlprefix']) : '';  
+  $urlp =  array_key_exists('urlprefix', $form_state['values'])   ? trim($form_state['values']['urlprefix']) : '';
   $dbid =  array_key_exists('dbid', $form_state['values'])        ? trim($form_state['values']['dbid']) : '';
- 
+
   // make sure the database name is unique
   $values = array('name' => $name);
-  $results = tripal_core_chado_select('db', array('db_id'), $values);   
+  $results = tripal_core_chado_select('db', array('db_id'), $values);
   if (count($results) > 0 and $results[0]->db_id != $dbid) {
     form_set_error('name', 'The database name must be unique');
   }
 }
 /**
- * 
+ *
  * @param $form
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_db_add_form_submit($form, &$form_state) {
@@ -222,7 +246,7 @@ function tripal_db_db_add_form_submit($form, &$form_state) {
   $name =  array_key_exists('name', $form_state['values'])        ? trim($form_state['values']['name']) : '';
   $desc =  array_key_exists('description', $form_state['values']) ? trim($form_state['values']['description']) : '';
   $url  =  array_key_exists('url', $form_state['values'])         ? trim($form_state['values']['url']) : '';
-  $urlp =  array_key_exists('urlprefix', $form_state['values'])   ? trim($form_state['values']['urlprefix']) : '';  
+  $urlp =  array_key_exists('urlprefix', $form_state['values'])   ? trim($form_state['values']['urlprefix']) : '';
 
   $values = array(
     'name' => $name,
@@ -240,10 +264,10 @@ function tripal_db_db_add_form_submit($form, &$form_state) {
 }
 
 /**
- * 
+ *
  * @param $form
  * @param $form_state
- * 
+ *
  * @ingroup tripal_db
  */
 function tripal_db_db_edit_form_submit($form, &$form_state) {
@@ -251,7 +275,7 @@ function tripal_db_db_edit_form_submit($form, &$form_state) {
   $name =  array_key_exists('name', $form_state['values'])        ? trim($form_state['values']['name']) : '';
   $desc =  array_key_exists('description', $form_state['values']) ? trim($form_state['values']['description']) : '';
   $url  =  array_key_exists('url', $form_state['values'])         ? trim($form_state['values']['url']) : '';
-  $urlp =  array_key_exists('urlprefix', $form_state['values'])   ? trim($form_state['values']['urlprefix']) : '';  
+  $urlp =  array_key_exists('urlprefix', $form_state['values'])   ? trim($form_state['values']['urlprefix']) : '';
   $dbid =  array_key_exists('dbid', $form_state['values'])        ? trim($form_state['values']['dbid']) : '';
   $op   =  trim($form_state['values']['op']);
 
@@ -262,7 +286,7 @@ function tripal_db_db_edit_form_submit($form, &$form_state) {
     'urlprefix' => $urlp,
   );
 
-  if (strcmp($op, 'Update')==0) {      
+  if (strcmp($op, 'Update')==0) {
     $match = array('db_id' => $dbid);
     $success = tripal_core_chado_update('db', $match, $values);
     if ($success) {
@@ -288,27 +312,27 @@ function tripal_db_db_edit_form_submit($form, &$form_state) {
  * @ingroup tripal_db
  */
 function tripal_db_edit_form_ajax($form, $form_state) {
-  
+
   $elements = array();
-  
-  // add in the form fields and the buttons  
+
+  // add in the form fields and the buttons
   if (array_key_exists('dbid', $form_state['values'])) {
     $elements['fields'] = $form['fields'];
     $elements['update'] = $form['update'];
     $elements['delete'] = $form['delete'];
   }
-  
+
    // add back in the db-edit-div that is used for the next round of AJAX
   $elements['fields']['#prefix'] =  '<div id="db-edit-div">';
   $elements['fields']['#suffix'] =  '</div">';
-  
+
   // reset the values for the fields to the defaults
   $elements['fields']['name']['#value']        = $elements['fields']['name']['#default_value'];
   $elements['fields']['description']['#value'] = $elements['fields']['description']['#default_value'];
   $elements['fields']['url']['#value']         = $elements['fields']['url']['#default_value'];
   $elements['fields']['urlprefix']['#value']   = $elements['fields']['urlprefix']['#default_value'];
-  
+
   //drupal_set_message('<pre>' . print_r($elements, TRUE) . '</pre>', "status");
-  
+
   return $elements;
 }

+ 6 - 5
tripal_db/tripal_db.module

@@ -28,6 +28,7 @@ function tripal_db_menu() {
   $items['admin/tripal/chado/tripal_db'] = array(
     'title' => 'Databases',
     'description' => 'References to External Database sites such as NCBI',
+    'page callback' => 'tripal_db_admin_db_listing',
     'access arguments' => array('administer db cross-references'),
     'type' => MENU_NORMAL_ITEM,
   );
@@ -38,18 +39,18 @@ function tripal_db_menu() {
     'page callback' => 'theme',
     'page arguments' => array('tripal_db_help'),
     'access arguments' => array('administer db cross-references'),
-    'type' => MENU_NORMAL_ITEM,
+    'type' => MENU_LOCAL_TASK,
     'weight' => 10
   );
 
-  $items['admin/tripal/chado/tripal_db/edit'] = array(
+  $items['admin/tripal/chado/tripal_db/edit/%'] = array(
     'title' => 'Edit a Database Reference',
     'description' => 'Edit existing Database References.',
     'page callback' => 'drupal_get_form',
-    'page arguments' => array('tripal_db_db_edit_form'),
+    'page arguments' => array('tripal_db_db_edit_form',5),
     'access callback' => 'user_access',
     'access arguments' => array('administer db cross-references'),
-    'type' => MENU_NORMAL_ITEM,
+    'type' => MENU_CALLBACK,
   );
 
   $items['admin/tripal/chado/tripal_db/add'] = array(
@@ -59,7 +60,7 @@ function tripal_db_menu() {
     'page arguments' => array('tripal_db_db_add_form'),
     'access callback' => 'user_access',
     'access arguments' => array('administer db cross-references'),
-    'type' => MENU_NORMAL_ITEM,
+    'type' => MENU_CALLBACK,
   );
 
 

+ 0 - 602
tripal_db/tripal_db.views.inc

@@ -14,605 +14,3 @@
  * @defgroup tripal_db_views External Database Views Integration
  * @ingroup views
  */
-
-
-/**
- *
- * @ingroup tripal_db_views
- */
-function tripal_db_views_default_views() {
-  $views = array();
-
-  if (!module_exists('tripal_views')) {
-    return $views;
-  }
-
-  // Main DB default view
-  $view = new view;
-  $view->name = 'db_listing';
-  $view->description = 'A listing of all databases.';
-  $view->tag = 'chado default';
-  $view->base_table = 'db';
-  $view->core = 6;
-  $view->api_version = '2';
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-  $handler = $view->new_display('default', 'Defaults', 'default');
-  $handler->override_option('fields', array(
-    'name' => array(
-      'label' => 'Name',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'absolute' => 0,
-        'link_class' => '',
-        'alt' => '',
-        'rel' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'hide_alter_empty' => 1,
-      'type' => 'separator',
-      'separator' => ', ',
-      'exclude' => 0,
-      'id' => 'name',
-      'table' => 'db',
-      'field' => 'name',
-      'relationship' => 'none',
-    ),
-    'description' => array(
-      'label' => 'Description',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'absolute' => 0,
-        'link_class' => '',
-        'alt' => '',
-        'rel' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'hide_alter_empty' => 1,
-      'type' => 'separator',
-      'separator' => ', ',
-      'exclude' => 0,
-      'id' => 'description',
-      'table' => 'db',
-      'field' => 'description',
-      'relationship' => 'none',
-    ),
-    'url' => array(
-      'label' => 'Url',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 1,
-        'path' => '[url]',
-        'absolute' => 1,
-        'link_class' => '',
-        'alt' => '',
-        'rel' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '_blank',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'hide_alter_empty' => 1,
-      'type' => 'separator',
-      'separator' => ', ',
-      'exclude' => 0,
-      'id' => 'url',
-      'table' => 'db',
-      'field' => 'url',
-      'relationship' => 'none',
-    ),
-    'urlprefix' => array(
-      'label' => 'Urlprefix',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'absolute' => 0,
-        'link_class' => '',
-        'alt' => '',
-        'rel' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'hide_alter_empty' => 1,
-      'type' => 'separator',
-      'separator' => ', ',
-      'exclude' => 0,
-      'id' => 'urlprefix',
-      'table' => 'db',
-      'field' => 'urlprefix',
-      'relationship' => 'none',
-    ),
-  ));
-  $handler->override_option('filters', array(
-    'name' => array(
-      'operator' => '~',
-      'value' => '',
-      'group' => '0',
-      'exposed' => TRUE,
-      'expose' => array(
-        'use_operator' => 0,
-        'operator' => 'name_op',
-        'identifier' => 'name',
-        'label' => 'Name Contains',
-        'remember' => 0,
-      ),
-      'case' => 0,
-      'id' => 'name',
-      'table' => 'db',
-      'field' => 'name',
-      'relationship' => 'none',
-      'values_form_type' => 'textfield',
-      'multiple' => 0,
-      'optional' => 0,
-      'agg' => array(
-        'records_with' => 1,
-        'aggregates_with' => 0,
-      ),
-    ),
-    'description' => array(
-      'operator' => '~',
-      'value' => '',
-      'group' => '0',
-      'exposed' => TRUE,
-      'expose' => array(
-        'use_operator' => 0,
-        'operator' => 'description_op',
-        'identifier' => 'description',
-        'label' => 'Description Contains',
-        'remember' => 0,
-      ),
-      'case' => 0,
-      'id' => 'description',
-      'table' => 'db',
-      'field' => 'description',
-      'relationship' => 'none',
-      'agg' => array(
-        'records_with' => 1,
-        'aggregates_with' => 0,
-      ),
-    ),
-    'search_results' => array(
-      'operator' => '=',
-      'value' => '',
-      'group' => '0',
-      'exposed' => FALSE,
-      'expose' => array(
-        'operator' => FALSE,
-        'label' => '',
-      ),
-      'id' => 'search_results',
-      'table' => 'views',
-      'field' => 'search_results',
-      'relationship' => 'none',
-      'apply_button' => 'Show',
-      'no_results_text' => 'Click "Show" to see a list of all databases matching the entered criteria. If you leave a any of the criteria blank then the databases will be not be filtered based on that field. Furthermore, if you leave all criteria blank then all databases will be listed.',
-    ),
-  ));
-  $handler->override_option('access', array(
-    'type' => 'perm',
-    'perm' => 'access chado_db content',
-  ));
-  $handler->override_option('cache', array(
-    'type' => 'none',
-  ));
-  $handler->override_option('title', 'Databases');
-  $handler->override_option('header', 'Click "Show" to see a list of all databases matching the entered criteria. If you leave a any of the criteria blank then the databases will be not be filtered based on that field. Furthermore, if you leave all criteria blank then all databases will be listed.');
-  $handler->override_option('header_format', '2');
-  $handler->override_option('header_empty', 0);
-  $handler->override_option('empty', 'No databases match the supplied criteria.');
-  $handler->override_option('empty_format', '2');
-  $handler->override_option('items_per_page', 50);
-  $handler->override_option('use_pager', '1');
-  $handler->override_option('style_plugin', 'table');
-  $handler->override_option('style_options', array(
-    'grouping' => '',
-    'override' => 1,
-    'sticky' => 0,
-    'order' => 'asc',
-    'summary' => '',
-    'columns' => array(
-      'name' => 'name',
-      'url' => 'url',
-      'urlprefix' => 'urlprefix',
-      'description' => 'description',
-    ),
-    'info' => array(
-      'name' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'url' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'urlprefix' => array(
-        'sortable' => 0,
-        'separator' => '',
-      ),
-      'description' => array(
-        'sortable' => 0,
-        'separator' => '',
-      ),
-    ),
-    'default' => 'name',
-  ));
-  $handler = $view->new_display('page', 'Page', 'page_1');
-  $handler->override_option('path', 'admin/tripal/tripal_db/list_dbs');
-  $handler->override_option('menu', array(
-    'type' => 'normal',
-    'title' => 'DB Listing',
-    'description' => 'Lists all databases available to create database references for.',
-    'weight' => '10',
-    'name' => 'navigation',
-  ));
-  $handler->override_option('tab_options', array(
-    'type' => 'none',
-    'title' => '',
-    'description' => '',
-    'weight' => 0,
-    'name' => 'navigation',
-  ));
-  $views[$view->name] = $view;
-
-  // Main dbxref default view
-  $view = new view;
-  $view->name = 'dbxref_listing';
-  $view->description = 'A listing of all database references filtered by database';
-  $view->tag = 'chado default';
-  $view->base_table = 'dbxref';
-  $view->core = 0;
-  $view->api_version = '2';
-  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
-  $handler = $view->new_display('default', 'Defaults', 'default');
-  $handler->override_option('fields', array(
-    'name' => array(
-      'label' => 'Database',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'exclude' => 0,
-      'id' => 'name',
-      'table' => 'db',
-      'field' => 'name',
-      'relationship' => 'none',
-    ),
-    'accession' => array(
-      'label' => 'Accession',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'exclude' => 0,
-      'id' => 'accession',
-      'table' => 'dbxref',
-      'field' => 'accession',
-      'relationship' => 'none',
-    ),
-    'description' => array(
-      'label' => 'Description',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'exclude' => 0,
-      'id' => 'description',
-      'table' => 'dbxref',
-      'field' => 'description',
-      'relationship' => 'none',
-    ),
-    'version' => array(
-      'label' => 'Version',
-      'alter' => array(
-        'alter_text' => 0,
-        'text' => '',
-        'make_link' => 0,
-        'path' => '',
-        'link_class' => '',
-        'alt' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 0,
-      'empty_zero' => 0,
-      'exclude' => 0,
-      'id' => 'version',
-      'table' => 'dbxref',
-      'field' => 'version',
-      'relationship' => 'none',
-    ),
-    'urlprefix' => array(
-      'label' => 'External Link',
-      'alter' => array(
-        'alter_text' => 1,
-        'text' => '[name]:[accession]',
-        'make_link' => 1,
-        'path' => '[urlprefix][accession]',
-        'absolute' => 1,
-        'link_class' => '',
-        'alt' => '',
-        'rel' => '',
-        'prefix' => '',
-        'suffix' => '',
-        'target' => '_blank',
-        'help' => '',
-        'trim' => 0,
-        'max_length' => '',
-        'word_boundary' => 1,
-        'ellipsis' => 1,
-        'html' => 0,
-        'strip_tags' => 0,
-      ),
-      'empty' => '',
-      'hide_empty' => 1,
-      'empty_zero' => 0,
-      'hide_alter_empty' => 1,
-      'type' => 'separator',
-      'separator' => ', ',
-      'exclude' => 0,
-      'id' => 'urlprefix',
-      'table' => 'db',
-      'field' => 'urlprefix',
-      'relationship' => 'none',
-    ),
-  ));
-  $handler->override_option('sorts', array(
-    'name' => array(
-      'order' => 'ASC',
-      'id' => 'name',
-      'table' => 'db',
-      'field' => 'name',
-      'relationship' => 'none',
-    ),
-    'accession' => array(
-      'order' => 'ASC',
-      'id' => 'accession',
-      'table' => 'dbxref',
-      'field' => 'accession',
-      'relationship' => 'none',
-    ),
-  ));
-  $handler->override_option('filters', array(
-    'name' => array(
-      'operator' => '=',
-      'value' => array(),
-      'group' => '0',
-      'exposed' => TRUE,
-      'expose' => array(
-        'use_operator' => 0,
-        'operator' => 'name_op',
-        'identifier' => 'db',
-        'label' => 'Database',
-        'remember' => 0,
-      ),
-      'case' => 1,
-      'id' => 'name',
-      'table' => 'db',
-      'field' => 'name',
-      'relationship' => 'none',
-      'values_form_type' => 'select',
-      'multiple' => 1,
-      'optional' => 0,
-      'agg' => array(
-        'records_with' => 1,
-        'aggregates_with' => 1,
-      ),
-    ),
-    'accession' => array(
-      'operator' => '~',
-      'value' => '',
-      'group' => '0',
-      'exposed' => TRUE,
-      'expose' => array(
-        'use_operator' => 0,
-        'operator' => 'accession_op',
-        'identifier' => 'accession',
-        'label' => 'Accession Contains',
-        'remember' => 0,
-      ),
-      'case' => 0,
-      'id' => 'accession',
-      'table' => 'dbxref',
-      'field' => 'accession',
-      'relationship' => 'none',
-      'agg' => array(
-        'records_with' => 1,
-        'aggregates_with' => 1,
-      ),
-    ),
-    'search_results' => array(
-      'operator' => '=',
-      'value' => '',
-      'group' => '0',
-      'exposed' => FALSE,
-      'expose' => array(
-        'operator' => FALSE,
-        'label' => '',
-      ),
-      'id' => 'search_results',
-      'table' => 'views',
-      'field' => 'search_results',
-      'relationship' => 'none',
-      'apply_button' => 'Show',
-      'no_results_text' => 'Click "Show" to see a list of all database references matching the entered criteria. If you leave a any of the criteria blank then the database references will be not be filtered based on that field. Furthermore, if you leave all criteria blank then all database references will be listed.',
-    ),
-  ));
-  $handler->override_option('access', array(
-    'type' => 'perm',
-    'perm' => 'access chado_db content',
-  ));
-  $handler->override_option('cache', array(
-    'type' => 'none',
-  ));
-  $handler->override_option('title', 'Database References');
-  $handler->override_option('header', 'Click "Show" to see a list of all database references matching the entered criteria. If you leave a any of the criteria blank then the database references will be not be filtered based on that field. Furthermore, if you leave all criteria blank then all database references will be listed.');
-  $handler->override_option('header_format', '2');
-  $handler->override_option('header_empty', 0);
-  $handler->override_option('empty', 'There are no database references matching the above criteria. Please select a database in order to display all references to that database.');
-  $handler->override_option('empty_format', '1');
-  $handler->override_option('items_per_page', 50);
-  $handler->override_option('use_pager', '1');
-  $handler->override_option('style_plugin', 'table');
-  $handler->override_option('style_options', array(
-    'grouping' => '',
-    'override' => 1,
-    'sticky' => 0,
-    'order' => 'asc',
-    'columns' => array(
-      'name' => 'name',
-      'accession' => 'accession',
-      'description' => 'description',
-      'version' => 'version',
-    ),
-    'info' => array(
-      'name' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'accession' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'description' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-      'version' => array(
-        'sortable' => 1,
-        'separator' => '',
-      ),
-    ),
-    'default' => '-1',
-  ));
-  $handler = $view->new_display('page', 'Page', 'page_1');
-  $handler->override_option('path', 'admin/tripal/tripal_db/list_dbxrefs');
-  $handler->override_option('menu', array(
-    'type' => 'normal',
-    'title' => 'DB Reference Listing',
-    'description' => 'A listing of all database references associated with a given database',
-    'weight' => '10',
-    'name' => 'navigation',
-  ));
-  $handler->override_option('tab_options', array(
-    'type' => 'none',
-    'title' => '',
-    'description' => '',
-    'weight' => 0,
-    'name' => 'navigation',
-  ));
-  $views[$view->name] = $view;
-
-  return $views;
-}

+ 370 - 0
tripal_db/tripal_db.views_default.inc

@@ -0,0 +1,370 @@
+<?php
+/**
+ * Implements hook_views_default_views()
+ */
+function tripal_db_views_default_views() {
+  $views = array();
+
+  // Default Tripal Admin View: DB
+  $view = tripal_db_defaultview_admin_db_listing();
+  $views[$view->name] = $view;
+
+  // Default Tripal Admin View: DB References
+  $view = tripal_db_defaultview_admin_dbxref_listing();
+  $views[$view->name] = $view;
+
+  return $views;
+}
+
+/**
+ * Default Admin View for db management
+ */
+function tripal_db_defaultview_admin_db_listing() {
+
+  $view = new view();
+  $view->name = 'db_admin';
+  $view->description = 'A listing of all databases.';
+  $view->tag = 'tripal admin';
+  $view->base_table = 'db';
+  $view->human_name = 'DB Admin';
+  $view->core = 6;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Defaults */
+  $handler = $view->new_display('default', 'Defaults', 'default');
+  $handler->display->display_options['title'] = 'Databases';
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'perm';
+  $handler->display->display_options['access']['perm'] = 'access chado_db content';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['pager']['type'] = 'full';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '50';
+  $handler->display->display_options['pager']['options']['offset'] = '0';
+  $handler->display->display_options['pager']['options']['id'] = '0';
+  $handler->display->display_options['pager']['options']['quantity'] = '9';
+  $handler->display->display_options['style_plugin'] = 'table';
+  $handler->display->display_options['style_options']['grouping'] = '';
+  $handler->display->display_options['style_options']['columns'] = array(
+    'name' => 'name',
+    'url' => 'url',
+    'urlprefix' => 'urlprefix',
+    'description' => 'description',
+  );
+  $handler->display->display_options['style_options']['default'] = 'name';
+  $handler->display->display_options['style_options']['info'] = array(
+    'name' => array(
+      'sortable' => 1,
+      'separator' => '',
+    ),
+    'url' => array(
+      'sortable' => 1,
+      'separator' => '',
+    ),
+    'urlprefix' => array(
+      'sortable' => 0,
+      'separator' => '',
+    ),
+    'description' => array(
+      'sortable' => 0,
+      'separator' => '',
+    ),
+  );
+  /* Header: Global: Text area */
+  $handler->display->display_options['header']['text']['id'] = 'text';
+  $handler->display->display_options['header']['text']['table'] = 'views';
+  $handler->display->display_options['header']['text']['field'] = 'area';
+  $handler->display->display_options['header']['text']['label'] = 'Add DB';
+  $handler->display->display_options['header']['text']['content'] = '<ul class="action-links">
+        <li><a href="tripal_db/add">Add Database</a></li>
+    </ul>';
+  $handler->display->display_options['header']['text']['format'] = 'full_html';
+  /* No results behavior: Global: Text area */
+  $handler->display->display_options['empty']['text']['id'] = 'area';
+  $handler->display->display_options['empty']['text']['table'] = 'views';
+  $handler->display->display_options['empty']['text']['field'] = 'area';
+  $handler->display->display_options['empty']['text']['content'] = 'No databases match the supplied criteria.';
+  $handler->display->display_options['empty']['text']['format'] = '2';
+  /* Field: Chado Db: Db Id */
+  $handler->display->display_options['fields']['db_id']['id'] = 'db_id';
+  $handler->display->display_options['fields']['db_id']['table'] = 'db';
+  $handler->display->display_options['fields']['db_id']['field'] = 'db_id';
+  $handler->display->display_options['fields']['db_id']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['db_id']['separator'] = '';
+  /* Field: Chado Db: Name */
+  $handler->display->display_options['fields']['name']['id'] = 'name';
+  $handler->display->display_options['fields']['name']['table'] = 'db';
+  $handler->display->display_options['fields']['name']['field'] = 'name';
+  /* Field: Chado Db: Urlprefix */
+  $handler->display->display_options['fields']['urlprefix']['id'] = 'urlprefix';
+  $handler->display->display_options['fields']['urlprefix']['table'] = 'db';
+  $handler->display->display_options['fields']['urlprefix']['field'] = 'urlprefix';
+  $handler->display->display_options['fields']['urlprefix']['exclude'] = TRUE;
+  /* Field: Chado Db: Url */
+  $handler->display->display_options['fields']['url']['id'] = 'url';
+  $handler->display->display_options['fields']['url']['table'] = 'db';
+  $handler->display->display_options['fields']['url']['field'] = 'url';
+  $handler->display->display_options['fields']['url']['alter']['alter_text'] = TRUE;
+  $handler->display->display_options['fields']['url']['alter']['text'] = '[url]<br />[urlprefix]';
+  $handler->display->display_options['fields']['url']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['url']['alter']['path'] = '[url]';
+  $handler->display->display_options['fields']['url']['alter']['absolute'] = TRUE;
+  $handler->display->display_options['fields']['url']['alter']['target'] = '_blank';
+  /* Field: Chado Db: Description */
+  $handler->display->display_options['fields']['description']['id'] = 'description';
+  $handler->display->display_options['fields']['description']['table'] = 'db';
+  $handler->display->display_options['fields']['description']['field'] = 'description';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing']['id'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing']['label'] = 'Edit Link';
+  $handler->display->display_options['fields']['nothing']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['text'] = 'edit';
+  $handler->display->display_options['fields']['nothing']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing']['alter']['path'] = 'admin/tripal/chado/tripal_db/edit/[db_id]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_1']['id'] = 'nothing_1';
+  $handler->display->display_options['fields']['nothing_1']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_1']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_1']['label'] = 'View DBxrefs';
+  $handler->display->display_options['fields']['nothing_1']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['nothing_1']['alter']['text'] = 'References';
+  $handler->display->display_options['fields']['nothing_1']['alter']['make_link'] = TRUE;
+  $handler->display->display_options['fields']['nothing_1']['alter']['path'] = 'admin/tripal/chado/tripal_db/dbxrefs?db_name=[name]';
+  /* Field: Global: Custom text */
+  $handler->display->display_options['fields']['nothing_2']['id'] = 'nothing_2';
+  $handler->display->display_options['fields']['nothing_2']['table'] = 'views';
+  $handler->display->display_options['fields']['nothing_2']['field'] = 'nothing';
+  $handler->display->display_options['fields']['nothing_2']['label'] = '';
+  $handler->display->display_options['fields']['nothing_2']['alter']['text'] = '[nothing]<br />
+    [nothing_1]';
+  $handler->display->display_options['fields']['nothing_2']['element_label_colon'] = FALSE;
+  /* Filter criterion: Chado Db: Name */
+  $handler->display->display_options['filters']['name']['id'] = 'name';
+  $handler->display->display_options['filters']['name']['table'] = 'db';
+  $handler->display->display_options['filters']['name']['field'] = 'name';
+  $handler->display->display_options['filters']['name']['operator'] = 'contains';
+  $handler->display->display_options['filters']['name']['group'] = '0';
+  $handler->display->display_options['filters']['name']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['name']['expose']['operator_id'] = 'name_op';
+  $handler->display->display_options['filters']['name']['expose']['label'] = 'Name Contains';
+  $handler->display->display_options['filters']['name']['expose']['operator'] = 'name_op';
+  $handler->display->display_options['filters']['name']['expose']['identifier'] = 'name';
+  $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'textfield';
+  $handler->display->display_options['filters']['name']['expose']['select_multiple'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['select_optional'] = FALSE;
+  $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
+  $handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+  /* Filter criterion: Chado Db: Description */
+  $handler->display->display_options['filters']['description']['id'] = 'description';
+  $handler->display->display_options['filters']['description']['table'] = 'db';
+  $handler->display->display_options['filters']['description']['field'] = 'description';
+  $handler->display->display_options['filters']['description']['operator'] = 'contains';
+  $handler->display->display_options['filters']['description']['group'] = '0';
+  $handler->display->display_options['filters']['description']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['description']['expose']['operator_id'] = 'description_op';
+  $handler->display->display_options['filters']['description']['expose']['label'] = 'Description Contains';
+  $handler->display->display_options['filters']['description']['expose']['operator'] = 'description_op';
+  $handler->display->display_options['filters']['description']['expose']['identifier'] = 'description';
+  $handler->display->display_options['filters']['description']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+
+  /* Display: Page */
+  $handler = $view->new_display('page', 'Page', 'page_1');
+  $handler->display->display_options['path'] = 'admin/tripal/chado/tripal_db/dbs';
+  $handler->display->display_options['menu']['type'] = 'default tab';
+  $handler->display->display_options['menu']['title'] = 'Databases';
+  $handler->display->display_options['menu']['description'] = 'Lists all databases available to create database references for.';
+  $handler->display->display_options['menu']['weight'] = '-8';
+  $handler->display->display_options['menu']['name'] = 'management';
+  $handler->display->display_options['menu']['context'] = 0;
+  $handler->display->display_options['menu']['context_only_inline'] = 0;
+  $handler->display->display_options['tab_options']['weight'] = '0';
+
+  return $view;
+}
+
+/**
+ * Default Admin View for dbxref management
+ */
+function tripal_db_defaultview_admin_dbxref_listing() {
+
+  $view = new view();
+  $view->name = 'db_reference_admin';
+  $view->description = '';
+  $view->tag = 'tripal admin';
+  $view->base_table = 'dbxref';
+  $view->human_name = 'DB Reference Admin';
+  $view->core = 7;
+  $view->api_version = '3.0';
+  $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
+
+  /* Display: Master */
+  $handler = $view->new_display('default', 'Master', 'default');
+  $handler->display->display_options['title'] = 'DB Reference Admin';
+  $handler->display->display_options['use_more_always'] = FALSE;
+  $handler->display->display_options['access']['type'] = 'perm';
+  $handler->display->display_options['access']['perm'] = 'administer db cross-references';
+  $handler->display->display_options['cache']['type'] = 'none';
+  $handler->display->display_options['query']['type'] = 'views_query';
+  $handler->display->display_options['exposed_form']['type'] = 'basic';
+  $handler->display->display_options['pager']['type'] = 'full';
+  $handler->display->display_options['pager']['options']['items_per_page'] = '50';
+  $handler->display->display_options['style_plugin'] = 'table';
+  $handler->display->display_options['style_options']['columns'] = array(
+    'dbxref_id' => 'dbxref_id',
+    'name' => 'name',
+    'accession' => 'accession',
+    'description' => 'description',
+    'version' => 'version',
+  );
+  $handler->display->display_options['style_options']['default'] = '-1';
+  $handler->display->display_options['style_options']['info'] = array(
+    'dbxref_id' => array(
+      'sortable' => 0,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'name' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'accession' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'description' => array(
+      'sortable' => 0,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+    'version' => array(
+      'sortable' => 1,
+      'default_sort_order' => 'asc',
+      'align' => '',
+      'separator' => '',
+      'empty_column' => 0,
+    ),
+  );
+  /* Field: Chado Dbxref: Dbxref Id */
+  $handler->display->display_options['fields']['dbxref_id']['id'] = 'dbxref_id';
+  $handler->display->display_options['fields']['dbxref_id']['table'] = 'dbxref';
+  $handler->display->display_options['fields']['dbxref_id']['field'] = 'dbxref_id';
+  $handler->display->display_options['fields']['dbxref_id']['exclude'] = TRUE;
+  $handler->display->display_options['fields']['dbxref_id']['separator'] = '';
+  /* Field: Chado Db: Name */
+  $handler->display->display_options['fields']['name']['id'] = 'name';
+  $handler->display->display_options['fields']['name']['table'] = 'db';
+  $handler->display->display_options['fields']['name']['field'] = 'name';
+  $handler->display->display_options['fields']['name']['label'] = 'Database';
+  /* Field: Chado Dbxref: Accession */
+  $handler->display->display_options['fields']['accession']['id'] = 'accession';
+  $handler->display->display_options['fields']['accession']['table'] = 'dbxref';
+  $handler->display->display_options['fields']['accession']['field'] = 'accession';
+  /* Field: Chado Dbxref: Description */
+  $handler->display->display_options['fields']['description']['id'] = 'description';
+  $handler->display->display_options['fields']['description']['table'] = 'dbxref';
+  $handler->display->display_options['fields']['description']['field'] = 'description';
+  /* Field: Chado Dbxref: Version */
+  $handler->display->display_options['fields']['version']['id'] = 'version';
+  $handler->display->display_options['fields']['version']['table'] = 'dbxref';
+  $handler->display->display_options['fields']['version']['field'] = 'version';
+  /* Sort criterion: Chado Db: Name */
+  $handler->display->display_options['sorts']['name']['id'] = 'name';
+  $handler->display->display_options['sorts']['name']['table'] = 'db';
+  $handler->display->display_options['sorts']['name']['field'] = 'name';
+  /* Sort criterion: Chado Dbxref: Accession */
+  $handler->display->display_options['sorts']['accession']['id'] = 'accession';
+  $handler->display->display_options['sorts']['accession']['table'] = 'dbxref';
+  $handler->display->display_options['sorts']['accession']['field'] = 'accession';
+  /* Sort criterion: Chado Dbxref: Version */
+  $handler->display->display_options['sorts']['version']['id'] = 'version';
+  $handler->display->display_options['sorts']['version']['table'] = 'dbxref';
+  $handler->display->display_options['sorts']['version']['field'] = 'version';
+  $handler->display->display_options['sorts']['version']['order'] = 'DESC';
+  /* Filter criterion: Chado Db: Name */
+  $handler->display->display_options['filters']['name']['id'] = 'name';
+  $handler->display->display_options['filters']['name']['table'] = 'db';
+  $handler->display->display_options['filters']['name']['field'] = 'name';
+  $handler->display->display_options['filters']['name']['value'] = array(
+    'All' => 'All',
+  );
+  $handler->display->display_options['filters']['name']['group'] = 1;
+  $handler->display->display_options['filters']['name']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['name']['expose']['operator_id'] = '';
+  $handler->display->display_options['filters']['name']['expose']['label'] = 'Database';
+  $handler->display->display_options['filters']['name']['expose']['identifier'] = 'db_name';
+  $handler->display->display_options['filters']['name']['expose']['values_form_type'] = 'select';
+  $handler->display->display_options['filters']['name']['expose']['select_multiple'] = TRUE;
+  $handler->display->display_options['filters']['name']['expose']['select_optional'] = TRUE;
+  $handler->display->display_options['filters']['name']['expose']['max_length'] = 40;
+  $handler->display->display_options['filters']['name']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+  /* Filter criterion: Chado Dbxref: Accession */
+  $handler->display->display_options['filters']['accession']['id'] = 'accession';
+  $handler->display->display_options['filters']['accession']['table'] = 'dbxref';
+  $handler->display->display_options['filters']['accession']['field'] = 'accession';
+  $handler->display->display_options['filters']['accession']['operator'] = 'contains';
+  $handler->display->display_options['filters']['accession']['group'] = 1;
+  $handler->display->display_options['filters']['accession']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['accession']['expose']['operator_id'] = 'accession_op';
+  $handler->display->display_options['filters']['accession']['expose']['label'] = 'Accession Contains';
+  $handler->display->display_options['filters']['accession']['expose']['operator'] = 'accession_op';
+  $handler->display->display_options['filters']['accession']['expose']['identifier'] = 'accession';
+  $handler->display->display_options['filters']['accession']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+  /* Filter criterion: Chado Dbxref: Description */
+  $handler->display->display_options['filters']['description']['id'] = 'description';
+  $handler->display->display_options['filters']['description']['table'] = 'dbxref';
+  $handler->display->display_options['filters']['description']['field'] = 'description';
+  $handler->display->display_options['filters']['description']['operator'] = 'contains';
+  $handler->display->display_options['filters']['description']['group'] = 1;
+  $handler->display->display_options['filters']['description']['exposed'] = TRUE;
+  $handler->display->display_options['filters']['description']['expose']['operator_id'] = 'description_op';
+  $handler->display->display_options['filters']['description']['expose']['label'] = 'Description Contains';
+  $handler->display->display_options['filters']['description']['expose']['operator'] = 'description_op';
+  $handler->display->display_options['filters']['description']['expose']['identifier'] = 'description';
+  $handler->display->display_options['filters']['description']['expose']['remember_roles'] = array(
+    2 => '2',
+    1 => 0,
+    3 => 0,
+  );
+
+  /* Display: Page */
+  $handler = $view->new_display('page', 'Page', 'page');
+  $handler->display->display_options['path'] = 'admin/tripal/chado/tripal_db/dbxrefs';
+  $handler->display->display_options['menu']['type'] = 'tab';
+  $handler->display->display_options['menu']['title'] = 'References';
+  $handler->display->display_options['menu']['weight'] = '0';
+  $handler->display->display_options['menu']['name'] = 'management';
+  $handler->display->display_options['menu']['context'] = 0;
+  $handler->display->display_options['menu']['context_only_inline'] = 0;
+
+  return $view;
+}

+ 8 - 0
tripal_views/theme/tripal_views_admin_views.css

@@ -27,6 +27,14 @@
   margin-bottom: 0px;
 }
 
+.views-exposed-widget .views-widget input[type="text"] {
+  width: 200px;
+}
+
+.views-exposed-widget .views-widget input[type="select"] {
+  width: 200px;
+}
+
 .views-exposed-widget label {
   display: inline-block;
   width: 15em;

+ 100 - 39
tripal_views/views/handlers/tripal_views_handler_filter_select_string.inc

@@ -10,6 +10,34 @@
  */
 class tripal_views_handler_filter_select_string extends views_handler_filter_string {
 
+  /**
+   * Define our new options (needed for export!)
+   */
+  function options_definition() {
+    $options = parent::option_definition();
+
+    $options['expose']['values_form_type'] = array(
+      'default' => 'textfield',
+      'export' => 'export_plugin'
+    );
+    $options['expose']['select_multiple'] = array(
+      'default' => FALSE,
+      'bool' => TRUE,
+      'export' => 'export_plugin'
+    );
+    $options['expose']['select_optional'] = array(
+      'default' => FALSE,
+      'bool' => TRUE,
+      'export' => 'export_plugin'
+    );
+    $options['expose']['max_length'] = array(
+      'default' => 40,
+      'export' => 'export_plugin'
+    );
+
+    return $options;
+  }
+
   /**
    * Provide the options used in the select list.
    * Override this function in extended handlers to easily change option list.
@@ -29,9 +57,10 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
     foreach ($filters as $filter_name => $details) {
        // we only want to inclue non-exposed filters
        if ($details->options['exposed'] == FALSE) {
+          $value = (is_array($details->value)) ? $details->value['value'] : $details->value;
           // we only want to filter on the table we're getting the list from
-          if (strcmp($details->table, $this->table)==0) {
-            $where .= "$details->field $details->operator " . $details->value['value'];
+          if (strcmp($details->table, $this->table)==0 AND !empty($value)) {
+            $where .= "$details->field $details->operator " . $details->value;
             $where .= ' AND ';
           }
        }
@@ -42,16 +71,16 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
     }
 
     // get the values from the table
-    $sql = 'SELECT ' . $this->real_field . ' FROM {' . $this->table . '}' . $where . ' ORDER BY ' . $this->field . ' ASC';
+    $sql = 'SELECT ' . $this->real_field . ' FROM {' . $this->table . '} ' . $where . ' ORDER BY ' . $this->field . ' ASC';
     $results = chado_query($sql);
 
     // Build the select box options
-    $max_length = $this->options['max_length'];
+    $max_length = (isset($this->options['expose']['max_length'])) ? $this->options['expose']['max_length'] : 40;
     if (!$max_length) {
       $max_length = 40;
     }
     $options = array();
-    if ($this->options['optional']) {
+    if ($this->options['expose']['select_optional']) {
       $options['All'] = '--Any--';
     }
     foreach ($results as $r) {
@@ -66,56 +95,69 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
     return $options;
   }
 
-  function options_form(&$form, &$form_state) {
-    parent::options_form($form, $form_state);
+  function expose_form(&$form, &$form_state) {
+    parent::expose_form($form, $form_state);
 
-    $form['values_form_type'] = array(
+    $form['expose']['values_form_type'] = array(
       '#type' => 'radios',
       '#title' => t('Filter Type'),
       '#options' => array(
         'textfield' => 'Text Field',
         'select' => 'Drop-Down Box',
       ),
-      '#default_value' => ($this->options['values_form_type']) ? $this->options['values_form_type'] : 'select',
+      '#default_value' => $this->options['expose']['values_form_type'],
     );
 
-    $form['select_multiple'] = array(
+    $form['expose']['select_multiple'] = array(
       '#type' => 'checkbox',
       '#title' => t('Select Multiple'),
       '#description' => t('Allows more then one option to be selected.'),
-      '#default_value' => (isset($this->options['select_multiple'])) ? $this->options['select_multiple'] : FALSE,
+      '#default_value' => $this->options['expose']['select_multiple'],
     );
 
-    $form['select_optional'] = array(
+    $form['expose']['select_optional'] = array(
       '#type' => 'checkbox',
       '#title' => t('Optional'),
       '#description' => t('Adds --Any-- to the available options.'),
-      '#default_value' => (isset($this->options['select_optional'])) ? $this->options['select_optional'] : TRUE,
+      '#default_value' => $this->options['expose']['select_optional'],
     );
 
-    $form['max_length'] = array(
+    $form['expose']['max_length'] = array(
       '#type' => 'textfield',
       '#title' => t('Max Width'),
       '#description' => t('Specify the maximum width of the select box'),
-      '#default_value' => (isset($this->options['max_length'])) ? $this->options['max_length'] : 40,
+      '#default_value' => $this->options['expose']['max_length'],
 
     );
-    $form['note'] = array(
+    $form['expose']['note'] = array(
       '#type' => 'markup',
       '#value' => t('<strong><font color="red">Note:</font></strong> If another filter exists for the same table then '.
                     'the values shown in the drop box will only include those from rows that are not filtered.'),
 
     );
 
+    return $form;
+
+  }
+
+  /**
+   * Set values for my options
+   */
+  function expose_submit(&$form, &$form_state) {
+    $this->options['expose']['values_form_type'] = $form_state['values']['options']['expose']['values_form_type'];
+    $this->options['expose']['select_multiple'] = $form_state['values']['options']['expose']['select_multiple'];
+    $this->options['expose']['select_optional'] = $form_state['values']['options']['expose']['select_optional'];
+    $this->options['expose']['max_length'] = $form_state['values']['options']['expose']['max_length'];
   }
 
   /**
-   * Assign our new form elements values to the options array
+   * Assign defaults for our new options
    */
-  function options_submit(&$form, &$form_state) {
-    $this->options['values_form_type'] = $form_state['input']['options']['values_form_type'];
-    $this->options['select_multiple'] = $form_state['input']['options']['select_multiple'];
-    $this->options['select_optional'] = $form_state['input']['options']['select_optional'];
+  function expose_options() {
+    $this->options['expose']['values_form_type'] = 'textfield';
+    $this->options['expose']['select_multiple'] = FALSE;
+    $this->options['expose']['select_optional'] = FALSE;
+    $this->options['expose']['max_length'] = 40;
   }
 
  /**
@@ -125,7 +167,9 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
   function value_form(&$form, &$form_state) {
     parent::value_form($form, $form_state);
 
-    if (preg_match('/select/', $this->options['values_form_type'])) {
+    $this->options['expose']['values_form_type'] = (isset($this->options['expose']['values_form_type'])) ? $this->options['expose']['values_form_type'] : 'textfield';
+
+    if (preg_match('/select/', $this->options['expose']['values_form_type'])) {
 
       //Select List
       $form['value'] = array(
@@ -135,7 +179,7 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
           '#default_value' => $this->value,
       );
 
-      if ($this->options['select_multiple']) {
+      if ($this->options['expose']['select_multiple']) {
         $form['value']['#multiple'] = TRUE;
       }
     }
@@ -156,8 +200,10 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
   function exposed_form(&$form, &$form_state) {
     parent::exposed_form($form, $form_state);
 
-    if ($this->options['select_multiple']) {
-      $form[$this->options['id']]['#multiple'] = TRUE;
+    if (isset($this->options['expose']['select_multiple'])) {
+      if ($this->options['expose']['select_multiple']) {
+        $form[$this->options['id']]['#multiple'] = TRUE;
+      }
     }
   }
 
@@ -172,25 +218,40 @@ class tripal_views_handler_filter_select_string extends views_handler_filter_str
       return;
     }
 
-    if (is_array($this->value)) {
-      if (isset($this->value['All'])) {
-        unset($this->value['All']);
-      }
+    $this->ensure_my_table();
+    $field = $this->table_alias . "." . $this->real_field;
+    $table = $this->query->get_table_info($this->table);
 
-      if ($this->operator == '!=') {
-        $this->operator = 'NOT IN';
+    $this->options['expose']['values_form_type'] = (isset($this->options['expose']['values_form_type'])) ? $this->options['expose']['values_form_type'] : 'textfield';
+    if (preg_match('/select/', $this->options['expose']['values_form_type'])) {
+      if (is_array($this->value)) {
+        if (isset($this->value['All'])) {
+          unset($this->value['All']);
+        }
+
+        if ($this->operator == '!=') {
+          $this->operator = 'NOT IN';
+        }
+        else {
+          $this->operator = 'IN';
+        }
       }
       else {
-        $this->operator = 'IN';
+        // don't allow operators other than = and !=
+        if ($this->operator != '!=') {
+          $this->operator = '=';
+        }
       }
-    }
 
-    $this->ensure_my_table();
-    $field = $this->table_alias . "." . $this->real_field;
-    $table = $this->query->get_table_info($this->table);
-
-    if ($this->value) {
-      $this->query->add_where($this->options['group'], $field, $this->value, $this->operator);
+      if ($this->value) {
+        $this->query->add_where($this->options['group'], $field, $this->value, $this->operator);
+      }
+    }
+    else {
+      $info = $this->operators();
+      if (!empty($info[$this->operator]['method'])) {
+        $this->{$info[$this->operator]['method']}($field);
+      }
     }
 
   }