/templates/requests/common/add_samples.mako

https://bitbucket.org/cistrome/cistrome-harvard/ · Mako · 128 lines · 118 code · 8 blank · 2 comment · 8 complexity · 5e0eb095a25ac604f7033a208a699ea9 MD5 · raw file

  1. <%inherit file="/base.mako"/>
  2. <%namespace file="/message.mako" import="render_msg" />
  3. <%namespace file="/requests/common/common.mako" import="common_javascripts" />
  4. <%namespace file="/requests/common/common.mako" import="render_samples_grid" />
  5. <%namespace file="/requests/common/common.mako" import="render_request_type_sample_form_grids" />
  6. <%namespace file="/requests/common/common.mako" import="render_samples_messages" />
  7. <%def name="stylesheets()">
  8. ${parent.stylesheets()}
  9. ${h.css( "library" )}
  10. </%def>
  11. <%def name="javascripts()">
  12. ${parent.javascripts()}
  13. ${common_javascripts()}
  14. </%def>
  15. <%
  16. from galaxy.web.framework.helpers import time_ago
  17. is_admin = cntrller == 'requests_admin' and trans.user_is_admin()
  18. is_complete = request.is_complete
  19. is_submitted = request.is_submitted
  20. is_unsubmitted = request.is_unsubmitted
  21. if is_admin:
  22. can_add_samples = not is_complete
  23. else:
  24. can_add_samples = is_unsubmitted
  25. can_delete_samples = request.samples and not is_complete
  26. can_edit_samples = request.samples and ( is_admin or not is_complete )
  27. can_edit_request = ( is_admin and not request.is_complete ) or request.is_unsubmitted
  28. can_reject = is_admin and is_submitted
  29. can_submit = request.samples and is_unsubmitted
  30. %>
  31. <br/><br/>
  32. <ul class="manage-table-actions">
  33. %if can_edit_samples:
  34. <li><a class="action-button" href="${h.url_for( controller='requests_common', action='edit_samples', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}">Edit samples</a></li>
  35. %endif
  36. %if can_submit:
  37. <li><a class="action-button" confirm="More samples cannot be added to this request after it is submitted. Click OK to submit." href="${h.url_for( controller='requests_common', action='submit_request', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}">Submit request</a></li>
  38. %endif
  39. <li><a class="action-button" id="request-${request.id}-popup" class="menubutton">Request Actions</a></li>
  40. <div popupmenu="request-${request.id}-popup">
  41. <a class="action-button" href="${h.url_for( controller='requests_common', action='view_request', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}">Browse this request</a>
  42. %if can_edit_request:
  43. <a class="action-button" href="${h.url_for( controller='requests_common', action='edit_basic_request_info', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}">Edit this request</a>
  44. %endif
  45. <a class="action-button" href="${h.url_for( controller='requests_common', action='view_request_history', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}">View history</a>
  46. %if can_reject:
  47. <a class="action-button" href="${h.url_for( controller='requests_admin', action='reject_request', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}">Reject this request</a>
  48. %endif
  49. </div>
  50. </ul>
  51. ${render_samples_messages(request, is_admin, is_submitted, message, status)}
  52. <div class="toolFormBody">
  53. <form id="add_samples" name="add_samples" action="${h.url_for( controller='requests_common', action='add_samples', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}" method="post">
  54. %if displayable_sample_widgets:
  55. <%
  56. grid_header = '<h3>Add samples to sequencing request "%s"</h3>' % request.name
  57. %>
  58. ${render_samples_grid( cntrller, request, displayable_sample_widgets, action='edit_samples', adding_new_samples=True, encoded_selected_sample_ids=[], render_buttons=False, grid_header=grid_header )}
  59. <div class="toolParamHelp" style="clear: both;">
  60. For each sample, select the data library and folder in which you would like the run datasets deposited.
  61. To automatically run a workflow on run datastets, select a history first and then the desired workflow.
  62. </div>
  63. ## Render the other grids
  64. <% trans.sa_session.refresh( request.type.sample_form ) %>
  65. %for grid_index, grid_name in enumerate( request.type.sample_form.layout ):
  66. ${render_request_type_sample_form_grids( grid_index, grid_name, request.type.sample_form.grid_fields( grid_index ), displayable_sample_widgets=displayable_sample_widgets, show_saved_samples_read_only=True )}
  67. %endfor
  68. %else:
  69. <label>There are no samples.</label>
  70. %endif
  71. %if can_add_samples:
  72. ## The user is adding a new sample
  73. %if displayable_sample_widgets:
  74. <p/>
  75. <div class="form-row">
  76. <label> Copy <input type="text" name="num_sample_to_copy" value="1" size="3"/> samples from sample ${sample_copy_select_field.get_html()}</label>
  77. <div class="toolParamHelp" style="clear: both;">
  78. Select the sample from which the new sample should be copied or leave selection as <b>None</b> to add a new "generic" sample.
  79. </div>
  80. </div>
  81. %endif
  82. <p/>
  83. <div class="form-row">
  84. <input type="hidden" name="twill" value=""/>
  85. %if ( request.samples or displayable_sample_widgets ) and len( displayable_sample_widgets ) > len( request.samples ):
  86. <input type="submit" name="add_sample_button" value="Add sample" />
  87. <input type="submit" name="save_samples_button" value="Save"/>
  88. <input type="submit" name="cancel_changes_button" value="Cancel"/>
  89. <div class="toolParamHelp" style="clear: both;">
  90. Click the <b>Add sample</b> button for each new sample and click the <b>Save</b> button when you have finished adding samples.
  91. </div>
  92. %else:
  93. <input type="submit" name="add_sample_button" value="Add sample"/>
  94. <div class="toolParamHelp" style="clear: both;">
  95. Click the <b>Add sample</b> button for each new sample.
  96. </div>
  97. %endif
  98. </div>
  99. %endif
  100. </form>
  101. </div>
  102. %if is_unsubmitted:
  103. <p/>
  104. <h4><img src="/static/images/silk/resultset_next.png" alt="Hide" onclick="showContent(this);" style="cursor:pointer;"/>Import samples from csv file</h4>
  105. <div style="display:none;">
  106. <div class="toolFormBody">
  107. <form id="import" name="import" action="${h.url_for( controller='requests_common', action='add_samples', cntrller=cntrller, id=trans.security.encode_id( request.id ) )}" enctype="multipart/form-data" method="post" >
  108. <div class="form-row">
  109. <input type="file" name="file_data" />
  110. <input type="submit" name="import_samples_button" value="Import samples"/>
  111. <div class="toolParamHelp" style="clear: both;">
  112. The csv file must be in the following format.<br/>
  113. The [:FieldValue] is optional, the named form field will contain the value after the ':' if included.<br/>
  114. SampleName,DataLibraryName,FolderName,HistoryName,WorkflowName,Field1Name:Field1Value,Field2Name:Field2Value...
  115. </div>
  116. </div>
  117. </form>
  118. </div>
  119. </div>
  120. %endif