<%inherit file="base.html" /> <%! import logging from xmodule.util import date_utils from django.utils.translation import ugettext as _ from django.core.urlresolvers import reverse from xmodule.modulestore.django import loc_mapper %> <%block name="title">${_("Course Outline")}</%block> <%block name="bodyclass">is-signedin course view-outline</%block> <%namespace name='static' file='static_content.html'/> <%namespace name="units" file="widgets/units.html" /> <%block name="jsextra"> <link rel="stylesheet" type="text/css" href="${static.url('js/vendor/timepicker/jquery.timepicker.css')}" /> <link rel="stylesheet" type="text/css" href="${static.url('css/vendor/html5-input-polyfills/number-polyfill.css')}" /> <script type="text/template" id="section-name-edit-tpl"> <%static:include path="js/section-name-edit.underscore" /> </script> <script type="text/javascript"> require(["domReady!", "jquery", "js/models/location", "js/models/section", "js/views/section_show", "js/views/overview_assignment_grader", "js/collections/course_grader", "js/views/overview", "jquery.inputnumber"], function(doc, $, Location, SectionModel, SectionShowView, OverviewAssignmentGrader, CourseGraderCollection){ // TODO figure out whether these should be in window or someplace else or whether they're only needed as local vars // I believe that current (New Section/New Subsection) cause full page reloads which means these aren't needed globally // but we really should change that behavior. if (!window.graderTypes) { window.graderTypes = new CourseGraderCollection(${course_graders|n}, {parse:true}); } $(".gradable-status").each(function(index, ele) { var gradeView = new OverviewAssignmentGrader({ el : ele, graders : window.graderTypes }); }); $(".section-name").each(function() { var model = new SectionModel({ id: $(this).parent(".item-details").data("locator"), name: $(this).data("name") }); new SectionShowView({model: model, el: this}).render(); }) }); </script> </%block> <%block name="header_extras"> <script type="text/template" id="new-section-template"> <section class="courseware-section branch new-section"> <header> <a href="#" data-tooltip="${_('Collapse/expand this section')}" class="expand-collapse-icon collapse"></a> <div class="item-details"> <h3 class="section-name"> <form class="section-name-form"> <input type="text" value="${_('New Section Name')}" class="new-section-name" /> <input type="submit" class="new-section-name-save" data-parent="${parent_locator}" data-category="${new_section_category}" value="${_('Save')}" /> <input type="button" class="new-section-name-cancel" value="${_('Cancel')}" /></h3> </form> </div> </header> </section> </script> <script type="text/template" id="blank-slate-template"> <section class="courseware-section branch new-section"> <header> <a href="#" data-tooltip="${_('Collapse/expand this section')}" class="expand-collapse-icon collapse"></a> <div class="item-details"> <h3 class="section-name"> <span class="section-name-span">Click here to set the section name</span> <form class="section-name-form"> <input type="text" value="${_('New Section Name')}" class="new-section-name" /> <input type="submit" class="new-section-name-save" data-parent="${parent_locator}" data-category="${new_section_category}" value="${_('Save')}" /> <input type="button" class="new-section-name-cancel" value="$(_('Cancel')}" /></h3> </form> </div> <div class="item-actions"> <a href="#" data-tooltip="${_('Delete this section')}" class="delete-button delete-section-button"><span class="delete-icon"></span></a> <span data-tooltip="${_('Drag to re-order')}" class="drag-handle"></span> </div> </header> </section> </script> <script type="text/template" id="new-subsection-template"> <li class="branch collapsed"> <div class="section-item editing"> <form class="new-subsection-form"> <span class="folder-icon"></span> <span class="subsection-name"> <input type="text" value="${_('New Subsection')}" class="new-subsection-name-input" /> </span> <input type="submit" value="${_('Save')}" class="new-subsection-name-save" /> <input type="button" value="${_('Cancel')}" class="new-subsection-name-cancel" /> </form> </div> <ol> <li> <a href="unit.html" class="new-unit-item"> <span class="new-unit-icon"></span>${_('New Unit')} </a> </li> </ol> </li> </script> </%block> <%block name="content"> <div class="wrapper-mast wrapper"> <header class="mast has-actions has-subtitle"> <h1 class="page-header"> <small class="subtitle">${_("Content")}</small> <span class="sr">> </span>${_("Course Outline")} </h1> <nav class="nav-actions"> <h3 class="sr">${_("Page Actions")}</h3> <ul> <li class="nav-item"> <a href="#" class="toggle-button toggle-button-sections"><i class="icon-arrow-up"></i> <span class="label">${_("Collapse All Sections")}</span></a> </li> <li class="nav-item"> <a href="#" class="button new-button new-courseware-section-button"><i class="icon-plus"></i> ${_("New Section")}</a> </li> <li class="nav-item"> <a href="${lms_link}" rel="external" class="button view-button view-live-button">${_("View Live")}</a> </li> </ul> </nav> </header> </div> <div class="main-wrapper"> <div class="inner-wrapper"> <div class="wrapper-dnd"> <% course_locator = loc_mapper().translate_location( context_course.location.course_id, context_course.location, False, True ) %> <article class="courseware-overview" data-locator="${course_locator}"> % for section in sections: <% section_locator = loc_mapper().translate_location( context_course.location.course_id, section.location, False, True ) %> <section class="courseware-section branch is-draggable" data-parent="${course_locator}" data-locator="${section_locator}"> <%include file="widgets/_ui-dnd-indicator-before.html" /> <header> <a href="#" data-tooltip="${_('Expand/collapse this section')}" class="expand-collapse-icon collapse"></a> <div class="item-details" data-locator="${section_locator}"> <h3 class="section-name" data-name="${section.display_name_with_default | h}"></h3> <div class="section-published-date"> <% if section.start is not None: start_date_str = section.start.strftime('%m/%d/%Y') start_time_str = section.start.strftime('%H:%M') else: start_date_str = '' start_time_str = '' %> %if section.start is None: <span class="published-status">${_("This section has not been released.")}</span> <a href="#" class="schedule-button" data-date="" data-time="" data-locator="${section_locator}">${_("Schedule")}</a> %else: <span class="published-status"><strong>${_("Will Release:")}</strong> ${date_utils.get_default_time_display(section.start)}</span> <a href="#" class="edit-button" data-date="${start_date_str}" data-time="${start_time_str}" data-locator="${section_locator}">${_("Edit")}</a> %endif </div> </div> <div class="item-actions"> <a href="#" data-tooltip="${_('Delete this section')}" class="delete-button delete-section-button"><span class="delete-icon"></span></a> <span data-tooltip="${_('Drag to reorder')}" class="drag-handle section-drag-handle"></span> </div> </header> <div class="subsection-list"> <div class="list-header"> <a href="#" class="new-subsection-item" data-category="${new_subsection_category}"> <span class="new-folder-icon"></span>${_("New Subsection")} </a> </div> <ol class="sortable-subsection-list"> % for subsection in section.get_children(): <% subsection_locator = loc_mapper().translate_location( context_course.location.course_id, subsection.location, False, True ) %> <li class="courseware-subsection branch collapsed id-holder is-draggable" data-parent="${section_locator}" data-locator="${subsection_locator}"> <%include file="widgets/_ui-dnd-indicator-before.html" /> <div class="section-item"> <div class="details"> <a href="#" data-tooltip="${_('Expand/collapse this subsection')}" class="expand-collapse-icon expand"></a> <a href="${subsection_locator.url_reverse('subsection')}"> <span class="folder-icon"></span> <span class="subsection-name"><span class="subsection-name-value">${subsection.display_name_with_default}</span></span> </a> </div> <div class="gradable-status" data-initial-status="${subsection.format if subsection.format is not None else _('Not Graded')}"> </div> <div class="item-actions"> <a href="#" data-tooltip="${_('Delete this subsection')}" class="delete-button delete-subsection-button"><span class="delete-icon"></span></a> <span data-tooltip="${_('Drag to reorder')}" class="drag-handle subsection-drag-handle"></span> </div> </div> ${units.enum_units(subsection)} <%include file="widgets/_ui-dnd-indicator-after.html" /> </li> % endfor <li class="ui-splint ui-splint-indicator"> <%include file="widgets/_ui-dnd-indicator-initial.html" /> </li> </ol> </div> <%include file="widgets/_ui-dnd-indicator-after.html" /> </section> % endfor </article> </div> </div> </div> <footer></footer> <div class="edit-subsection-publish-settings showAsModal"> <div class="settings"> <h3>${_("Section Release Date")}</h3> <div class="picker datepair"> <div class="field field-start-date"> <label for="">${_("Release Day")}</label> <input class="start-date date" type="text" name="start_date" value="" placeholder="MM/DD/YYYY" class="date" size='15' autocomplete="off"/> </div> <div class="field field-start-time"> <label for="">${_("Release Time")} (<abbr title="${_("Coordinated Universal Time")}">UTC</abbr>)</label> <input class="start-time time" type="text" name="start_time" value="" placeholder="HH:MM" class="time" size='10' autocomplete="off"/> </div> <div class="description"> <p>${_('On the date set above, this section - {name} - will be released to students. Any units marked private will only be visible to admins.').format(name='<strong class="section-name"></strong>')}</p> </div> </div> <a href="#" class="save-button">${_("Save")}</a><a href="#" class="cancel-button">${_("Cancel")}</a> </div> </div> </%block>