tripal_core.views.inc 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619
  1. <?php
  2. /**
  3. * @file
  4. * Integrates many of the core database tables with drupal views
  5. */
  6. /**
  7. * Describe various Tripal Core systems to Views
  8. * for the creation of administrative views.
  9. *
  10. * @ingroup tripal_core
  11. */
  12. function tripal_core_views_data() {
  13. $data = array();
  14. // Job Management System
  15. $data = tripal_core_views_data_jobs($data);
  16. // Custom Tables Management
  17. $data = tripal_core_views_data_custom_tables($data);
  18. // Materialized Views Management
  19. $data = tripal_core_views_data_mviews($data);
  20. return $data;
  21. }
  22. /**
  23. * Provides the data array for the tripal job management system
  24. *
  25. * @param $data
  26. * Previously generated tripal_core views data array
  27. * return
  28. * $data array with job management system described
  29. *
  30. * @ingroup tripal_core
  31. */
  32. function tripal_core_views_data_jobs($data) {
  33. $data['tripal_jobs']['table']['group'] = t('Tripal Jobs');
  34. $data['tripal_jobs']['table']['base'] = array(
  35. 'field' => 'job_id', // This is the identifier field for the view.
  36. 'title' => t('Tripal Jobs'),
  37. 'help' => t('The Job Management system for Tripal.'),
  38. 'weight' => 10,
  39. );
  40. // Job ID
  41. $data['tripal_jobs']['job_id'] = array(
  42. 'title' => t('Job ID'),
  43. 'help' => t('The job primary key.'),
  44. 'field' => array(
  45. 'handler' => 'views_handler_field_numeric',
  46. 'click sortable' => TRUE,
  47. ),
  48. 'filter' => array(
  49. 'handler' => 'views_handler_filter_numeric',
  50. ),
  51. 'sort' => array(
  52. 'handler' => 'views_handler_sort',
  53. ),
  54. );
  55. // User ID: Submitter
  56. $data['tripal_jobs']['uid'] = array(
  57. 'title' => t('Job Submitter'),
  58. 'help' => t('The user who submitted the job.'),
  59. 'relationship' => array(
  60. 'base' => 'user', // The name of the table to join with.
  61. 'base field' => 'uid', // The name of the field on the joined table.
  62. 'handler' => 'views_handler_relationship',
  63. 'label' => t('Submitting User'),
  64. 'title' => t('Submitting User'),
  65. 'help' => t('The user who submitted the job'),
  66. ),
  67. );
  68. // Job Name
  69. $data['tripal_jobs']['job_name'] = array(
  70. 'title' => t('Job Name'),
  71. 'help' => t('The name of the job.'),
  72. 'field' => array(
  73. 'handler' => 'views_handler_field',
  74. 'click sortable' => TRUE, // This is use by the table display plugin.
  75. ),
  76. 'sort' => array(
  77. 'handler' => 'views_handler_sort',
  78. ),
  79. 'filter' => array(
  80. 'handler' => 'views_handler_filter_string',
  81. ),
  82. 'argument' => array(
  83. 'handler' => 'views_handler_argument_string',
  84. ),
  85. );
  86. // Module Name
  87. $data['tripal_jobs']['modulename'] = array(
  88. 'title' => t('Module Name'),
  89. 'help' => t('The name of the module that submitted the job.'),
  90. 'field' => array(
  91. 'handler' => 'views_handler_field',
  92. 'click sortable' => TRUE, // This is use by the table display plugin.
  93. ),
  94. 'sort' => array(
  95. 'handler' => 'views_handler_sort',
  96. ),
  97. 'filter' => array(
  98. 'handler' => 'views_handler_filter_string',
  99. ),
  100. 'argument' => array(
  101. 'handler' => 'views_handler_argument_string',
  102. ),
  103. );
  104. // Callback
  105. $data['tripal_jobs']['callback'] = array(
  106. 'title' => t('Callback'),
  107. 'help' => t('The callback executed when the job runs.'),
  108. 'field' => array(
  109. 'handler' => 'views_handler_field',
  110. 'click sortable' => TRUE, // This is use by the table display plugin.
  111. ),
  112. 'sort' => array(
  113. 'handler' => 'views_handler_sort',
  114. ),
  115. 'filter' => array(
  116. 'handler' => 'views_handler_filter_string',
  117. ),
  118. 'argument' => array(
  119. 'handler' => 'views_handler_argument_string',
  120. ),
  121. );
  122. // Arguments
  123. $data['tripal_jobs']['arguments'] = array(
  124. 'title' => t('Arguements'),
  125. 'help' => t('Any arguements passed to the callback.'),
  126. 'field' => array(
  127. 'handler' => 'views_handler_field',
  128. 'click sortable' => TRUE, // This is use by the table display plugin.
  129. ),
  130. 'sort' => array(
  131. 'handler' => 'views_handler_sort',
  132. ),
  133. 'filter' => array(
  134. 'handler' => 'views_handler_filter_string',
  135. ),
  136. 'argument' => array(
  137. 'handler' => 'views_handler_argument_string',
  138. ),
  139. );
  140. // Progress
  141. $data['tripal_jobs']['progress'] = array(
  142. 'title' => t('Progress'),
  143. 'help' => t('The current progress of the job.'),
  144. 'field' => array(
  145. 'handler' => 'views_handler_field_numeric',
  146. 'click sortable' => TRUE,
  147. ),
  148. 'filter' => array(
  149. 'handler' => 'views_handler_filter_numeric',
  150. ),
  151. 'sort' => array(
  152. 'handler' => 'views_handler_sort',
  153. ),
  154. );
  155. // Status
  156. $data['tripal_jobs']['status'] = array(
  157. 'title' => t('Status'),
  158. 'help' => t('The current status of the job.'),
  159. 'field' => array(
  160. 'handler' => 'views_handler_field',
  161. 'click sortable' => TRUE, // This is use by the table display plugin.
  162. ),
  163. 'sort' => array(
  164. 'handler' => 'views_handler_sort',
  165. ),
  166. 'filter' => array(
  167. 'handler' => 'views_handler_filter_string',
  168. ),
  169. 'argument' => array(
  170. 'handler' => 'views_handler_argument_string',
  171. ),
  172. );
  173. // Submit Data
  174. $data['tripal_jobs']['submit_date'] = array(
  175. 'title' => t('Submit Date'),
  176. 'help' => t('The date the job was submitted.'),
  177. 'field' => array(
  178. 'handler' => 'views_handler_field_date',
  179. 'click sortable' => TRUE,
  180. ),
  181. 'sort' => array(
  182. 'handler' => 'views_handler_sort_date',
  183. ),
  184. 'filter' => array(
  185. 'handler' => 'views_handler_filter_date',
  186. ),
  187. );
  188. // Start Time
  189. $data['tripal_jobs']['start_time'] = array(
  190. 'title' => t('Start Time'),
  191. 'help' => t('The time the job started.'),
  192. 'field' => array(
  193. 'handler' => 'views_handler_field_date',
  194. 'click sortable' => TRUE,
  195. ),
  196. 'sort' => array(
  197. 'handler' => 'views_handler_sort_date',
  198. ),
  199. 'filter' => array(
  200. 'handler' => 'views_handler_filter_date',
  201. ),
  202. );
  203. // End Time
  204. $data['tripal_jobs']['end_time'] = array(
  205. 'title' => t('End Time'),
  206. 'help' => t('The time the job ended.'),
  207. 'field' => array(
  208. 'handler' => 'views_handler_field_date',
  209. 'click sortable' => TRUE,
  210. ),
  211. 'sort' => array(
  212. 'handler' => 'views_handler_sort_date',
  213. ),
  214. 'filter' => array(
  215. 'handler' => 'views_handler_filter_date',
  216. ),
  217. );
  218. // Error Message
  219. $data['tripal_jobs']['error_msg'] = array(
  220. 'title' => t('Error Message '),
  221. 'help' => t('A short description of any error the job might have had.'),
  222. 'field' => array(
  223. 'handler' => 'views_handler_field',
  224. 'click sortable' => TRUE, // This is use by the table display plugin.
  225. ),
  226. 'sort' => array(
  227. 'handler' => 'views_handler_sort',
  228. ),
  229. 'filter' => array(
  230. 'handler' => 'views_handler_filter_string',
  231. ),
  232. 'argument' => array(
  233. 'handler' => 'views_handler_argument_string',
  234. ),
  235. );
  236. // Unix Pid of the job
  237. $data['tripal_jobs']['pid'] = array(
  238. 'title' => t('Job PID'),
  239. 'help' => t('The Unix PID of the job.'),
  240. 'field' => array(
  241. 'handler' => 'views_handler_field_numeric',
  242. 'click sortable' => TRUE,
  243. ),
  244. 'filter' => array(
  245. 'handler' => 'views_handler_filter_numeric',
  246. ),
  247. 'sort' => array(
  248. 'handler' => 'views_handler_sort',
  249. ),
  250. );
  251. // Priority
  252. $data['tripal_jobs']['priority'] = array(
  253. 'title' => t('Priority'),
  254. 'help' => t('The priority of this job.'),
  255. 'field' => array(
  256. 'handler' => 'views_handler_field_numeric',
  257. 'click sortable' => TRUE,
  258. ),
  259. 'filter' => array(
  260. 'handler' => 'views_handler_filter_numeric',
  261. ),
  262. 'sort' => array(
  263. 'handler' => 'views_handler_sort',
  264. ),
  265. );
  266. return $data;
  267. }
  268. /**
  269. * Provides the data array for the tripal custom tables management
  270. *
  271. * @param $data
  272. * Previously generated tripal_core views data array
  273. * return
  274. * $data array with custom tables management described
  275. *
  276. * @ingroup tripal_core
  277. */
  278. function tripal_core_views_data_custom_tables($data) {
  279. $data['tripal_custom_tables']['table']['group'] = t('Tripal Custom Tables');
  280. $data['tripal_custom_tables']['table']['base'] = array(
  281. 'field' => 'table_id', // This is the identifier field for the view.
  282. 'title' => t('Tripal Custom Tables'),
  283. 'help' => t('Custom Tables in Chado created by this Tripal Installation.'),
  284. 'weight' => 10,
  285. );
  286. // Table ID
  287. $data['tripal_custom_tables']['table_id'] = array(
  288. 'title' => t('Custom Table ID'),
  289. 'help' => t('Custom table primary key.'),
  290. 'field' => array(
  291. 'handler' => 'views_handler_field_numeric',
  292. 'click sortable' => TRUE,
  293. ),
  294. 'filter' => array(
  295. 'handler' => 'views_handler_filter_numeric',
  296. ),
  297. 'sort' => array(
  298. 'handler' => 'views_handler_sort',
  299. ),
  300. );
  301. // Table Name
  302. $data['tripal_custom_tables']['table_name'] = array(
  303. 'title' => t('Table Name'),
  304. 'help' => t('The name of the table in the database.'),
  305. 'field' => array(
  306. 'handler' => 'views_handler_field',
  307. 'click sortable' => TRUE, // This is use by the table display plugin.
  308. ),
  309. 'sort' => array(
  310. 'handler' => 'views_handler_sort',
  311. ),
  312. 'filter' => array(
  313. 'handler' => 'views_handler_filter_string',
  314. ),
  315. 'argument' => array(
  316. 'handler' => 'views_handler_argument_string',
  317. ),
  318. );
  319. // Schema
  320. $data['tripal_custom_tables']['schema'] = array(
  321. 'title' => t('Table Schema'),
  322. 'help' => t('The schema definition of the table.'),
  323. 'field' => array(
  324. 'handler' => 'views_handler_field',
  325. 'click sortable' => TRUE, // This is use by the table display plugin.
  326. ),
  327. 'sort' => array(
  328. 'handler' => 'views_handler_sort',
  329. ),
  330. 'filter' => array(
  331. 'handler' => 'views_handler_filter_string',
  332. ),
  333. 'argument' => array(
  334. 'handler' => 'views_handler_argument_string',
  335. ),
  336. );
  337. return $data;
  338. }
  339. /**
  340. * Provides the data array for the tripal custom tables management
  341. *
  342. * @param $data
  343. * Previously generated tripal_core views data array
  344. * return
  345. * $data array with custom tables management described
  346. *
  347. * @ingroup tripal_core
  348. */
  349. function tripal_core_views_data_mviews($data) {
  350. $data['tripal_mviews']['table']['group'] = t('Tripal Materialized Views');
  351. $data['tripal_mviews']['table']['base'] = array(
  352. 'field' => 'mview_id', // This is the identifier field for the view.
  353. 'title' => t('Tripal Materialized Views'),
  354. 'help' => t('Materialized Views in Chado created by this Tripal Installation.'),
  355. 'weight' => 10,
  356. );
  357. // Implicit Join to Tripal Views
  358. $data['tripal_mviews']['table']['join'] = array(
  359. 'tripal_views' => array(
  360. 'left_field' => 'mview_id',
  361. 'field' => 'mview_id',
  362. ),
  363. );
  364. // Mview ID
  365. $data['tripal_mviews']['mview_id'] = array(
  366. 'title' => t('Materialized View ID'),
  367. 'help' => t('The primary key.'),
  368. 'field' => array(
  369. 'handler' => 'views_handler_field_numeric',
  370. 'click sortable' => TRUE,
  371. ),
  372. 'filter' => array(
  373. 'handler' => 'views_handler_filter_numeric',
  374. ),
  375. 'sort' => array(
  376. 'handler' => 'views_handler_sort',
  377. ),
  378. );
  379. // name
  380. $data['tripal_mviews']['name'] = array(
  381. 'title' => t('Name'),
  382. 'help' => t('Human-readable name of the materialized view.'),
  383. 'field' => array(
  384. 'handler' => 'views_handler_field',
  385. 'click sortable' => TRUE, // This is use by the table display plugin.
  386. ),
  387. 'sort' => array(
  388. 'handler' => 'views_handler_sort',
  389. ),
  390. 'filter' => array(
  391. 'handler' => 'views_handler_filter_string',
  392. ),
  393. 'argument' => array(
  394. 'handler' => 'views_handler_argument_string',
  395. ),
  396. );
  397. // modulename
  398. $data['tripal_mviews']['modulename'] = array(
  399. 'title' => t('Module Name'),
  400. 'help' => t('The module that created the materialized view.'),
  401. 'field' => array(
  402. 'handler' => 'views_handler_field',
  403. 'click sortable' => TRUE, // This is use by the table display plugin.
  404. ),
  405. 'sort' => array(
  406. 'handler' => 'views_handler_sort',
  407. ),
  408. 'filter' => array(
  409. 'handler' => 'views_handler_filter_string',
  410. ),
  411. 'argument' => array(
  412. 'handler' => 'views_handler_argument_string',
  413. ),
  414. );
  415. // mv_table
  416. $data['tripal_mviews']['mv_table'] = array(
  417. 'title' => t('Table'),
  418. 'help' => t('The database table the materialized view is stored in.'),
  419. 'field' => array(
  420. 'handler' => 'views_handler_field',
  421. 'click sortable' => TRUE, // This is use by the table display plugin.
  422. ),
  423. 'sort' => array(
  424. 'handler' => 'views_handler_sort',
  425. ),
  426. 'filter' => array(
  427. 'handler' => 'views_handler_filter_string',
  428. ),
  429. 'argument' => array(
  430. 'handler' => 'views_handler_argument_string',
  431. ),
  432. );
  433. // mv_specs
  434. $data['tripal_mviews']['mv_specs'] = array(
  435. 'title' => t('Specification'),
  436. 'help' => t('Materialized View Specification.'),
  437. 'field' => array(
  438. 'handler' => 'views_handler_field',
  439. 'click sortable' => TRUE, // This is use by the table display plugin.
  440. ),
  441. 'sort' => array(
  442. 'handler' => 'views_handler_sort',
  443. ),
  444. 'filter' => array(
  445. 'handler' => 'views_handler_filter_string',
  446. ),
  447. 'argument' => array(
  448. 'handler' => 'views_handler_argument_string',
  449. ),
  450. );
  451. // mv_schema
  452. $data['tripal_mviews']['mv_schema'] = array(
  453. 'title' => t('Schema'),
  454. 'help' => t('Schema definition for the materialized view table.'),
  455. 'field' => array(
  456. 'handler' => 'views_handler_field',
  457. 'click sortable' => TRUE, // This is use by the table display plugin.
  458. ),
  459. 'sort' => array(
  460. 'handler' => 'views_handler_sort',
  461. ),
  462. 'filter' => array(
  463. 'handler' => 'views_handler_filter_string',
  464. ),
  465. 'argument' => array(
  466. 'handler' => 'views_handler_argument_string',
  467. ),
  468. );
  469. // indexed
  470. $data['tripal_mviews']['indexed'] = array(
  471. 'title' => t('Indices'),
  472. 'help' => t('Any indices for this materialized view.'),
  473. 'field' => array(
  474. 'handler' => 'views_handler_field',
  475. 'click sortable' => TRUE, // This is use by the table display plugin.
  476. ),
  477. 'sort' => array(
  478. 'handler' => 'views_handler_sort',
  479. ),
  480. 'filter' => array(
  481. 'handler' => 'views_handler_filter_string',
  482. ),
  483. 'argument' => array(
  484. 'handler' => 'views_handler_argument_string',
  485. ),
  486. );
  487. // query
  488. $data['tripal_mviews']['query'] = array(
  489. 'title' => t('Query'),
  490. 'help' => t('The query used to populate the materialized view.'),
  491. 'field' => array(
  492. 'handler' => 'views_handler_field',
  493. 'click sortable' => TRUE, // This is use by the table display plugin.
  494. ),
  495. 'sort' => array(
  496. 'handler' => 'views_handler_sort',
  497. ),
  498. 'filter' => array(
  499. 'handler' => 'views_handler_filter_string',
  500. ),
  501. 'argument' => array(
  502. 'handler' => 'views_handler_argument_string',
  503. ),
  504. );
  505. // special_index
  506. $data['tripal_mviews']['special_index'] = array(
  507. 'title' => t('Special Index'),
  508. 'help' => t('Any special indices for the materialized view.'),
  509. 'field' => array(
  510. 'handler' => 'views_handler_field',
  511. 'click sortable' => TRUE, // This is use by the table display plugin.
  512. ),
  513. 'sort' => array(
  514. 'handler' => 'views_handler_sort',
  515. ),
  516. 'filter' => array(
  517. 'handler' => 'views_handler_filter_string',
  518. ),
  519. 'argument' => array(
  520. 'handler' => 'views_handler_argument_string',
  521. ),
  522. );
  523. // last_update
  524. $data['tripal_mviews']['last_update'] = array(
  525. 'title' => t('Updated'),
  526. 'help' => t('Date Last Updated.'),
  527. 'field' => array(
  528. 'handler' => 'views_handler_field_date',
  529. 'click sortable' => TRUE,
  530. ),
  531. 'sort' => array(
  532. 'handler' => 'views_handler_sort_date',
  533. ),
  534. 'filter' => array(
  535. 'handler' => 'views_handler_filter_date',
  536. ),
  537. );
  538. // status
  539. $data['tripal_mviews']['status'] = array(
  540. 'title' => t('Status'),
  541. 'help' => t('The status of the materialized view.'),
  542. 'field' => array(
  543. 'handler' => 'views_handler_field',
  544. 'click sortable' => TRUE, // This is use by the table display plugin.
  545. ),
  546. 'sort' => array(
  547. 'handler' => 'views_handler_sort',
  548. ),
  549. 'filter' => array(
  550. 'handler' => 'views_handler_filter_string',
  551. ),
  552. 'argument' => array(
  553. 'handler' => 'views_handler_argument_string',
  554. ),
  555. );
  556. // comment
  557. $data['tripal_mviews']['comment'] = array(
  558. 'title' => t('Description'),
  559. 'help' => t('Human-Readable Admin Description.'),
  560. 'field' => array(
  561. 'handler' => 'views_handler_field',
  562. 'click sortable' => TRUE, // This is use by the table display plugin.
  563. ),
  564. 'sort' => array(
  565. 'handler' => 'views_handler_sort',
  566. ),
  567. 'filter' => array(
  568. 'handler' => 'views_handler_filter_string',
  569. ),
  570. 'argument' => array(
  571. 'handler' => 'views_handler_argument_string',
  572. ),
  573. );
  574. return $data;
  575. }