tripal_stock-secondary_tables.inc 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?php
  2. // $Id$
  3. function tripal_stock_back_to_stock_button($form_state, $nid) {
  4. $form = array();
  5. $form['nid'] = array(
  6. '#type' => 'hidden',
  7. '#value' => $nid
  8. );
  9. $form["submit-back"] = array(
  10. '#type' => 'submit',
  11. '#value' => t('Back to Stock')
  12. );
  13. return $form;
  14. }
  15. function tripal_stock_back_to_stock_button_submit($form, $form_state) {
  16. drupal_goto('node/'.$form_state['values']['nid']);
  17. }
  18. function tripal_stock_add_chado_properties_progress($current) {
  19. $value = '<div class="form_progress"><div class="form_progress-text">';
  20. if ($current == 'main') { $value .= '<span id="form-step-current">Create Basic Stock</span>'; }
  21. else { $value .= '<span id="form-step">Create Basic Stock</span>'; }
  22. $value .= '<span id="form-segway"> >> </span>';
  23. if ($current == 'properties') { $value .= '<span id="form-step-current">Add Synonyms & Properties</span>'; }
  24. else { $value .= '<span id="form-step">Add Synonyms & Properties</span>'; }
  25. $value .= '<span id="form-segway"> >> </span>';
  26. if ($current == 'db_references') { $value .= '<span id="form-step-current">Add Database References</span>'; }
  27. else { $value .= '<span id="form-step">Add Database References</span>'; }
  28. $value .= '<span id="form-segway"> >> </span>';
  29. if ($current == 'relationships') { $value .= '<span id="form-step-current">Add Relationships</span>'; }
  30. else { $value .= '<span id="form-step">Add Relationships</span>'; }
  31. $value .= '</div></div>';
  32. return $value;
  33. }
  34. function tripal_stock_add_chado_properties_navigate($form_state, $step, $nid) {
  35. $form = array();
  36. $form['current_step'] = array(
  37. '#type' => 'hidden',
  38. '#value' => $step
  39. );
  40. // Use this field to set all the steps and the path to each form
  41. // where each step is of the form name;path and each step is separated by ::
  42. $steps =array(
  43. 'properties' => 'node/%node/properties',
  44. 'db_references' => 'node/%node/db_references',
  45. 'relationships' => 'node/%node/relationships'
  46. );
  47. $steps_value = array();
  48. foreach ($steps as $k => $v) { $steps_value[] = $k.';'.$v; }
  49. $form['steps'] = array(
  50. '#type' => 'hidden',
  51. '#value' => implode('::', $steps_value)
  52. );
  53. $form['first_step'] = array(
  54. '#type' => 'hidden',
  55. '#value' => 'properties'
  56. );
  57. $form['last_step'] = array(
  58. '#type' => 'hidden',
  59. '#value' => 'relationships'
  60. );
  61. $form['nid'] = array(
  62. '#type' => 'hidden',
  63. '#value' => $nid
  64. );
  65. if ($step != $form['first_step']['#value']) {
  66. $form['submit-prev'] = array(
  67. '#type' => 'submit',
  68. '#value' => t('Previous Step')
  69. );
  70. }
  71. if ($step != $form['last_step']['#value']) {
  72. $form['submit-next'] = array(
  73. '#type' => 'submit',
  74. '#value' => t('Next Step')
  75. );
  76. }
  77. if ($step == $form['last_step']['#value']) {
  78. $form['submit-finish'] = array(
  79. '#type' => 'submit',
  80. '#value' => t('Finish')
  81. );
  82. }
  83. return $form;
  84. }
  85. function tripal_stock_add_chado_properties_navigate_submit($form, $form_state) {
  86. $raw_steps = preg_split('/::/', $form_state['values']['steps']);
  87. $steps = array();
  88. $current_index = 'EMPTY';
  89. $i=0;
  90. foreach ($raw_steps as $raw_step) {
  91. $step = preg_split('/;/', $raw_step);
  92. $steps[$i] = $step;
  93. if ($step[0] == $form_state['values']['current_step']) {
  94. $current_index = $i;
  95. }
  96. $i++;
  97. }
  98. $num_steps = $i;
  99. if (strcmp($current_index,'EMPTY') == 0) {
  100. // No Matching Step
  101. drupal_set_message('Could not determine next step -'.$form_state['values']['current_step'].', please contact the administrator', 'error');
  102. } elseif ($current_index == 0) {
  103. $next_goto = $steps[$current_index+1][1];
  104. } elseif ($current_index == ($num_steps-1)) {
  105. $prev_goto = $steps[$current_index-1][1];
  106. $next_goto = 'node/%node';
  107. } else {
  108. $prev_goto = $steps[$current_index-1][1];
  109. $next_goto = $steps[$current_index+1][1];
  110. }
  111. if ($form_state['clicked_button']['#value'] == t('Previous Step') ) {
  112. //replace %node
  113. $prev_goto = preg_replace('/%node/', $form_state['values']['nid'], $prev_goto);
  114. $_REQUEST['destination'] = $prev_goto;
  115. } elseif ($form_state['clicked_button']['#value'] == t('Next Step') ) {
  116. $next_goto = preg_replace('/%node/', $form_state['values']['nid'], $next_goto);
  117. $_REQUEST['destination'] = $next_goto;
  118. } elseif ($form_state['clicked_button']['#value'] == t('Finish') ) {
  119. $next_goto = preg_replace('/%node/', $form_state['values']['nid'], $next_goto);
  120. $_REQUEST['destination'] = $next_goto;
  121. }
  122. }
  123. /*************************************************************************************************************
  124. * Implements Hook_form()
  125. * Handles setting the is_obsolete property of stocks
  126. */
  127. function tripal_stock_is_obsolete_form($node, $stock_id) {
  128. $form['make_obsolete'] = array(
  129. '#type' => 'submit',
  130. '#value' => t('Mark Stock as Obsolete')
  131. );
  132. $form['make_obsolete_stock_id'] = array(
  133. '#type' => 'value',
  134. '#value' => $stock_id,
  135. '#required' => TRUE
  136. );
  137. return $form;
  138. }
  139. function tripal_stock_is_obsolete_form_submit($form, &$form_state) {
  140. $previous_db = tripal_db_set_active('chado');
  141. db_query(
  142. "UPDATE stock SET is_obsolete='t' WHERE stock_id=%d",
  143. $form_state['values']['make_obsolete_stock_id']
  144. );
  145. tripal_db_set_active($previous_db);
  146. }