Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
3a15f935
Commit
3a15f935
authored
May 20, 2013
by
Vik Paruchuri
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Render proper templates when user clicks on editor buttons
parent
9a700647
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
92 deletions
+13
-92
common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee
+13
-63
common/lib/xmodule/xmodule/templates/combinedopenended/default.yaml
+0
-29
No files found.
common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee
View file @
3a15f935
class
@
OpenEndedMarkdownEditingDescriptor
extends
XModule
.
Descriptor
# TODO really, these templates should come from or also feed the cheatsheet
@
multipleChoiceTemplate
:
"( ) incorrect
\n
( ) incorrect
\n
(x) correct
\n
"
@
checkboxChoiceTemplate
:
"[x] correct
\n
[ ] incorrect
\n
[x] correct
\n
"
@
stringInputTemplate
:
"= answer
\n
"
@
numberInputTemplate
:
"= answer +- x%
\n
"
@
selectTemplate
:
"[[incorrect, (correct), incorrect]]
\n
"
@
headerTemplate
:
"Header
\n
=====
\n
"
@
explanationTemplate
:
"[explanation]
\n
Short explanation
\n
[explanation]
\n
"
@
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
"
@
promptTemplate
:
"[prompt]
\n
Why is the sky blue?
\n
[prompt]
\n
"
constructor
:
(
element
)
->
@
element
=
element
...
...
@@ -49,7 +45,7 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor
onShowXMLButton
:
(
e
)
=>
e
.
preventDefault
();
if
@
confirmConversionToXml
()
@
createXMLEditor
(
MarkdownEditingDescriptor
.
markdownToXml
(
@
markdown_editor
.
getValue
()))
@
createXMLEditor
(
OpenEnded
MarkdownEditingDescriptor
.
markdownToXml
(
@
markdown_editor
.
getValue
()))
# Need to refresh to get line numbers to display properly (and put cursor position to 0)
@
xml_editor
.
setCursor
(
0
)
@
xml_editor
.
refresh
()
...
...
@@ -72,13 +68,9 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor
selection
=
@
markdown_editor
.
getSelection
()
revisedSelection
=
null
switch
$
(
e
.
currentTarget
).
attr
(
'class'
)
when
"multiple-choice-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertMultipleChoice
(
selection
)
when
"string-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertStringInput
(
selection
)
when
"number-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertNumberInput
(
selection
)
when
"checks-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertCheckboxChoice
(
selection
)
when
"dropdown-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertSelect
(
selection
)
when
"header-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertHeader
(
selection
)
when
"explanation-button"
then
revisedSelection
=
MarkdownEditingDescriptor
.
insertExplanation
(
selection
)
when
"rubric-button"
then
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertRubric
(
selection
)
when
"prompt-button"
then
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertPrompt
(
selection
)
when
"tasks-button"
then
revisedSelection
=
OpenEndedMarkdownEditingDescriptor
.
insertTasks
(
selection
)
else
# ignore click
if
revisedSelection
!=
null
...
...
@@ -128,46 +120,14 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor
markdown
:
null
}
@
insert
MultipleChoice
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericChoice
(
selectedText
,
'('
,
')'
,
MarkdownEditingDescriptor
.
multipleChoice
Template
)
@
insert
Rubric
:
(
selectedText
)
->
return
OpenEndedMarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'('
,
')'
,
OpenEndedMarkdownEditingDescriptor
.
rubric
Template
)
@
insert
CheckboxChoice
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericChoice
(
selectedText
,
'['
,
']'
,
MarkdownEditingDescriptor
.
checkboxChoice
Template
)
@
insert
Prompt
:
(
selectedText
)
->
return
OpenEndedMarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'['
,
']'
,
OpenEndedMarkdownEditingDescriptor
.
prompt
Template
)
@
insertGenericChoice
:
(
selectedText
,
choiceStart
,
choiceEnd
,
template
)
->
if
selectedText
.
length
>
0
# Replace adjacent newlines with a single newline, strip any trailing newline
cleanSelectedText
=
selectedText
.
replace
(
/\n+/g
,
'
\n
'
).
replace
(
/\n$/
,
''
)
lines
=
cleanSelectedText
.
split
(
'
\n
'
)
revisedLines
=
''
for
line
in
lines
revisedLines
+=
choiceStart
# a stand alone x before other text implies that this option is "correct"
if
/^\s*x\s+(\S)/i
.
test
(
line
)
# Remove the x and any initial whitespace as long as there's more text on the line
line
=
line
.
replace
(
/^\s*x\s+(\S)/i
,
'$1'
)
revisedLines
+=
'x'
else
revisedLines
+=
' '
revisedLines
+=
choiceEnd
+
' '
+
line
+
'
\n
'
return
revisedLines
else
return
template
@
insertStringInput
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'= '
,
''
,
MarkdownEditingDescriptor
.
stringInputTemplate
)
@
insertNumberInput
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'= '
,
''
,
MarkdownEditingDescriptor
.
numberInputTemplate
)
@
insertSelect
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'[['
,
']]'
,
MarkdownEditingDescriptor
.
selectTemplate
)
@
insertHeader
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
''
,
'
\n
====
\n
'
,
MarkdownEditingDescriptor
.
headerTemplate
)
@
insertExplanation
:
(
selectedText
)
->
return
MarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'[explanation]
\n
'
,
'
\n
[explanation]'
,
MarkdownEditingDescriptor
.
explanationTemplate
)
@
insertTasks
:
(
selectedText
)
->
return
OpenEndedMarkdownEditingDescriptor
.
insertGenericInput
(
selectedText
,
'= '
,
''
,
OpenEndedMarkdownEditingDescriptor
.
tasksTemplate
)
@
insertGenericInput
:
(
selectedText
,
lineStart
,
lineEnd
,
template
)
->
if
selectedText
.
length
>
0
...
...
@@ -176,16 +136,6 @@ class @OpenEndedMarkdownEditingDescriptor extends XModule.Descriptor
else
return
template
# We may wish to add insertHeader. Here is Tom's code.
# function makeHeader() {
# var selection = simpleEditor.getSelection();
# var revisedSelection = selection + '\n';
# for(var i = 0; i < selection.length; i++) {
#revisedSelection += '=';
# }
# simpleEditor.replaceSelection(revisedSelection);
#}
#
@
markdownToXml
:
(
markdown
)
->
toXml
=
`
function
(
markdown
)
{
var
xml
=
markdown
;
...
...
common/lib/xmodule/xmodule/templates/combinedopenended/default.yaml
View file @
3a15f935
...
...
@@ -10,35 +10,6 @@ metadata:
markdown
:
"
"
data
:
|
<combinedopenended>
<rubric>
<rubric>
<category>
<description>Category 1</description>
<option>
The response does not incorporate what is needed for a one response.
</option>
<option>
The response is correct for category 1.
</option>
</category>
</rubric>
</rubric>
<prompt>
<p>Why is the sky blue?</p>
</prompt>
<task>
<selfassessment/>
</task>
<task>
<openended min_score_to_attempt="1" max_score_to_attempt="2">
<openendedparam>
<initial_display>Enter essay here.</initial_display>
<answer_display>This is the answer.</answer_display>
<grader_payload>{"grader_settings" : "peer_grading.conf", "problem_id" : "700x/Demo"}</grader_payload>
</openendedparam>
</openended>
</task>
</combinedopenended>
children
:
[]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment