show.mustache 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. <%
  2. # Copyright (C) 2011 - present Instructure, Inc.
  3. #
  4. # This file is part of Canvas.
  5. #
  6. # Canvas is free software: you can redistribute it and/or modify it under
  7. # the terms of the GNU Affero General Public License as published by the Free
  8. # Software Foundation, version 3 of the License.
  9. #
  10. # Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
  11. # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  12. # A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
  13. # details.
  14. #
  15. # You should have received a copy of the GNU Affero General Public License along
  16. # with this program. If not, see <http://www.gnu.org/licenses/>.
  17. %>
  18. <%
  19. content_for :page_title, @assignment.new_record? ? t(:new_assignment, "New Assignment") : @assignment.title
  20. content_for :right_side, render(:partial => "assignment_sidebar")
  21. %>
  22. <% if @locked && !@locked[:can_view] %>
  23. <% js_bundle :module_sequence_footer %>
  24. <h1><%= @assignment.title %></h1>
  25. <%= @locked.is_a?(Hash) ? lock_explanation(@locked, 'assignment', @context) : t(:assignment_locked, "This assignment is currently locked.") %>
  26. <% else %>
  27. <%
  28. css_bundle :assignments
  29. js_bundle :assignment_show
  30. %>
  31. <% if @assignment.omit_from_final_grade %>
  32. <div class="alert alert-info omit-from-final-warning">
  33. {{#t}}This assignment does not count toward the final grade.{{/t}}
  34. </div>
  35. <% end %>
  36. <div id="assignment_show" class="assignment content_underline_links">
  37. <% if can_do(@context, @current_user, :read_as_admin) %>
  38. <div class='assignment-title'>
  39. <div class='title-content'>
  40. <h1 class="title">
  41. <%= @assignment.title %>
  42. </h1>
  43. </div>
  44. <div class='assignment-buttons'>
  45. <button
  46. id="assignment_publish_button"
  47. data-id='<%= @assignment.id %>'
  48. class='btn <%= "published" if @assignment.published? %> <%= "disabled" unless assignment_publishing_enabled?(@assignment, @current_user) %>'>
  49. </button>
  50. <% if can_do(@assignment, @current_user, :update) %>
  51. <a href="<%= edit_polymorphic_path([@context, @assignment]) %>" class='btn edit_assignment_link'>
  52. <i class='icon-edit'></i> {{#t}}Edit{{/t}}
  53. </a>
  54. <% end %>
  55. <%= assignment_submission_button(@assignment, @current_user, @current_user_submission) %>
  56. <% if @assignment.moderated_grading? && can_do(@context, @current_user, :moderate_grades) %>
  57. <a
  58. href='<%= course_assignment_moderate_url(@context, @assignment) %>'
  59. id="moderated_grading_button"
  60. class='Button'
  61. style='<%= "display:none" unless @assignment.published? %>'
  62. >
  63. {{#t}}Moderate{{/t}}
  64. </a>
  65. <% end %>
  66. <% if @assignment_menu_tools.present? %>
  67. <a class="al-trigger btn" role="button" aria-haspopup="true" aria-owns="toolbar-1" href="#">
  68. <i class="icon-settings"></i>
  69. <i class="icon-mini-arrow-down"></i>
  70. </a>
  71. <ul id="toolbar-1" class="al-options" role="menu" tabindex="0" aria-hidden="true" aria-expanded="false">
  72. <%= external_tools_menu_items(@assignment_menu_tools, {link_class: "menu_tool_link", settings_key: :assignment_menu, in_list: true, url_params: {:assignments => [@assignment.id]}}) %>
  73. </ul>
  74. <% end %>
  75. </div>
  76. </div>
  77. <% else %>
  78. <!--Student View-->
  79. <div class='assignment-title'>
  80. <div class='title-content'>
  81. <h1 class="title">
  82. <%= @assignment.title %>
  83. </h1>
  84. </div>
  85. <div class='assignment-buttons'>
  86. <span style="display: inline-block">
  87. <%= render "shared/mark_as_done" %>
  88. </span>
  89. <%= assignment_submission_button(@assignment, @current_user, @current_user_submission) %>
  90. </div>
  91. </div>
  92. <ul class='student-assignment-overview'>
  93. <li>
  94. <span class='title'><%= t :due_at, 'Due' %></span>
  95. <span class='value'>
  96. <span class="date_text">
  97. <% if @assignment.multiple_due_dates? %>
  98. <%= multiple_due_date_tooltip(@assignment, @current_user) %>
  99. <% elsif @assignment.due_at %>
  100. <% ot(:date_time_by, "%{date} by %{time}", :date => capture { %>
  101. <span class="display_date"><%= date_string(@assignment.due_at) rescue '' %></span><% }, :time => capture { %>
  102. <span class="display_time"><%= time_string(@assignment.due_at) rescue '' %></span><% }) %>
  103. <% else %>
  104. <%= t :no_due_date, 'No Due Date' %>
  105. <% end %>
  106. </span>
  107. </span>
  108. </li>
  109. <li>
  110. <span class='title'><%= t :points, 'Points' %></span>
  111. <span class='value'><%= n(round_if_whole(@assignment.points_possible)) || t(:no_points, 'None') %></span>
  112. </li>
  113. <% if @assignment.expects_submission? || @assignment.expects_external_submission? %>
  114. <% turnitin_text = turnitin_active? ? ' ' + t(:turnitin_enabled_short, '(Turnitin enabled)') : '' %>
  115. <% vericite_text = vericite_active? ? ' ' + t(:vericite_enabled_short, '(VeriCite enabled)') : '' %>
  116. <li>
  117. <span class='title'><%= t :submitting, 'Submitting' %></span>
  118. <span class='value'><%= @assignment.readable_submission_types + turnitin_text %></span>
  119. </li>
  120. <% if @assignment.submission_types =~ /online_upload/ && !@assignment.allowed_extensions.blank? -%>
  121. <li>
  122. <span class='title'><%= t :submission_types, 'File Types' %></span>
  123. <span class='value'><%= @assignment.allowed_extensions.to_sentence %></span>
  124. </li>
  125. <% end %>
  126. <% end %>
  127. {{> views/shared/available_dates}}
  128. <div class="clear"></div>
  129. </ul>
  130. <% end %>
  131. <div class="clear"></div>
  132. <% if @locked %>
  133. <%= @locked.is_a?(Hash) ? lock_explanation(@locked, 'assignment', @context) : t('messages.locked', "This assignment is currently locked.") %>
  134. <% end %>
  135. <div class="clear"></div>
  136. <% description = !@assignment.description.blank? ? public_user_content(@assignment.description) : t('defaults.no_content', "No Content") %>
  137. <div class="description user_content <%= can_do(@context, @current_user, :read_as_admin) ? "teacher-version" : "student-version" %>"><%= description %></div>
  138. <% if can_do(@context, @current_user, :read_as_admin) %>
  139. <!--Teacher view-->
  140. <form class="form-horizontal bootstrap-form display-only" style="margin-top:18px;">
  141. <fieldset>
  142. <div class="control-group">
  143. <div class="control-label">{{#t}}Points{{/t}}</div>
  144. <div class="controls">
  145. <span class="value points_possible"><%= n(round_if_whole(@assignment.points_possible)) || t(:no_points, 'None') %></span>
  146. </div>
  147. </div>
  148. <div class="control-group">
  149. <div class="control-label"><%= t :submitting, 'Submitting' %></div>
  150. <div class="controls">
  151. <span class="value"><%= @assignment.readable_submission_types || t(:no_submission, 'Nothing') %></span>
  152. </div>
  153. </div>
  154. <% if @assignment.submission_types =~ /online_upload/ && !@assignment.allowed_extensions.blank? -%>
  155. <div class="control-group">
  156. <div class="control-label"><%= t :submission_types, 'File Types' %></div>
  157. <div class="controls">
  158. <span class="value"><%= @assignment.allowed_extensions.to_sentence %></span>
  159. </div>
  160. </div>
  161. <% end -%>
  162. <% if turnitin_active? %>
  163. <div class="control-group">
  164. <div class="control-label"><%= t :turnitin, 'Turnitin' %></div>
  165. <div class="controls">
  166. <span class="value"><%= t :turnitin_enabled, 'Turnitin has been enabled for this assignment.' %></span>
  167. </div>
  168. </div>
  169. <% end %>
  170. <% if vericite_active? %>
  171. <div class="control-group">
  172. <div class="control-label"><%= t :vericite, 'VeriCite' %></div>
  173. <div class="controls">
  174. <span class="value"><%= t :vericite_enabled, 'VeriCite has been enabled for this assignment.' %></span>
  175. </div>
  176. </div>
  177. <% end %>
  178. </fieldset>
  179. </form>
  180. <table class="ic-Table assignment_dates">
  181. <thead>
  182. <tr>
  183. <th scope="col">{{#t}}Due{{/t}}</th>
  184. <th scope="col">{{#t}}For{{/t}}</th>
  185. <th scope="col">{{#t}}Available from{{/t}}</th>
  186. <th scope="col">{{#t}}Until{{/t}}</th>
  187. </tr>
  188. </thead>
  189. <%= render 'shared/override_list', :assignment => @assignment,
  190. :user => @current_user %>
  191. </table>
  192. <% if can_do(@assignment, @current_user, :update) %>
  193. <div class="content-box">
  194. <a
  195. href="<%= context_url(@context, :context_rubrics_url) %>"
  196. class="add_rubric_link Button icon-plus"
  197. style="<%= hidden if @assignment.rubric_association %>"
  198. role="button"
  199. >
  200. <span aria-hidden="true"><%= t 'links.add_rubric', "Rubric" %></span>
  201. </a>
  202. </div>
  203. <% end %>
  204. <div class="course_id" style="display: none;"><%= @context.id if @context && @context.is_a?(Course) %></div>
  205. <% end %>
  206. <div style="display: none;">
  207. <span class="timestamp"><%= @assignment.due_at.to_i %></span>
  208. <span class="due_date_string"><%= @assignment.due_at.strftime("%m/%d/%Y") rescue "" %></span>
  209. <span class="due_time_string"><%= @assignment.due_at.strftime("%I:%M%p").downcase rescue "" %></span>
  210. </div>
  211. </div>
  212. <% end %>
  213. <% if !@locked && can_do(@assignment, @current_user, :submit) %>
  214. {{> views/submit_assignment}}
  215. <% end %>
  216. <%= render partial: "shared/rubrics_component" %>