From bc10d080df9dfc2669f3e5e1bd8c6c8e09cefb63 Mon Sep 17 00:00:00 2001 From: cahrens Date: Tue, 8 Jan 2013 13:39:16 -0500 Subject: [PATCH] Save work --- cms/static/js/speed-editor.js | 8 ++- cms/templates/widgets/problem-edit.html | 58 ++++++++++++++++++- .../xmodule/js/src/problem/edit.coffee | 26 +++++++++ 3 files changed, 89 insertions(+), 3 deletions(-) diff --git a/cms/static/js/speed-editor.js b/cms/static/js/speed-editor.js index 9ff7c0248e..eec4341b6a 100644 --- a/cms/static/js/speed-editor.js +++ b/cms/static/js/speed-editor.js @@ -13,7 +13,9 @@ var commandDown; (function() { $body.on('click', '.editor-bar a', onEditorButton); $body.on('click', '.cheatsheet-toggle', toggleCheatsheet); +// NOTE: we are showing metadata in the standard way, not in an "Advanced" section below. $body.on('click', '.problem-settings-button', toggleProblemSettings); +// NOTE: not doing keybindings at this time. $(document).bind('keyup', onKeyboard); })(); @@ -21,7 +23,7 @@ function initProblemEditors($editor, $prev) { $currentEditor = $editor; simpleEditor = CodeMirror.fromTextArea($editor.find('.edit-box')[0], { lineWrapping: true, -// TODO: I left out the extra keys for now. +// NOTE: keybindings have been left out at this point. Needs further work. extraKeys: { 'Ctrl-N': newUnit, 'Ctrl-H': makeHeader, @@ -44,13 +46,15 @@ function initProblemEditors($editor, $prev) { currentEditor = simpleEditor; +// NOTE: I left out setting the background color. Does not appear necessary. $(simpleEditor.getWrapperElement()).css('background', '#fff'); $(xmlEditor.getWrapperElement()).css({ 'background': '#fff' }).hide(); -// TODO: is this necessary?? +// NOTE: I left this out, doesn't seem to be necessary. $(simpleEditor.getWrapperElement()).bind('click', setFocus); +// NOTE: we are not supporting preview at this time. $preview = $prev.find('.problem'); } diff --git a/cms/templates/widgets/problem-edit.html b/cms/templates/widgets/problem-edit.html index f6baae4d2d..7e7db57bfc 100644 --- a/cms/templates/widgets/problem-edit.html +++ b/cms/templates/widgets/problem-edit.html @@ -25,4 +25,60 @@ %endif - + + + diff --git a/common/lib/xmodule/xmodule/js/src/problem/edit.coffee b/common/lib/xmodule/xmodule/js/src/problem/edit.coffee index a52ebaebbd..486d080a1e 100644 --- a/common/lib/xmodule/xmodule/js/src/problem/edit.coffee +++ b/common/lib/xmodule/xmodule/js/src/problem/edit.coffee @@ -8,6 +8,7 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor constructor: (element) -> $body.on('click', '.editor-tabs .tab', @changeEditor) $body.on('click', '.editor-bar a', @onToolbarButton); + $body.on('click', '.cheatsheet-toggle', @toggleCheatsheet); @xml_editor = CodeMirror.fromTextArea($(".xml-box", element)[0], { mode: "xml" @@ -51,6 +52,15 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor @markdown_editor.replaceSelection(revisedSelection) @markdown_editor.focus() + toggleCheatsheet: (e) => + e.preventDefault(); + +# TODO: don't base off of current_editor + if !$(@current_editor.getWrapperElement()).find('.simple-editor-cheatsheet')[0] + @cheatsheet = $($('#simple-editor-cheatsheet').html()) + $(@current_editor.getWrapperElement()).append(@cheatsheet) + + setTimeout (=> @cheatsheet.toggleClass('shown')), 10 setCurrentEditor: (editor) -> $(@current_editor.getWrapperElement()).hide() @@ -61,6 +71,7 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor save: -> $body.off('click', '.editor-tabs .tab', @changeEditor) $body.off('click', '.editor-bar a', @onToolbarButton); + $body.off('click', '.cheatsheet-toggle', @toggleCheatsheet); data: @xml_editor.getValue() @insertMultipleChoice: (selectedText) -> @@ -111,6 +122,21 @@ class @MarkdownEditingDescriptor extends XModule.Descriptor else return template +# We may wish to add insertHeader and insertVideo. 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); +#} +# +#function makeVideo() { +#var selection = simpleEditor.getSelection(); +#simpleEditor.replaceSelection('{{video ' + selection + '}}'); +#} +# @markdownToXml: (markdown)-> toXml = `function(markdown) { var xml = markdown;