/templates/webapps/community/repository/view_repository.mako

https://bitbucket.org/cistrome/cistrome-harvard/ · Mako · 269 lines · 262 code · 7 blank · 0 comment · 7 complexity · f401a4c1393db3ab179501671016c85f MD5 · raw file

  1. <%inherit file="/base.mako"/>
  2. <%namespace file="/message.mako" import="render_msg" />
  3. <%namespace file="/webapps/community/common/common.mako" import="*" />
  4. <%namespace file="/webapps/community/repository/common.mako" import="*" />
  5. <%
  6. from galaxy.web.framework.helpers import time_ago
  7. is_new = repository.is_new
  8. can_contact_owner = trans.user and trans.user != repository.user
  9. can_push = trans.app.security_agent.can_push( trans.user, repository )
  10. can_rate = not is_new and trans.user and repository.user != trans.user
  11. can_upload = can_push
  12. can_download = not is_new and ( not is_malicious or can_push )
  13. can_browse_contents = not is_new
  14. can_view_change_log = not is_new
  15. if can_push:
  16. browse_label = 'Browse or delete repository files'
  17. else:
  18. browse_label = 'Browse repository files'
  19. %>
  20. <%!
  21. def inherit(context):
  22. if context.get('use_panels'):
  23. return '/webapps/community/base_panels.mako'
  24. else:
  25. return '/base.mako'
  26. %>
  27. <%inherit file="${inherit(context)}"/>
  28. <%def name="stylesheets()">
  29. ${parent.stylesheets()}
  30. ${h.css( "jquery.rating" )}
  31. <style type="text/css">
  32. ul.fileBrowser,
  33. ul.toolFile {
  34. margin-left: 0;
  35. padding-left: 0;
  36. list-style: none;
  37. }
  38. ul.fileBrowser {
  39. margin-left: 20px;
  40. }
  41. .fileBrowser li,
  42. .toolFile li {
  43. padding-left: 20px;
  44. background-repeat: no-repeat;
  45. background-position: 0;
  46. min-height: 20px;
  47. }
  48. .toolFile li {
  49. background-image: url( ${h.url_for( '/static/images/silk/page_white_compressed.png' )} );
  50. }
  51. .fileBrowser li {
  52. background-image: url( ${h.url_for( '/static/images/silk/page_white.png' )} );
  53. }
  54. </style>
  55. </%def>
  56. <%def name="javascripts()">
  57. ${parent.javascripts()}
  58. ${h.js( "jquery.rating" )}
  59. ${common_javascripts(repository)}
  60. </%def>
  61. <br/><br/>
  62. <ul class="manage-table-actions">
  63. %if is_new and can_upload:
  64. <li><a class="action-button" href="${h.url_for( controller='upload', action='upload', repository_id=trans.security.encode_id( repository.id ), webapp='community' )}">Upload files to repository</a></li>
  65. %else:
  66. <li><a class="action-button" id="repository-${repository.id}-popup" class="menubutton">Repository Actions</a></li>
  67. <div popupmenu="repository-${repository.id}-popup">
  68. %if can_upload:
  69. <a class="action-button" href="${h.url_for( controller='upload', action='upload', repository_id=trans.security.encode_id( repository.id ), webapp='community' )}">Upload files to repository</a>
  70. %endif
  71. %if can_view_change_log:
  72. <a class="action-button" href="${h.url_for( controller='repository', action='view_changelog', id=trans.app.security.encode_id( repository.id ) )}">View change log</a>
  73. %endif
  74. %if can_rate:
  75. <a class="action-button" href="${h.url_for( controller='repository', action='rate_repository', id=trans.app.security.encode_id( repository.id ) )}">Rate repository</a>
  76. %endif
  77. %if can_browse_contents:
  78. <a class="action-button" href="${h.url_for( controller='repository', action='browse_repository', id=trans.app.security.encode_id( repository.id ) )}">${browse_label}</a>
  79. %endif
  80. %if can_contact_owner:
  81. <a class="action-button" href="${h.url_for( controller='repository', action='contact_owner', id=trans.security.encode_id( repository.id ), webapp='community' )}">Contact repository owner</a>
  82. %endif
  83. %if can_download:
  84. <a class="action-button" href="${h.url_for( controller='repository', action='download', repository_id=trans.app.security.encode_id( repository.id ), changeset_revision=changeset_revision, file_type='gz' )}">Download as a .tar.gz file</a>
  85. <a class="action-button" href="${h.url_for( controller='repository', action='download', repository_id=trans.app.security.encode_id( repository.id ), changeset_revision=changeset_revision, file_type='bz2' )}">Download as a .tar.bz2 file</a>
  86. <a class="action-button" href="${h.url_for( controller='repository', action='download', repository_id=trans.app.security.encode_id( repository.id ), changeset_revision=changeset_revision, file_type='zip' )}">Download as a zip file</a>
  87. %endif
  88. </div>
  89. %endif
  90. </ul>
  91. %if message:
  92. ${render_msg( message, status )}
  93. %endif
  94. %if len( changeset_revision_select_field.options ) > 1:
  95. <div class="toolForm">
  96. <div class="toolFormTitle">Repository revision</div>
  97. <div class="toolFormBody">
  98. <form name="change_revision" id="change_revision" action="${h.url_for( controller='repository', action='view_repository', id=trans.security.encode_id( repository.id ) )}" method="post" >
  99. <div class="form-row">
  100. <%
  101. if changeset_revision == repository.tip:
  102. tip_str = 'repository tip'
  103. else:
  104. tip_str = ''
  105. %>
  106. ${changeset_revision_select_field.get_html()} <i>${tip_str}</i>
  107. <div class="toolParamHelp" style="clear: both;">
  108. Select a revision to inspect and download versions of tools from this repository.
  109. </div>
  110. </div>
  111. </form>
  112. </div>
  113. </div>
  114. <p/>
  115. %endif
  116. <div class="toolForm">
  117. <div class="toolFormTitle">${repository.name}</div>
  118. <div class="toolFormBody">
  119. %if can_download:
  120. <div class="form-row">
  121. <label>Clone this repository:</label>
  122. ${render_clone_str( repository )}
  123. </div>
  124. %endif
  125. <div class="form-row">
  126. <label>Name:</label>
  127. %if can_browse_contents:
  128. <a href="${h.url_for( controller='repository', action='browse_repository', id=trans.app.security.encode_id( repository.id ) )}">${repository.name}</a>
  129. %else:
  130. ${repository.name}
  131. %endif
  132. </div>
  133. <div class="form-row">
  134. <label>Synopsis:</label>
  135. ${repository.description}
  136. </div>
  137. %if repository.long_description:
  138. <div class="form-row">
  139. <label>Detailed description:</label>
  140. <pre>${repository.long_description}</pre>
  141. <div style="clear: both"></div>
  142. </div>
  143. %endif
  144. <div class="form-row">
  145. <label>Revision:</label>
  146. %if can_view_change_log:
  147. <a href="${h.url_for( controller='repository', action='view_changelog', id=trans.app.security.encode_id( repository.id ) )}">${revision_label}</a>
  148. %else:
  149. ${revision_label}
  150. %endif
  151. </div>
  152. <div class="form-row">
  153. <label>Owner:</label>
  154. ${repository.user.username}
  155. </div>
  156. <div class="form-row">
  157. <label>Times downloaded:</label>
  158. ${repository.times_downloaded}
  159. </div>
  160. %if trans.user_is_admin():
  161. <div class="form-row">
  162. <label>Location:</label>
  163. ${repository.repo_path}
  164. </div>
  165. <div class="form-row">
  166. <label>Deleted:</label>
  167. ${repository.deleted}
  168. </div>
  169. %endif
  170. </div>
  171. </div>
  172. ${render_repository_tools_and_workflows( metadata )}
  173. %if repository.categories:
  174. <p/>
  175. <div class="toolForm">
  176. <div class="toolFormTitle">Categories</div>
  177. <div class="toolFormBody">
  178. %for rca in repository.categories:
  179. <div class="form-row">
  180. ${rca.category.name}
  181. </div>
  182. %endfor
  183. <div style="clear: both"></div>
  184. </div>
  185. </div>
  186. %endif
  187. %if trans.user and trans.app.config.smtp_server:
  188. <p/>
  189. <div class="toolForm">
  190. <div class="toolFormTitle">Notification on update</div>
  191. <div class="toolFormBody">
  192. <form name="receive_email_alerts" id="receive_email_alerts" action="${h.url_for( controller='repository', action='view_repository', id=trans.security.encode_id( repository.id ) )}" method="post" >
  193. <div class="form-row">
  194. <label>Receive email alerts:</label>
  195. ${alerts_check_box.get_html()}
  196. <div class="toolParamHelp" style="clear: both;">
  197. Check the box and click <b>Save</b> to receive email alerts when updates to this repository occur.
  198. </div>
  199. </div>
  200. <div class="form-row">
  201. <input type="submit" name="receive_email_alerts_button" value="Save"/>
  202. </div>
  203. </form>
  204. </div>
  205. </div>
  206. %endif
  207. %if repository.ratings:
  208. <p/>
  209. <div class="toolForm">
  210. <div class="toolFormTitle">Rating</div>
  211. <div class="toolFormBody">
  212. <div class="form-row">
  213. <label>Times Rated:</label>
  214. ${num_ratings}
  215. <div style="clear: both"></div>
  216. </div>
  217. <div class="form-row">
  218. <label>Average Rating:</label>
  219. ${render_star_rating( 'avg_rating', avg_rating, disabled=True )}
  220. <div style="clear: both"></div>
  221. </div>
  222. </div>
  223. </div>
  224. <p/>
  225. <div class="toolForm">
  226. <div class="toolFormBody">
  227. %if display_reviews:
  228. <div class="form-row">
  229. <a href="${h.url_for( controller='repository', action='view_repository', id=trans.security.encode_id( repository.id ), display_reviews=False )}"><label>Hide Reviews</label></a>
  230. </div>
  231. <table class="grid">
  232. <thead>
  233. <tr>
  234. <th>Rating</th>
  235. <th>Comments</th>
  236. <th>Reviewed</th>
  237. <th>User</th>
  238. </tr>
  239. </thead>
  240. <% count = 0 %>
  241. %for review in repository.ratings:
  242. <%
  243. count += 1
  244. name = 'rating%d' % count
  245. %>
  246. <tr>
  247. <td>${render_star_rating( name, review.rating, disabled=True )}</td>
  248. <td><pre>${review.comment}</pre></td>
  249. <td>${time_ago( review.update_time )}</td>
  250. <td>${review.user.username}</td>
  251. </tr>
  252. %endfor
  253. </table>
  254. %else:
  255. <div class="form-row">
  256. <a href="${h.url_for( controller='repository', action='view_repository', id=trans.security.encode_id( repository.id ), display_reviews=True )}"><label>Display Reviews</label></a>
  257. </div>
  258. %endif
  259. </div>
  260. </div>
  261. %endif
  262. <p/>