diff --git a/common/lib/xmodule/xmodule/js/spec/capa/display_spec.coffee b/common/lib/xmodule/xmodule/js/spec/capa/display_spec.coffee index 690c748cde..5a3ed28ec7 100644 --- a/common/lib/xmodule/xmodule/js/spec/capa/display_spec.coffee +++ b/common/lib/xmodule/xmodule/js/spec/capa/display_spec.coffee @@ -538,6 +538,19 @@ describe 'Problem', -> runs -> expect(window.SR.readElts).toHaveBeenCalled() + it 'disables check button while posting', -> + runs -> + spyOn($, 'postWithPrefix').andCallFake (url, answers, callback) -> callback(success: 'OK') + spyOn @problem, 'enableCheckButton' + @problem.save() + expect(@problem.enableCheckButton).toHaveBeenCalledWith false + waitsFor (-> + return jQuery.active == 0 + ), "jQuery requests finished", 1000 + + runs -> + expect(@problem.enableCheckButton).toHaveBeenCalledWith true + describe 'refreshMath', -> beforeEach -> @problem = new Problem($('.xblock-student_view')) diff --git a/common/lib/xmodule/xmodule/js/src/capa/display.coffee b/common/lib/xmodule/xmodule/js/src/capa/display.coffee index b2130efff9..36fdad083d 100644 --- a/common/lib/xmodule/xmodule/js/src/capa/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/capa/display.coffee @@ -412,11 +412,13 @@ class @Problem @save_internal() save_internal: => + @enableCheckButton false Logger.log 'problem_save', @answers $.postWithPrefix "#{@url}/problem_save", @answers, (response) => saveMessage = response.msg @gentle_alert saveMessage @updateProgress response + @enableCheckButton true refreshMath: (event, element) => element = event.target unless element