123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- <?php
- /**
- * @file
- * Integrates many of the core database tables with drupal views
- */
- /**
- * Describe various Tripal Core systems to Views for the creation of
- * administrative views.
- *
- * @ingroup tripal
- */
- function tripal_chado_views_data() {
- $data = [];
- // Custom Tables Management
- $data = tripal_chado_views_data_custom_tables($data);
- // Materialized Views Management
- $data = tripal_chado_views_data_mviews($data);
- return $data;
- }
- /**
- * Provides the data array for the tripal custom tables management
- *
- * @param $data
- * Previously generated tripal views data array
- * return
- * $data array with custom tables management described
- *
- * @ingroup tripal
- */
- function tripal_chado_views_data_custom_tables($data) {
- $data['tripal_custom_tables']['table']['group'] = t('Tripal Custom Tables');
- $data['tripal_custom_tables']['table']['base'] = [
- 'field' => 'table_id', // This is the identifier field for the view.
- 'title' => t('Tripal Custom Tables'),
- 'help' => t('Custom Tables in Chado created by this Tripal Installation.'),
- 'weight' => 10,
- ];
- // Table ID
- $data['tripal_custom_tables']['table_id'] = [
- 'title' => t('Custom Table ID'),
- 'help' => t('Custom table primary key.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- // Table Name
- $data['tripal_custom_tables']['table_name'] = [
- 'title' => t('Table Name'),
- 'help' => t('The name of the table in the database.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // Schema
- $data['tripal_custom_tables']['schema'] = [
- 'title' => t('Table Schema'),
- 'help' => t('The schema definition of the table.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // Table ID
- $data['tripal_custom_tables']['mview_id'] = [
- 'title' => t('Materialized View ID'),
- 'help' => t('Foreign key to tripal_mviews table for the materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- return $data;
- }
- /**
- * Provides the data array for the tripal custom tables management
- *
- * @param $data
- * Previously generated tripal views data array
- * return
- * $data array with custom tables management described
- *
- * @ingroup tripal
- */
- function tripal_chado_views_data_mviews($data) {
- $data['tripal_mviews']['table']['group'] = t('Tripal Materialized Views');
- $data['tripal_mviews']['table']['base'] = [
- 'field' => 'mview_id', // This is the identifier field for the view.
- 'title' => t('Tripal Materialized Views'),
- 'help' => t('Materialized Views in Chado created by this Tripal Installation.'),
- 'weight' => 10,
- ];
- // Implicit Join to Tripal Views
- $data['tripal_mviews']['table']['join'] = [
- 'tripal_views' => [
- 'left_field' => 'mview_id',
- 'field' => 'mview_id',
- ],
- ];
- // Mview ID
- $data['tripal_mviews']['mview_id'] = [
- 'title' => t('Materialized View ID'),
- 'help' => t('The primary key.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- // name
- $data['tripal_mviews']['name'] = [
- 'title' => t('Name'),
- 'help' => t('Human-readable name of the materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // modulename
- $data['tripal_mviews']['modulename'] = [
- 'title' => t('Module Name'),
- 'help' => t('The module that created the materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // mv_table
- $data['tripal_mviews']['mv_table'] = [
- 'title' => t('Table'),
- 'help' => t('The database table the materialized view is stored in.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // mv_specs
- $data['tripal_mviews']['mv_specs'] = [
- 'title' => t('Specification'),
- 'help' => t('Materialized View Specification.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // mv_schema
- $data['tripal_mviews']['mv_schema'] = [
- 'title' => t('Schema'),
- 'help' => t('Schema definition for the materialized view table.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // indexed
- $data['tripal_mviews']['indexed'] = [
- 'title' => t('Indices'),
- 'help' => t('Any indices for this materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // query
- $data['tripal_mviews']['query'] = [
- 'title' => t('Query'),
- 'help' => t('The query used to populate the materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // special_index
- $data['tripal_mviews']['special_index'] = [
- 'title' => t('Special Index'),
- 'help' => t('Any special indices for the materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // last_update
- $data['tripal_mviews']['last_update'] = [
- 'title' => t('Updated'),
- 'help' => t('Date Last Updated.'),
- 'field' => [
- 'handler' => 'views_handler_field_date',
- 'click sortable' => TRUE,
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort_date',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_date',
- ],
- ];
- // status
- $data['tripal_mviews']['status'] = [
- 'title' => t('Status'),
- 'help' => t('The status of the materialized view.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- // comment
- $data['tripal_mviews']['comment'] = [
- 'title' => t('Description'),
- 'help' => t('Human-Readable Admin Description.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE, // This is use by the table display plugin.
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- return $data;
- }
|