From 986999c62edecbe28e51a68dec3c59329e46d032 Mon Sep 17 00:00:00 2001 From: Vik Paruchuri Date: Mon, 20 May 2013 09:50:15 -0400 Subject: [PATCH] Fix cheatsheet, start working on xml replacement --- cms/templates/widgets/open-ended-edit.html | 18 +++-- .../js/src/combinedopenended/edit.coffee | 71 +++++++------------ 2 files changed, 38 insertions(+), 51 deletions(-) diff --git a/cms/templates/widgets/open-ended-edit.html b/cms/templates/widgets/open-ended-edit.html index b59e6f7068..f6aababa8c 100644 --- a/cms/templates/widgets/open-ended-edit.html +++ b/cms/templates/widgets/open-ended-edit.html @@ -41,7 +41,7 @@
-
[explanation] A short explanation of the answer. [explanation]
+
[prompt]Why is the sky blue?[prompt]
@@ -49,9 +49,17 @@
-
( ) red
-                    ( ) green
-                    (x) blue
+

+                    [rubric]
+                    + Color Identification
+                    - Incorrect
+                    - Correct
+                    + Grammar
+                    - Poor
+                    - Acceptable
+                    - Superb
+                    [rubric]
+                
@@ -59,7 +67,7 @@
-
[[wrong, (right)]]
+
[tasks](Self), ({0,1}AI), ({1,3}Peer)[tasks]
diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee index bccac80570..31944a0217 100644 --- a/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee +++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee @@ -1,7 +1,7 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor # TODO really, these templates should come from or also feed the cheatsheet - @rubricTemplate : "+ Color Identification\n- Incorrect\n- Correct\n + Grammar\n- Poor\n- Acceptable\n- Superb \n" - @tasksTemplate: "[[Self, {0,1}AI, {1,3}Peer]]\n" + @rubricTemplate : "[rubric]\n+ Color Identification\n- Incorrect\n- Correct\n + Grammar\n- Poor\n- Acceptable\n- Superb \n[rubric]\n" + @tasksTemplate: "[tasks]\n(Self), ({0,1}AI), ({1,3}Peer)\n[tasks]\n" @promptTemplate: "[prompt]\nWhy is the sky blue?\n[prompt]\n" constructor: (element) -> @@ -108,26 +108,26 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor @element.off('click', '.format-buttons a', @onToolbarButton) @element.off('click', '.cheatsheet-toggle', @toggleCheatsheet) if @current_editor == @markdown_editor - { - data: MarkdownEditingDescriptor.markdownToXml(@markdown_editor.getValue()) - metadata: - markdown: @markdown_editor.getValue() - } + { + data: MarkdownEditingDescriptor.markdownToXml(@markdown_editor.getValue()) + metadata: + markdown: @markdown_editor.getValue() + } else - { - data: @xml_editor.getValue() - metadata: - markdown: null - } + { + data: @xml_editor.getValue() + metadata: + markdown: null + } @insertRubric: (selectedText) -> - return OpenEndedMarkdownEditingDescriptor.insertGenericInput(selectedText, '(', ')', OpenEndedMarkdownEditingDescriptor.rubricTemplate) + return OpenEndedMarkdownEditingDescriptor.insertGenericInput(selectedText, '[rubric]', '[rubric]', OpenEndedMarkdownEditingDescriptor.rubricTemplate) @insertPrompt: (selectedText) -> - return OpenEndedMarkdownEditingDescriptor.insertGenericInput(selectedText, '[', ']', OpenEndedMarkdownEditingDescriptor.promptTemplate) + return OpenEndedMarkdownEditingDescriptor.insertGenericInput(selectedText, '[prompt]', '[prompt]', OpenEndedMarkdownEditingDescriptor.promptTemplate) @insertTasks: (selectedText) -> - return OpenEndedMarkdownEditingDescriptor.insertGenericInput(selectedText, '= ', '', OpenEndedMarkdownEditingDescriptor.tasksTemplate) + return OpenEndedMarkdownEditingDescriptor.insertGenericInput(selectedText, '[tasks]', '[tasks]', OpenEndedMarkdownEditingDescriptor.tasksTemplate) @insertGenericInput: (selectedText, lineStart, lineEnd, template) -> if selectedText.length > 0 @@ -140,12 +140,8 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor toXml = `function(markdown) { var xml = markdown; - // replace headers - xml = xml.replace(/(^.*?$)(?=\n\=\=+$)/gm, '

$1

'); - xml = xml.replace(/\n^\=\=+$/gm, ''); - - // group multiple choice answers - xml = xml.replace(/(^\s*\(.?\).*?$\n*)+/gm, function(match, p) { + // group rubrics + xml = xml.replace(/\[rubric\]\n?([^\]]*)\[\/?rubric\]/gmi, function(match, p) { var groupString = '\n'; groupString += ' \n'; var options = match.split('\n'); @@ -213,37 +209,20 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor selectString += '\n\n'; return selectString; }); - - // replace explanations - xml = xml.replace(/\[explanation\]\n?([^\]]*)\[\/?explanation\]/gmi, function(match, p1) { - var selectString = '\n
\nExplanation\n\n' + p1 + '\n
\n
'; + + // replace prompts + xml = xml.replace(/\[prompt\]\n?([^\]]*)\[\/?prompt\]/gmi, function(match, p1) { + var selectString = '\n' + p1 + '\n'; return selectString; }); - // split scripts and wrap paragraphs - var splits = xml.split(/(\<\/?script.*?\>)/g); - var scriptFlag = false; - for(var i = 0; i < splits.length; i++) { - if(/\