tripal_jbrowse_mgmt.module 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. /**
  3. * @file
  4. * Create and manage JBrowse instances.
  5. */
  6. require_once 'includes/tripal_jbrowse_mgmt.api.inc';
  7. require_once 'includes/tripal_jbrowse_mgmt.jobs.inc';
  8. require_once 'includes/tripal_jbrowse_mgmt_commands.inc';
  9. /**
  10. * Implements hook_menu().
  11. */
  12. function tripal_jbrowse_mgmt_menu() {
  13. $items = [];
  14. // Admin forms
  15. $items['admin/tripal_jbrowse_mgmt'] = [
  16. 'title' => 'JBrowse',
  17. 'description' => 'List JBrowse settings',
  18. 'page callback' => 'tripal_jbrowse_mgmt_instances_page',
  19. 'page arguments' => ['tripal_jbrowse_mgmt_configure_form'],
  20. 'access arguments' => ['administer hardwoods jbrowse'],
  21. 'file' => 'includes/tripal_jbrowse_mgmt_list.page.inc',
  22. 'type' => MENU_NORMAL_ITEM,
  23. ];
  24. $items['admin/tripal_jbrowse_mgmt/list'] = [
  25. 'title' => 'List Instances',
  26. 'type' => MENU_DEFAULT_LOCAL_TASK,
  27. ];
  28. $items['admin/tripal_jbrowse_mgmt/configure'] = [
  29. 'title' => 'Settings',
  30. 'description' => 'List and create JBrowse instances.',
  31. 'page callback' => 'drupal_get_form',
  32. 'page arguments' => ['tripal_jbrowse_mgmt_configure_form'],
  33. 'access arguments' => ['configure hardwoods jbrowse'],
  34. 'file' => 'includes/tripal_jbrowse_mgmt_configure.form.inc',
  35. 'type' => MENU_LOCAL_TASK,
  36. ];
  37. $items['admin/tripal_jbrowse_mgmt/instances/add'] = [
  38. 'title' => 'Add New Instance',
  39. 'description' => 'List and create JBrowse instances.',
  40. 'page callback' => 'drupal_get_form',
  41. 'page arguments' => ['tripal_jbrowse_mgmt_add_form'],
  42. 'access arguments' => ['administer hardwoods jbrowse'],
  43. 'file' => 'includes/tripal_jbrowse_mgmt_add.form.inc',
  44. 'type' => MENU_LOCAL_ACTION,
  45. ];
  46. $items['admin/tripal_jbrowse_mgmt/instances/%'] = [
  47. 'title' => 'Manage Instance',
  48. 'description' => 'View an instance and manage its tracks.',
  49. 'page callback' => 'tripal_jbrowse_mgmt_instance_page',
  50. 'page arguments' => [3],
  51. 'access arguments' => ['administer hardwoods jbrowse'],
  52. 'file' => 'includes/tripal_jbrowse_mgmt_instance.page.inc',
  53. 'type' => MENU_CALLBACK,
  54. ];
  55. $items['admin/tripal_jbrowse_mgmt/instances/%/delete'] = [
  56. 'title' => 'Delete an instance',
  57. 'description' => 'Confirm deleting an instance.',
  58. 'page callback' => 'drupal_get_form',
  59. 'page arguments' => ['tripal_jbrowse_mgmt_delete_instance_form', 3],
  60. 'access arguments' => ['administer hardwoods jbrowse'],
  61. 'file' => 'includes/tripal_jbrowse_mgmt_delete_instance.form.inc',
  62. 'type' => MENU_LOCAL_ACTION,
  63. ];
  64. $items['admin/tripal_jbrowse_mgmt/instances/%/add_track'] = [
  65. 'title' => 'Add New Track',
  66. 'description' => 'Add new track to a jbrowse instance.',
  67. 'page callback' => 'drupal_get_form',
  68. 'page arguments' => ['tripal_jbrowse_mgmt_add_track_form', 3],
  69. 'access arguments' => ['administer hardwoods jbrowse'],
  70. 'file' => 'includes/tripal_jbrowse_mgmt_tracks.form.inc',
  71. 'type' => MENU_LOCAL_ACTION,
  72. ];
  73. $items['admin/tripal_jbrowse_mgmt/tracks/%'] = [
  74. 'title' => 'Edit Track',
  75. 'description' => 'Edit tracks.',
  76. 'page callback' => 'drupal_get_form',
  77. 'page arguments' => ['tripal_jbrowse_mgmt_json_editor_form', 3],
  78. 'access arguments' => ['administer hardwoods jbrowse'],
  79. 'file' => 'includes/tripal_jbrowse_mgmt_json_editor.form.inc',
  80. 'type' => MENU_CALLBACK,
  81. ];
  82. $items['admin/tripal_jbrowse_mgmt/tracks/%/delete'] = [
  83. 'title' => 'Delete Track',
  84. 'page callback' => 'drupal_get_form',
  85. 'page arguments' => ['tripal_jbrowse_mgmt_delete_track_form', 3],
  86. 'access arguments' => ['administer hardwoods jbrowse'],
  87. 'file' => 'includes/tripal_jbrowse_mgmt_tracks.form.inc',
  88. 'type' => MENU_LOCAL_ACTION,
  89. ];
  90. return $items;
  91. }
  92. /**
  93. * Implements hook_permission().
  94. */
  95. function tripal_jbrowse_mgmt_permission() {
  96. $items = [];
  97. $items['configure hardwoods jbrowse'] = [
  98. 'title' => t('Configure Hardwoods JBrowse'),
  99. ];
  100. $items['administer hardwoods jbrowse'] = [
  101. 'title' => t('Create, edit and delete JBrowse instances'),
  102. ];
  103. return $items;
  104. }