225 lines
8.3 KiB
HTML
225 lines
8.3 KiB
HTML
<%inherit file="base.html" />
|
|
<%! from django.core.urlresolvers import reverse %>
|
|
<%namespace name="units" file="widgets/units.html" />
|
|
<%block name="bodyclass">unit</%block>
|
|
<%block name="title">CMS Unit</%block>
|
|
<%block name="jsextra">
|
|
<script type='text/javascript'>
|
|
new CMS.Views.UnitEdit({
|
|
el: $('.main-wrapper'),
|
|
model: new CMS.Models.Module({
|
|
id: '${unit_location}',
|
|
state: '${unit_state}'
|
|
})
|
|
});
|
|
|
|
|
|
function setEditorTab(e) {
|
|
e.preventDefault();
|
|
$('.editor-tabs .current').removeClass('current');
|
|
$(this).addClass('current');
|
|
switch($(this).attr('data-tab')) {
|
|
case 'simple':
|
|
currentEditor = simpleEditor;
|
|
$(simpleEditor.getWrapperElement()).show();
|
|
$(xmlEditor.getWrapperElement()).hide();
|
|
$(simpleEditor).focus();
|
|
onSimpleEditorUpdate();
|
|
break;
|
|
case 'xml':
|
|
currentEditor = xmlEditor;
|
|
$(simpleEditor.getWrapperElement()).hide();
|
|
$(xmlEditor.getWrapperElement()).show();
|
|
$(xmlEditor).focus();
|
|
xmlEditor.refresh();
|
|
break;
|
|
case 'visual':
|
|
currentEditor = visualEditor;
|
|
convertHTMLToVisual();
|
|
$('table.mceToolbar').show();
|
|
$(htmlEditor.getWrapperElement()).hide();
|
|
break;
|
|
case 'html':
|
|
currentEditor = htmlEditor;
|
|
$('table.mceToolbar').hide();
|
|
$(htmlEditor.getWrapperElement()).show();
|
|
$(htmlEditor).focus();
|
|
convertVisualToHTML();
|
|
htmlEditor.refresh();
|
|
break;
|
|
}
|
|
}
|
|
</script>
|
|
|
|
|
|
<script type="text/template" id="simple-editor-cheatsheet">
|
|
<article class="simple-editor-cheatsheet">
|
|
<div class="cheatsheet-wrapper">
|
|
<div class="row">
|
|
<h6>Multiple Choice</h6>
|
|
<div class="col sample">
|
|
<img src="/static/img/choice-example.png" />
|
|
</div>
|
|
<div class="col">
|
|
<pre><code>( ) red
|
|
( ) green
|
|
(x) blue</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<h6>Multiple Check</h6>
|
|
<div class="col sample">
|
|
<img src="/static/img/multi-example.png" />
|
|
</div>
|
|
<div class="col">
|
|
<pre><code>[ ] earth
|
|
[ ] wind
|
|
[x] water</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<h6>String Response</h6>
|
|
<div class="col sample">
|
|
<img src="/static/img/string-example.png" />
|
|
</div>
|
|
<div class="col">
|
|
<pre><code>= dog</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<h6>Numerical Response</h6>
|
|
<div class="col sample">
|
|
<img src="/static/img/number-example.png" />
|
|
</div>
|
|
<div class="col">
|
|
<pre><code>= 3.14 +- 2%</code></pre>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<h6>Option Response</h6>
|
|
<div class="col sample">
|
|
<img src="/static/img/select-example.png" />
|
|
</div>
|
|
<div class="col">
|
|
<pre><code>[[wrong, (right)]]</code></pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</article>
|
|
</script>
|
|
|
|
<script type="text/template" id="component-actions">
|
|
<div class="component-actions">
|
|
<a href="#" class="edit-button"><span class="edit-icon white"></span>Edit</a>
|
|
<a href="#" class="delete-button"><span class="delete-icon white"></span>Delete</a>
|
|
</div>
|
|
<a href="#" class="drag-handle"></a>
|
|
</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 ${published_date}.
|
|
% endif
|
|
</p>
|
|
<a href="${published_preview_link}" target="_blank" class="alert-action secondary">Preview the published 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}" 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 in sorted(component_templates.keys()):
|
|
<li>
|
|
<a href="#" data-type="${type}">
|
|
<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()):
|
|
<div class="new-component-templates new-component-${type}">
|
|
<ul class="new-component-template">
|
|
% for name, location in templates:
|
|
<li>
|
|
<a href="#" data-location="${location}">
|
|
<span class="name">${name}</span>
|
|
</a>
|
|
</li>
|
|
%endfor
|
|
</ul>
|
|
<a href="#" class="cancel-button">Cancel</a>
|
|
</div>
|
|
% endfor
|
|
</li>
|
|
</ol>
|
|
</article>
|
|
</div>
|
|
|
|
<div class="sidebar">
|
|
<div class="unit-settings window">
|
|
<h4>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 <a href="#" class="create-draft">edit a draft</a>.</p>
|
|
<p class="publish-draft-message">This is a draft of the published unit. To update the live version, you must <a href="#" class="publish-draft">replace it with this draft</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:
|
|
on <strong>${release_date}</strong>
|
|
% endif
|
|
with the subsection <a href="${reverse('edit_subsection', kwargs={'location': subsection.location})}">"${subsection.display_name}"</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>Unit Location</h4>
|
|
<div class="window-contents">
|
|
<div><input type="text" class="url" value="/courseware/${section.url_name}/${subsection.url_name}" disabled /></div>
|
|
<ol>
|
|
<li>
|
|
<a href="#" class="section-item">${section.display_name}</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}</span></span>
|
|
</a>
|
|
${units.enum_units(subsection, actions=False, selected=unit.location)}
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</%block>
|