123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- <?php
- /**
- * @file
- * Provides Drupal views integration excluding default views.
- *
- * @ingroup tripal_bulk_loader
- */
- /**
- * Generates a dynamic data array for Views
- *
- * Purpose: This function is a hook used by the Views module. It populates and
- * returns a data array that specifies for the Views module the base table,
- * the tables it joins with and handlers. The data array is populated
- * using the data stored in the tripal_views tables.
- *
- * @return a data array formatted for the Views module
- *
- * D7 @todo: Add support for materialized views relationships using the new
- * method
- *
- * @ingroup tripal_bulk_loader
- */
- function tripal_bulk_loader_views_data() {
- $data = [];
- // Tripal Bulk Loader *************************
- $data['tripal_bulk_loader']['table']['group'] = t('Tripal Bulk Loading Jobs');
- $data['tripal_bulk_loader']['table']['base'] = [
- 'field' => 'nid',
- 'title' => t('Tripal Bulk Loading Jobs'),
- 'help' => t('Jobs created to load chado data using a Tripal Bulk Loader Template.'),
- ];
- // This table references the {node} table. The declaration below creates an
- // 'implicit' relationship to the node table, so that when 'node' is the base
- // table, the fields are automatically available.
- $data['tripal_bulk_loader']['table']['join'] = [
- 'node' => [
- 'left_field' => 'nid',
- 'field' => 'nid',
- ],
- ];
- $data['tripal_bulk_loader']['table']['join']['tripal_bulk_loader_template'] = [
- 'left_field' => 'template_id',
- 'field' => 'template_id',
- ];
- $data['tripal_bulk_loader']['table']['join']['tripal_bulk_loader_constants'] = [
- 'left_field' => 'nid',
- 'field' => 'nid',
- ];
- // Node ID table field.
- $data['tripal_bulk_loader']['nid'] = [
- 'title' => t('Tripal Bulk Loading Jobs'),
- 'help' => t('Tripal Bulk Loading Jobs.'),
- // Define a relationship to the {node} table, so tripal_bulk_loader views can
- // add a relationship to nodes. If you want to define a relationship the
- // other direction, use hook_views_data_alter(), or use the 'implicit' join
- // method described above.
- 'relationship' => [
- 'base' => 'node',
- 'base field' => 'nid',
- 'handler' => 'views_handler_relationship',
- 'label' => t('Bulk Loading Job => Node'),
- 'title' => t('Bulk Loading Job => Node'),
- 'help' => t('Link Tripal Bulk loading jobs to their nodes.'),
- ],
- ];
- $data['tripal_bulk_loader']['loader_name'] = [
- 'title' => t('Name'),
- 'help' => t('The name of the loading job.'),
- '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',
- ],
- ];
- $data['tripal_bulk_loader']['template_id'] = [
- 'title' => t('Template ID'),
- 'help' => t('The template to be used for this bulk loading job.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- $data['tripal_bulk_loader']['file'] = [
- 'title' => t('File'),
- 'help' => t('The path to the file to be loaded.'),
- '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',
- ],
- ];
- $data['tripal_bulk_loader']['job_id'] = [
- 'title' => t('Tripal Job ID'),
- 'help' => t('The Tripal job ID corresponding to this Tripal Bulk Loading job.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- $data['tripal_bulk_loader']['job_status'] = [
- 'title' => t('Job Status'),
- 'help' => t('A description of the status of the loading job.'),
- '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',
- ],
- ];
- $data['tripal_bulk_loader']['file_has_header'] = [
- 'title' => t('File has a Header'),
- 'help' => t('Whether the file has a single header line or not.'),
- 'field' => [
- 'handler' => 'views_handler_field_boolean',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_boolean_operator',
- 'type' => 'yes-no',
- 'use equal' => TRUE,
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- $data['tripal_bulk_loader']['keep_track_inserted'] = [
- 'title' => t('Tracking Inserted IDs'),
- 'help' => t('Whether the loader is keeping track of inserted IDs to allow reverse of loading.'),
- 'field' => [
- 'handler' => 'views_handler_field_boolean',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_boolean_operator',
- 'type' => 'yes-no',
- 'use equal' => TRUE,
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- // Tripal Bulk Loader Template ****************
- $data['tripal_bulk_loader_template']['table']['group'] = t('Tripal Bulk Loader Templates');
- $data['tripal_bulk_loader_template']['table']['base'] = [
- 'field' => 'template_id',
- 'title' => t('Tripal Bulk Loader Templates'),
- 'help' => t('Tripal Bulk Loader Templates used to describe where to load data into chado.'),
- ];
- $data['tripal_bulk_loader_template']['table']['join']['tripal_bulk_loader'] = [
- 'left_field' => 'template_id',
- 'field' => 'template_id',
- ];
- $data['tripal_bulk_loader_template']['template_id'] = [
- 'title' => t('Template ID'),
- 'help' => t('The unique identifier for tripal bulk loader templates.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'relationship' => [
- 'base' => 'tripal_bulk_loader',
- 'base field' => 'template_id',
- 'handler' => 'views_handler_relationship',
- 'label' => t('Templates => TBL Jobs'),
- 'title' => t('Templates => TBL Jobs'),
- 'help' => t('Links each template to the jobs using it.'),
- ],
- ];
- $data['tripal_bulk_loader_template']['name'] = [
- 'title' => t('Name'),
- 'help' => t('The human-readable name of the template.'),
- 'field' => [
- 'handler' => 'views_handler_field',
- 'click sortable' => TRUE,
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_string',
- ],
- 'argument' => [
- 'handler' => 'views_handler_argument_string',
- ],
- ];
- $data['tripal_bulk_loader_template']['created'] = [
- 'title' => t('Created'),
- 'help' => t('Date the template was created on.'),
- 'field' => [
- 'handler' => 'views_handler_field_date',
- 'click sortable' => TRUE,
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort_date',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_date',
- ],
- ];
- $data['tripal_bulk_loader_template']['changed'] = [
- 'title' => t('Updated'),
- 'help' => t('The date the template was last updated on.'),
- 'field' => [
- 'handler' => 'views_handler_field_date',
- 'click sortable' => TRUE,
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort_date',
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_date',
- ],
- ];
- // Tripal Bulk Loader Constants ***************
- $data['tripal_bulk_loader_constants']['table']['group'] = t('Tripal Bulk Loader Constants');
- $data['tripal_bulk_loader_constants']['table'] = [
- 'field' => 'constant_id',
- 'title' => t('Tripal Bulk Loading Job Constants'),
- 'help' => t('Constants described for a particular Tripal Bulk Loading Job.'),
- ];
- $data['tripal_bulk_loader_constants']['table']['join']['tripal_bulk_loader'] = [
- 'left_field' => 'nid',
- 'field' => 'nid',
- ];
- $data['tripal_bulk_loader_constants']['group_id'] = [
- 'title' => t('Group ID'),
- 'help' => t('Constants are grouped together allowing for multiple values for the same field.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- $data['tripal_bulk_loader_constants']['chado_table'] = [
- 'title' => t('Chado Table'),
- 'help' => t('The table this constant applies to.'),
- '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',
- ],
- ];
- $data['tripal_bulk_loader_constants']['chado_field'] = [
- 'title' => t('Chado Field'),
- 'help' => t('The field in chado this constant applies to.'),
- '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',
- ],
- ];
- $data['tripal_bulk_loader_constants']['record_id'] = [
- 'title' => t('Record ID'),
- 'help' => t('Unique identifier of a record within the template.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- $data['tripal_bulk_loader_constants']['field_id'] = [
- 'title' => t('Field Index'),
- 'help' => t('Unique identifier of a field within a template record.'),
- 'field' => [
- 'handler' => 'views_handler_field_numeric',
- 'click sortable' => TRUE,
- ],
- 'filter' => [
- 'handler' => 'views_handler_filter_numeric',
- ],
- 'sort' => [
- 'handler' => 'views_handler_sort',
- ],
- ];
- $data['tripal_bulk_loader_constants']['value'] = [
- 'title' => t('Value'),
- 'help' => t('The value of the constant.'),
- '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;
- }
|