186 lines
6.6 KiB
HTML
186 lines
6.6 KiB
HTML
<%inherit file="/main.html" />
|
|
<%namespace name='static' file='/static_content.html'/>
|
|
<%block name="bodyclass">courseware ${course.css_class}</%block>
|
|
<%block name="title"><title>${course.number} Courseware</title></%block>
|
|
|
|
<%block name="headextra">
|
|
<%static:css group='course'/>
|
|
<%include file="../discussion/_js_head_dependencies.html" />
|
|
</%block>
|
|
|
|
<%block name="js_extra">
|
|
<script type="text/javascript" src="${static.url('js/vendor/jquery.scrollTo-1.4.2-min.js')}"></script>
|
|
<script type="text/javascript" src="${static.url('js/vendor/flot/jquery.flot.js')}"></script>
|
|
|
|
## codemirror
|
|
<script type="text/javascript" src="${static.url('js/vendor/codemirror-compressed.js')}"></script>
|
|
|
|
## alternate codemirror
|
|
## <script type="text/javascript" src="${static.url('js/vendor/CodeMirror-2.25/lib/codemirror.js')}"></script>
|
|
## <script type="text/javascript" src="${static.url('js/vendor/CodeMirror-2.25/mode/xml/xml.js')}"></script>
|
|
## <script type="text/javascript" src="${static.url('js/vendor/CodeMirror-2.25/mode/python/python.js')}"></script>
|
|
|
|
|
|
<%static:js group='courseware'/>
|
|
<%static:js group='discussion'/>
|
|
|
|
<%include file="../discussion/_js_body_dependencies.html" />
|
|
% if staff_access:
|
|
<%include file="xqa_interface.html"/>
|
|
% endif
|
|
|
|
<!-- TODO: http://docs.jquery.com/Plugins/Validation -->
|
|
<script type="text/javascript">
|
|
document.write('\x3Cscript type="text/javascript" src="' +
|
|
document.location.protocol + '//www.youtube.com/iframe_api">\x3C/script>');
|
|
</script>
|
|
|
|
<script type="text/javascript">
|
|
var $$course_id = "${course.id}";
|
|
|
|
$(function(){
|
|
$(".ui-accordion-header a, .ui-accordion-content .subtitle").each(function() {
|
|
var elemText = $(this).text().replace(/^\s+|\s+$/g,''); // Strip leading and trailing whitespace
|
|
var wordArray = elemText.split(" ");
|
|
var finalTitle = "";
|
|
if (wordArray.length > 0) {
|
|
for (i=0;i<=wordArray.length-1;i++) {
|
|
finalTitle += wordArray[i];
|
|
if (i == (wordArray.length-2)) {
|
|
finalTitle += " ";
|
|
} else if (i == (wordArray.length-1)) {
|
|
// Do nothing
|
|
} else {
|
|
finalTitle += " ";
|
|
}
|
|
}
|
|
}
|
|
$(this).html(finalTitle);
|
|
});
|
|
});
|
|
</script>
|
|
|
|
% if timer_expiration_duration:
|
|
<script type="text/javascript">
|
|
var timer = {
|
|
timer_inst : null,
|
|
end_time : null,
|
|
get_remaining_secs : function(endTime) {
|
|
var currentTime = new Date();
|
|
var remaining_secs = Math.floor((endTime - currentTime)/1000);
|
|
return remaining_secs;
|
|
},
|
|
get_time_string : function() {
|
|
function pretty_time_string(num) {
|
|
return ( num < 10 ? "0" : "" ) + num;
|
|
}
|
|
// count down in terms of hours, minutes, and seconds:
|
|
var hours = pretty_time_string(Math.floor(remaining_secs / 3600));
|
|
remaining_secs = remaining_secs % 3600;
|
|
var minutes = pretty_time_string(Math.floor(remaining_secs / 60));
|
|
remaining_secs = remaining_secs % 60;
|
|
var seconds = pretty_time_string(Math.floor(remaining_secs));
|
|
|
|
var remainingTimeString = hours + ":" + minutes + ":" + seconds;
|
|
return remainingTimeString;
|
|
},
|
|
update_time : function(self) {
|
|
remaining_secs = self.get_remaining_secs(self.end_time);
|
|
if (remaining_secs <= 0) {
|
|
self.end(self);
|
|
}
|
|
$('#exam_timer').text(self.get_time_string(remaining_secs));
|
|
},
|
|
start : function() { var that = this;
|
|
// set the end time when the template is rendered.
|
|
// This value should be UTC time as number of milliseconds since epoch.
|
|
this.end_time = new Date((new Date()).getTime() + ${timer_expiration_duration});
|
|
this.timer_inst = setInterval(function(){ that.update_time(that); }, 1000);
|
|
},
|
|
end : function(self) {
|
|
clearInterval(self.timer_inst);
|
|
// redirect to specified URL:
|
|
window.location = "${time_expired_redirect_url}";
|
|
}
|
|
}
|
|
// start timer right away:
|
|
timer.start();
|
|
</script>
|
|
% endif
|
|
|
|
</%block>
|
|
|
|
% if timer_expiration_duration:
|
|
<div class="timer-main">
|
|
<div id="timer_wrapper">
|
|
% if timer_navigation_return_url:
|
|
<a href="${timer_navigation_return_url}" class="timer_return_url">Return to Exam</a>
|
|
% endif
|
|
<div class="timer_label">Time Remaining:</div> <div id="exam_timer" class="timer_value"> </div>
|
|
</div>
|
|
</div>
|
|
% endif
|
|
|
|
% if accordion:
|
|
<%include file="/courseware/course_navigation.html" args="active_page='courseware'" />
|
|
% endif
|
|
|
|
<section class="container">
|
|
<div class="course-wrapper">
|
|
|
|
% if accordion:
|
|
<section aria-label="Course Navigation" class="course-index">
|
|
<header id="open_close_accordion">
|
|
<a href="#">close</a>
|
|
</header>
|
|
|
|
<div id="accordion" style="display: none">
|
|
<nav>
|
|
${accordion}
|
|
</nav>
|
|
</div>
|
|
</section>
|
|
% endif
|
|
|
|
<section class="course-content">
|
|
${content}
|
|
</section>
|
|
</div>
|
|
</section>
|
|
|
|
|
|
% if course.show_calculator:
|
|
<div class="calc-main">
|
|
<a aria-label="Open Calculator" href="#" class="calc">Calculator</a>
|
|
|
|
<div id="calculator_wrapper">
|
|
<form id="calculator">
|
|
<div class="input-wrapper">
|
|
<input type="text" id="calculator_input" title="Calculator Input Field" />
|
|
|
|
<div class="help-wrapper">
|
|
<a href="#">Hints</a>
|
|
<dl class="help">
|
|
<dt>Suffixes:</dt>
|
|
<dd> %kMGTcmunp</dd>
|
|
<dt>Operations:</dt>
|
|
<dd>^ * / + - ()</dd>
|
|
<dt>Functions:</dt>
|
|
<dd>sin, cos, tan, sqrt, log10, log2, ln, arccos, arcsin, arctan, abs </dd>
|
|
<dt>Constants</dt>
|
|
<dd>e, pi</dd>
|
|
|
|
<!-- Students won't know what parallel means at this time. Complex numbers aren't well tested in the courseware, so we would prefer to not expose them. If you read the comments in the source, feel free to use them. If you run into a bug, please let us know. But we can't officially support them right now.
|
|
|
|
<dt>Unsupported:</dt> <dd>||, j </dd> -->
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<input id="calculator_button" type="submit" title="Calculate" value="="/>
|
|
<input type="text" id="calculator_output" title="Calculator Output Field" readonly />
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
% endif
|