201 lines
9.1 KiB
HTML
201 lines
9.1 KiB
HTML
<%! from django.utils.translation import ugettext as _ %>
|
|
<%inherit file="base.html" />
|
|
<%! from django.core.urlresolvers import reverse %>
|
|
<%namespace name="units" file="widgets/units.html" />
|
|
<%block name="title">${_("Individual Unit")}</%block>
|
|
<%block name="bodyclass">is-signedin course unit</%block>
|
|
|
|
<%block name="jsextra">
|
|
<script type='text/javascript'>
|
|
$(document).ready(function() {
|
|
new CMS.Views.UnitEdit({
|
|
el: $('.main-wrapper'),
|
|
model: new CMS.Models.Module({
|
|
id: '${unit_location}',
|
|
state: '${unit_state}'
|
|
})
|
|
});
|
|
|
|
$(document).ready(function() {
|
|
|
|
// tabs
|
|
$('.tab-group').tabs();
|
|
});
|
|
|
|
$('.new-component-template').each(function(){
|
|
$emptyEditor = $(this).find('.empty');
|
|
$(this).prepend($emptyEditor);
|
|
});
|
|
});
|
|
|
|
var unit_location_analytics = '${unit_location}';
|
|
</script>
|
|
|
|
</%block>
|
|
<%block name="content">
|
|
<div class="main-wrapper edit-state-${unit_state}" data-id="${unit_location}">
|
|
<div class="inner-wrapper">
|
|
<div class="alert editing-draft-alert">
|
|
<p class="alert-message"><strong>${_("You are editing a draft.")}</strong>
|
|
% if published_date:
|
|
${_("This unit was originally published on {date}.").format(date=published_date)}
|
|
% endif
|
|
</p>
|
|
<a href="${published_preview_link}" target="_blank" class="alert-action secondary">${_("View the Live Version")}</a>
|
|
</div>
|
|
<div class="main-column">
|
|
<article class="unit-body window">
|
|
<p class="unit-name-input"><label>${_("Display Name:")}</label><input type="text" value="${unit.display_name_with_default | h}" class="unit-display-name-input" /></p>
|
|
<ol class="components">
|
|
% for id in components:
|
|
<li class="component" data-id="${id}"/>
|
|
% endfor
|
|
<li class="new-component-item adding">
|
|
<div class="new-component">
|
|
<h5>${_("Add New Component")}</h5>
|
|
<ul class="new-component-type">
|
|
% for type, templates in sorted(component_templates.items()):
|
|
<li>
|
|
% if type == 'advanced' or len(templates) > 1:
|
|
<a href="#" class="multiple-templates" data-type="${type}">
|
|
% else:
|
|
% for __, category, __, __ in templates:
|
|
<a href="#" class="single-template" data-type="${type}" data-category="${category}">
|
|
% endfor
|
|
% endif
|
|
<span class="large-template-icon large-${type}-icon"></span>
|
|
<span class="name">${type}</span>
|
|
</a>
|
|
</li>
|
|
% endfor
|
|
</ul>
|
|
</div>
|
|
% for type, templates in sorted(component_templates.items()):
|
|
% if len(templates) > 1 or type == 'advanced':
|
|
<div class="new-component-templates new-component-${type}">
|
|
% if type == "problem":
|
|
<div class="tab-group tabs">
|
|
<ul class="problem-type-tabs nav-tabs">
|
|
<li class="current">
|
|
<a class="link-tab" href="#tab1">${_("Common Problem Types")}</a>
|
|
</li>
|
|
<li>
|
|
<a class="link-tab" href="#tab2">${_("Advanced")}</a>
|
|
</li>
|
|
</ul>
|
|
% endif
|
|
<div class="tab current" id="tab1">
|
|
<ul class="new-component-template">
|
|
% for name, category, has_markdown, boilerplate_name in sorted(templates):
|
|
% if has_markdown or type != "problem":
|
|
% if boilerplate_name is None:
|
|
<li class="editor-md empty">
|
|
<a href="#" data-category="${category}">
|
|
<span class="name">${name}</span>
|
|
</a>
|
|
</li>
|
|
|
|
% else:
|
|
<li class="editor-md">
|
|
<a href="#" data-category="${category}"
|
|
data-boilerplate="${boilerplate_name}">
|
|
<span class="name">${name}</span>
|
|
</a>
|
|
</li>
|
|
% endif
|
|
% endif
|
|
|
|
%endfor
|
|
</ul>
|
|
</div>
|
|
% if type == "problem":
|
|
<div class="tab" id="tab2">
|
|
<ul class="new-component-template">
|
|
% for name, category, has_markdown, boilerplate_name in sorted(templates):
|
|
% if not has_markdown:
|
|
<li class="editor-manual">
|
|
<a href="#" data-category="${category}"
|
|
data-boilerplate="${boilerplate_name}">
|
|
<span class="name">${name}</span>
|
|
</a>
|
|
</li>
|
|
% endif
|
|
% endfor
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
% endif
|
|
<a href="#" class="cancel-button">Cancel</a>
|
|
</div>
|
|
% endif
|
|
% endfor
|
|
</li>
|
|
</ol>
|
|
</article>
|
|
</div>
|
|
|
|
<div class="sidebar">
|
|
<div class="unit-settings window">
|
|
<h4 class="header">${_("Unit Settings")}</h4>
|
|
<div class="window-contents">
|
|
<div class="row visibility">
|
|
<label class="inline-label">${_("Visibility:")}</label>
|
|
<select class='visibility-select'>
|
|
<option value="public">${_("Public")}</option>
|
|
<option value="private">${_("Private")}</option>
|
|
</select>
|
|
</div>
|
|
<div class="row published-alert">
|
|
<p class="edit-draft-message">${_('This unit has been published. To make changes, you must {link_start}edit a draft{link_end}.').format(link_start='<a href="#" class="create-draft">', link_end='</a>')}</p>
|
|
<p class="publish-draft-message">${_('This is a draft of the published unit. To update the live version, you must {link_start}replace it with this draft{link_end}.').format(link_start='<a href="#" class="publish-draft">', link_end='</a>')}</p>
|
|
</div>
|
|
<div class="row status">
|
|
<p>${_("This unit is scheduled to be released to <strong>students</strong>")}
|
|
% if release_date is not None:
|
|
${_(u"on {date}").format(date=u"<strong>{}</strong>".format(release_date))}
|
|
% endif
|
|
${_("with the subsection {link_start}{name}{link_end}").format(
|
|
name=subsection.display_name_with_default,
|
|
link_start='<a href="{url}">'.format(url=reverse('edit_subsection', kwargs={'location': subsection.location})),
|
|
link_end='</a>',
|
|
)}
|
|
</p>
|
|
</div>
|
|
<div class="row unit-actions">
|
|
<a href="#" class="delete-draft delete-button">${_("Delete Draft")}</a>
|
|
<a href="${draft_preview_link}" target="_blank" class="preview-button">${_("Preview")}</a>
|
|
<a href="${published_preview_link}" target="_blank" class="view-button">${_("View Live")}</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="window unit-location">
|
|
<h4 class="header">${_("Unit Location")}</h4>
|
|
<div class="window-contents">
|
|
<div class="row wrapper-unit-id">
|
|
<p class="unit-id">
|
|
<span class="label">${_("Unit Identifier:")}</span>
|
|
<input type="text" class="url value" value="${unit.location.name}" disabled />
|
|
</p>
|
|
</div>
|
|
<ol>
|
|
<li>
|
|
<a href="${reverse('course_index', kwargs=dict(org=context_course.location.org, course=context_course.location.course, name=context_course.location.name))}" class="section-item">${section.display_name_with_default}</a>
|
|
<ol>
|
|
<li>
|
|
<a href="${reverse('edit_subsection', args=[subsection.location])}" class="section-item">
|
|
<span class="folder-icon"></span>
|
|
<span class="subsection-name"><span class="subsection-name-value">${subsection.display_name_with_default}</span></span>
|
|
</a>
|
|
${units.enum_units(subsection, actions=False, selected=unit.location)}
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</%block>
|