|
@@ -119,6 +119,15 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL){
|
|
|
$form_state['storage']['mview_id'] = $mview_id;
|
|
|
$form_state['storage']['table_name'] = $table_name;
|
|
|
|
|
|
+ // get the default field name/description
|
|
|
+ $sql = "SELECT * FROM {tripal_views_field} WHERE setup_id=%d";
|
|
|
+ $query = db_query($sql,$setup_id);
|
|
|
+ $default_fields = array();
|
|
|
+ while ($field = db_fetch_object($query)) {
|
|
|
+ $default_fields[$field->column_name]['name'] = $field->name;
|
|
|
+ $default_fields[$field->column_name]['description'] = $field->description;
|
|
|
+ }
|
|
|
+
|
|
|
// get the default join settings and handlers
|
|
|
$sql = "SELECT * FROM {tripal_views_join} WHERE setup_id = %d";
|
|
|
$query = db_query($sql,$setup_id);
|
|
@@ -295,18 +304,12 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL){
|
|
|
|
|
|
// get list of all handlers
|
|
|
$all_handlers = tripal_views_integration_discover_handlers();
|
|
|
- $handlers_fields = array();
|
|
|
- $handlers_filters = array();
|
|
|
- $handlers_sort = array();
|
|
|
- $handlers_arguments = array();
|
|
|
- $handlers_join = array();
|
|
|
- $handlers_rel = array();
|
|
|
- $handlers_fields[0] = "Select a field handler";
|
|
|
- $handlers_filters[0] = "Select a filter handler";
|
|
|
- $handlers_sort[0] = "Select a sort handler";
|
|
|
- $handlers_argument[0] = "Select an argument handler";
|
|
|
- $handlers_join[0] = "Select a join handler";
|
|
|
- $handlers_rel[0] = "Select a relationship handler";
|
|
|
+ $handlers_fields = array(0 => "Select a field handler");
|
|
|
+ $handlers_filters = array(0 => "Select a filter handler");
|
|
|
+ $handlers_sort = array(0 => "Select a sort handler");
|
|
|
+ $handlers_argument = array(0 => "Select an argument handler");
|
|
|
+ $handlers_join = array(0 => "Select a join handler");
|
|
|
+ $handlers_rel = array(0 => "Select a relationship handler");
|
|
|
foreach($all_handlers as $handler){
|
|
|
if(preg_match("/views_handler_field/",$handler)){
|
|
|
$handlers_fields[$handler] = $handler;
|
|
@@ -358,7 +361,38 @@ function tripal_views_integration_form(&$form_state, $setup_id = NULL){
|
|
|
"<div class=\"column-form-fields\"><div class=\"column-one\">",
|
|
|
);
|
|
|
$data['field_types'][$column_name] = $column_type;
|
|
|
-
|
|
|
+
|
|
|
+ // set the default values for the human-readable name and description
|
|
|
+ $default_name = '';
|
|
|
+ $default_descrip = '';
|
|
|
+ if (isset($setup_id) && !isset($form_state['storage']["fields_readable_name_$table_id-$i"])){
|
|
|
+ $default_name = $default_fields[$column_name]['name'];
|
|
|
+ $default_descrip = $default_fields[$column_name]['description'];
|
|
|
+ } else {
|
|
|
+ $default_name = $form_state['storage']["fields_readable_name_$table_id-$i"];
|
|
|
+ $default_descrip = $form_state['storage']["fields_description_$table_id-$i"];
|
|
|
+ }
|
|
|
+
|
|
|
+ $form['view_setup_table']["fields_readable_name_$table_id-$i"] = array(
|
|
|
+ '#type' => 'textfield',
|
|
|
+ '#title' => 'Human-Readable Name',
|
|
|
+ '#description' => 'This is the name of the field in the Views UI',
|
|
|
+ '#required' => TRUE,
|
|
|
+ //'#suffix' => '</div><div class="column-two">',
|
|
|
+ '#default_value' => $default_name,
|
|
|
+ );
|
|
|
+
|
|
|
+ $form['view_setup_table']["fields_description_$table_id-$i"] = array(
|
|
|
+ '#type' => 'textarea',
|
|
|
+ '#title' => 'Short Description',
|
|
|
+ '#description' => 'This is the field help in the Views UI',
|
|
|
+ '#required' => TRUE,
|
|
|
+ '#cols' => 42,
|
|
|
+ '#rows' => 3,
|
|
|
+ '#suffix' => '</div><div class="column-two">',
|
|
|
+ '#default_value' => $default_descrip,
|
|
|
+ );
|
|
|
+
|
|
|
// set the default values for the join table and columns
|
|
|
$default_join_table = 0;
|
|
|
$default_join_field = 0;
|
|
@@ -580,11 +614,12 @@ function tripal_views_integration_form_submit($form, &$form_state){
|
|
|
$sql = "SELECT * FROM {tripal_mviews} WHERE mview_id = $mview_id";
|
|
|
$mview = db_fetch_object(db_query($sql));
|
|
|
$table_name = $mview->mv_table;
|
|
|
+ $table_id = $mview_id;
|
|
|
$type = 'mview';
|
|
|
} else {
|
|
|
$type = 'chado';
|
|
|
+ $table_id = $table_name;
|
|
|
}
|
|
|
-
|
|
|
|
|
|
// If this is for a materialized view then we want to add/update that record
|
|
|
$tripal_views_record = array();
|
|
@@ -632,6 +667,7 @@ function tripal_views_integration_form_submit($form, &$form_state){
|
|
|
|
|
|
// if this is an update then clean out the existing joins and handlers so we can add new ones
|
|
|
if($setup_id){
|
|
|
+ db_query("DELETE FROM {tripal_views_field} WHERE setup_id = %d",$setup_id);
|
|
|
db_query("DELETE FROM {tripal_views_join} WHERE setup_id = %d",$setup_id);
|
|
|
db_query("DELETE FROM {tripal_views_handlers} WHERE setup_id = %d",$setup_id);
|
|
|
}
|
|
@@ -641,6 +677,16 @@ function tripal_views_integration_form_submit($form, &$form_state){
|
|
|
$i = 1;
|
|
|
foreach ($form_state['values']['field_types'] as $key => $value){
|
|
|
|
|
|
+ // add the field definition
|
|
|
+ $view_field_record = array(
|
|
|
+ 'setup_id' => $tripal_views_record['setup_id'],
|
|
|
+ 'column_name' => $key,
|
|
|
+ 'name' => $form_state['values']["fields_readable_name_$table_id-$i"],
|
|
|
+ 'description' => $form_state['values']["fields_description_$table_id-$i"],
|
|
|
+ 'type' => $value,
|
|
|
+ );
|
|
|
+ drupal_write_record('tripal_views_field', $view_field_record);
|
|
|
+
|
|
|
// first add the join if it exists
|
|
|
$left_table = $form_state['values']["fields_join_$table_id-$i"];
|
|
|
$left_column = $form_state['values']["fields_join_column_$table_id-$i"];
|