diff --git a/common/lib/capa/capa/templates/filesubmission.html b/common/lib/capa/capa/templates/filesubmission.html
index e9fd7c5674..630a3222dc 100644
--- a/common/lib/capa/capa/templates/filesubmission.html
+++ b/common/lib/capa/capa/templates/filesubmission.html
@@ -1,17 +1,18 @@
-
+
% if state == 'unsubmitted':
-
+
Unanswered
% elif state == 'correct':
-
+
Correct
% elif state == 'incorrect':
-
+
Incorrect
% elif state == 'queued':
-
+
Queued
${queue_len}
% endif
-
(${state})
-
-
${msg|n}
-
+
${state}
+
+
+
+ ${msg|n}
diff --git a/common/lib/capa/capa/templates/textbox.html b/common/lib/capa/capa/templates/textbox.html
index 19c43482a8..271d7795e0 100644
--- a/common/lib/capa/capa/templates/textbox.html
+++ b/common/lib/capa/capa/templates/textbox.html
@@ -7,26 +7,28 @@
- % if state == 'unsubmitted':
-
- % elif state == 'correct':
-
- % elif state == 'incorrect':
-
- % elif state == 'queued':
-
- ${queue_len}
- % endif
- % if hidden:
-
- % endif
-
- (${state})
-
- ${msg|n}
-
+
+ % if state == 'unsubmitted':
+
Unanswered
+ % elif state == 'correct':
+
Correct
+ % elif state == 'incorrect':
+
Incorrect
+ % elif state == 'queued':
+
Queued
+
${queue_len}
+ % endif
-
+ % if hidden:
+
+ % endif
+
+
${state}
+
+
+
+ ${msg|n}
+
-
diff --git a/common/lib/xmodule/xmodule/css/capa/display.scss b/common/lib/xmodule/xmodule/css/capa/display.scss
index e6ebdb316f..a368167448 100644
--- a/common/lib/xmodule/xmodule/css/capa/display.scss
+++ b/common/lib/xmodule/xmodule/css/capa/display.scss
@@ -16,6 +16,7 @@ h2 {
}
}
+
section.problem {
@media print {
display: block;
@@ -171,8 +172,54 @@ section.problem {
top: 6px;
}
}
+
+ .grader-status {
+ padding: 9px;
+ background: #F6F6F6;
+ border: 1px solid #ddd;
+ border-top: 0;
+ margin-bottom: 20px;
+ @include clearfix;
+
+ span {
+ text-indent: -9999px;
+ overflow: hidden;
+ display: block;
+ float: left;
+ margin: -7px 7px 0 0;
+ }
+
+ p {
+ line-height: 20px;
+ text-transform: capitalize;
+ margin-bottom: 0;
+ float: left;
+ }
+
+ &.file {
+ background: #FFF;
+ margin-top: 20px;
+ padding: 20px 0 0 0;
+
+ border: {
+ top: 1px solid #eee;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+
+ p.debug {
+ display: none;
+ }
+
+ input {
+ float: left;
+ }
+ }
+ }
}
+
ul {
list-style: disc outside none;
margin-bottom: lh();
@@ -246,6 +293,69 @@ section.problem {
}
+ code {
+ margin: 0 2px;
+ padding: 0px 5px;
+ white-space: nowrap;
+ border: 1px solid #EAEAEA;
+ background-color: #F8F8F8;
+ @include border-radius(3px);
+ font-size: .9em;
+ }
+
+ pre {
+ background-color: #F8F8F8;
+ border: 1px solid #CCC;
+ font-size: .9em;
+ line-height: 1.4;
+ overflow: auto;
+ padding: 6px 10px;
+ @include border-radius(3px);
+
+ > code {
+ margin: 0;
+ padding: 0;
+ white-space: pre;
+ border: none;
+ background: transparent;
+ }
+ }
+
+ .CodeMirror {
+ border: 1px solid black;
+ font-size: 14px;
+ line-height: 18px;
+ resize: both;
+
+ pre {
+ @include border-radius(0);
+ border-radius: 0;
+ border-width: 0;
+ margin: 0;
+ padding: 0;
+ background: transparent;
+ font-family: inherit;
+ font-size: inherit;
+ white-space: pre;
+ word-wrap: normal;
+ overflow: hidden;
+ resize: none;
+
+ &.CodeMirror-cursor {
+ z-index: 10;
+ position: absolute;
+ visibility: hidden;
+ border-left: 1px solid black;
+ border-right: none;
+ width: 0;
+ }
+ }
+ }
+
+ .CodeMirror-focused pre.CodeMirror-cursor {
+ visibility: visible;
+ }
+
hr {
background: #ddd;
border: none;
@@ -280,4 +390,96 @@ section.problem {
@extend .blue-button;
}
}
+
+ div.capa_alert {
+ padding: 8px 12px;
+ border: 1px solid #EBE8BF;
+ border-radius: 3px;
+ background: #FFFCDD;
+ font-size: 0.9em;
+ margin-top: 10px;
+ }
+
+ .hints {
+ border: 1px solid #ccc;
+
+ h3 {
+ border-bottom: 1px solid #e3e3e3;
+ text-shadow: 0 1px 0 #fff;
+ padding: 9px;
+ background: #eee;
+ font-weight: bold;
+ font-size: em(16);
+ }
+
+ div {
+ border-bottom: 1px solid #ddd;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ p {
+ margin-bottom: 0;
+ }
+
+ header {
+ a {
+ display: block;
+ padding: 9px;
+ background: #F6F6F6;
+ @include box-shadow(inset 0 0 0 1px #fff);
+ }
+ }
+
+ section {
+ padding: 9px;
+ }
+ }
+ }
+
+ .test {
+ padding-top: 18px;
+
+ header {
+ margin-bottom: 12px;
+
+ h3 {
+ font-size: 0.9em;
+ font-weight: bold;
+ font-style: normal;
+ text-transform: uppercase;
+ color: #AAA;
+ }
+ }
+
+ > section {
+ border: 1px solid #ddd;
+ padding: 9px 9px 20px;
+ margin-bottom: 10px;
+ background: #FFF;
+ position: relative;
+ @include box-shadow(inset 0 0 0 1px #eee);
+ @include border-radius(3px);
+
+ p:last-of-type {
+ margin-bottom: 0;
+ }
+
+ .shortform {
+ margin-bottom: .6em;
+ }
+
+ a.full {
+ @include position(absolute, 0 0 1px 0px);
+ font-size: .8em;
+ padding: 4px;
+ text-align: right;
+ width: 100%;
+ display: block;
+ background: #F3F3F3;
+ @include box-sizing(border-box);
+ }
+ }
+ }
}
diff --git a/common/lib/xmodule/xmodule/js/src/capa/display.coffee b/common/lib/xmodule/xmodule/js/src/capa/display.coffee
index 0ea6cffb58..098b79d9cf 100644
--- a/common/lib/xmodule/xmodule/js/src/capa/display.coffee
+++ b/common/lib/xmodule/xmodule/js/src/capa/display.coffee
@@ -263,8 +263,8 @@ class @Problem
@el.find('.capa_alert').remove()
alert_elem = "" + msg + "
"
@el.find('.action').after(alert_elem)
- @el.find('.capa_alert').animate(opacity: 0, 500).animate(opacity: 1, 500)
-
+ @el.find('.capa_alert').css(opacity: 0).animate(opacity: 1, 700)
+
save: =>
Logger.log 'problem_save', @answers
$.postWithPrefix "#{@url}/problem_save", @answers, (response) =>
diff --git a/lms/templates/problem.html b/lms/templates/problem.html
index ed49b3bd5d..65b8193df9 100644
--- a/lms/templates/problem.html
+++ b/lms/templates/problem.html
@@ -32,3 +32,27 @@
+<%block name="js_extra">
+
+%block>