From 99cca0573049a50f37cb9e0e7174693c3f16943a Mon Sep 17 00:00:00 2001 From: Giulio Gratta Date: Thu, 1 Oct 2015 14:23:35 -0700 Subject: [PATCH 1/2] Disable submit button on save click --- common/lib/xmodule/xmodule/js/src/capa/display.coffee | 2 ++ 1 file changed, 2 insertions(+) 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 From bc6caea6a682781e350e49cc00dc568e639dde13 Mon Sep 17 00:00:00 2001 From: Adam Palay Date: Tue, 3 Nov 2015 14:01:53 -0500 Subject: [PATCH 2/2] add test for disabling check button while clicking save --- .../xmodule/js/spec/capa/display_spec.coffee | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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'))