From 998af82baa859fb924b264dfa7b122ef0d8e8eb3 Mon Sep 17 00:00:00 2001 From: Waheed Ahmed <waheed.ahmed@arbisoft.com> Date: Tue, 29 Apr 2014 16:24:57 +0500 Subject: [PATCH] Fixed cheatsheet for open ended editor. STUD-1583 --- cms/static/js/views/modals/edit_xblock.js | 11 ++++++----- .../js/spec/combinedopenended/edit_spec.coffee | 12 ++++++++++++ .../xmodule/js/spec/problem/edit_spec.coffee | 12 ++++++++++++ .../js/src/combinedopenended/edit.coffee | 17 +++++++++++++++++ 4 files changed, 47 insertions(+), 5 deletions(-) diff --git a/cms/static/js/views/modals/edit_xblock.js b/cms/static/js/views/modals/edit_xblock.js index 0e5e83fbefa..f8f5cef52bc 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 d859a59ddae..cb1efd5a942 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 e1bdb1e6e0f..f59a36baf92 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 80efa37fdf3..9434fa7e020 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. ### -- GitLab