diff --git a/cms/static/js/views/modals/edit_xblock.js b/cms/static/js/views/modals/edit_xblock.js index 0e5e83fbefa5d5f9750621160a5f6dd167bba2f8..f8f5cef52bc5fc8cd3c50885e959943696a0ecc3 100644 --- a/cms/static/js/views/modals/edit_xblock.js +++ b/cms/static/js/views/modals/edit_xblock.js @@ -135,13 +135,14 @@ define(["jquery", "underscore", "gettext", "js/views/modals/base_modal", var parent = $(event.target.parentElement), mode = parent.data('mode'); event.preventDefault(); + this.selectMode(mode); var $cheatsheet = $('.simple-editor-cheatsheet'); - if ($cheatsheet.hasClass("shown")) { - $(".CodeMirror").removeAttr("style"); - $(".modal-content").removeAttr("style"); - $cheatsheet.removeClass('shown'); + if ($cheatsheet.length == 0){ + $cheatsheet = $('.simple-editor-open-ended-cheatsheet'); } - this.selectMode(mode); + $(".CodeMirror").css({"overflow": "none"}); + $(".modal-content").removeAttr("style"); + $cheatsheet.removeClass('shown'); }, selectMode: function(mode) { diff --git a/common/lib/xmodule/xmodule/js/spec/combinedopenended/edit_spec.coffee b/common/lib/xmodule/xmodule/js/spec/combinedopenended/edit_spec.coffee index d859a59ddaefb135de6d5f5fe5005a572e33fc87..cb1efd5a9425ed298d71a4f77dd06d73321316a6 100644 --- a/common/lib/xmodule/xmodule/js/spec/combinedopenended/edit_spec.coffee +++ b/common/lib/xmodule/xmodule/js/spec/combinedopenended/edit_spec.coffee @@ -20,6 +20,18 @@ describe 'OpenEndedMarkdownEditingDescriptor', -> expect(saveResult.nullout).toEqual(['markdown']) expect(saveResult.data).toEqual('xml only') + describe 'advanced editor opens correctly', -> + it 'click on advanced editor should work', -> + loadFixtures 'combinedopenended-with-markdown.html' + @descriptor = new OpenEndedMarkdownEditingDescriptor($('.combinedopenended-editor')) + spyOn(@descriptor, 'confirmConversionToXml').andReturn(true) + expect(@descriptor.confirmConversionToXml).not.toHaveBeenCalled() + e = jasmine.createSpyObj('e', [ 'preventDefault' ]) + @descriptor.onShowXMLButton(e) + expect(e.preventDefault).toHaveBeenCalled() + expect(@descriptor.confirmConversionToXml).toHaveBeenCalled() + expect($('.editor-bar').length).toEqual(0) + describe 'insertPrompt', -> it 'inserts the template if selection is empty', -> revisedSelection = OpenEndedMarkdownEditingDescriptor.insertPrompt('') diff --git a/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee b/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee index e1bdb1e6e0f17a814bd7621ca9ffe2e257d87188..f59a36baf92c24de64b6835abe7ea888f39c9e23 100644 --- a/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee +++ b/common/lib/xmodule/xmodule/js/spec/problem/edit_spec.coffee @@ -20,6 +20,18 @@ describe 'MarkdownEditingDescriptor', -> expect(saveResult.nullout).toEqual(['markdown']) expect(saveResult.data).toEqual('xml only') + describe 'advanced editor opens correctly', -> + it 'click on advanced editor should work', -> + loadFixtures 'problem-with-markdown.html' + @descriptor = new MarkdownEditingDescriptor($('.problem-editor')) + spyOn(@descriptor, 'confirmConversionToXml').andReturn(true) + expect(@descriptor.confirmConversionToXml).not.toHaveBeenCalled() + e = jasmine.createSpyObj('e', [ 'preventDefault' ]) + @descriptor.onShowXMLButton(e) + expect(e.preventDefault).toHaveBeenCalled() + expect(@descriptor.confirmConversionToXml).toHaveBeenCalled() + expect($('.editor-bar').length).toEqual(0) + describe 'insertMultipleChoice', -> it 'inserts the template if selection is empty', -> revisedSelection = MarkdownEditingDescriptor.insertMultipleChoice('') diff --git a/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee b/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee index 80efa37fdf356e3351d28b08af5e8c44942fbd27..9434fa7e0201e118eaf5d609284bf33833088e71 100644 --- a/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee +++ b/common/lib/xmodule/xmodule/js/src/combinedopenended/edit.coffee @@ -87,6 +87,8 @@ Write a persuasive essay to a newspaper reflecting your views on censorship in l ### onShowXMLButton: (e) => e.preventDefault(); + if @cheatsheet != undefined + @addRemoveCheatsheetCSS() if @confirmConversionToXml() @createXMLEditor(OpenEndedMarkdownEditingDescriptor.markdownToXml(@markdown_editor.getValue())) # Need to refresh to get line numbers to display properly (and put cursor position to 0) @@ -131,8 +133,23 @@ Write a persuasive essay to a newspaper reflecting your views on censorship in l @cheatsheet = $($('#simple-editor-open-ended-cheatsheet').html()) $(@markdown_editor.getWrapperElement()).append(@cheatsheet) + @addRemoveCheatsheetCSS() + setTimeout (=> @cheatsheet.toggleClass('shown')), 10 + + ### + Function to add/remove CSS for cheatsheet. + ### + addRemoveCheatsheetCSS: () => + if !@cheatsheet.hasClass("shown") + $(".CodeMirror").css({"overflow": "visible"}) + $(".modal-content").css({"overflow-y": "visible", "overflow-x": "visible"}) + else + $(".CodeMirror").css({"overflow": ""}) + $(".modal-content").removeAttr("style") + + ### Stores the current editor and hides the one that is not displayed. ###