Index: lams_learning/web/includes/javascript/gate-check.js =================================================================== diff -u -r272283f9e61f61403d2b4120ce8ee296de371c1e -r896e5e929b496c1ad7a7fd9049b752f997d1c3f1 --- lams_learning/web/includes/javascript/gate-check.js (.../gate-check.js) (revision 272283f9e61f61403d2b4120ce8ee296de371c1e) +++ lams_learning/web/includes/javascript/gate-check.js (.../gate-check.js) (revision 896e5e929b496c1ad7a7fd9049b752f997d1c3f1) @@ -17,8 +17,13 @@ 'trigger' : 'manual' }) .click(function(event){ + if (finishButton.prop('disabled') == true) { + // if the button is already disabled, do not run a check + return; + } + // disable the button - finishButton.prop('disabled', true); + finishButton.prop('disabled', true).attr('disabled', true); // check if there is a gate after this activity // if so, check if learner can pass @@ -29,7 +34,7 @@ 'success' : function(response) { if (response.status == 'open') { // learner can pass - finishButton.prop('disabled', false); + finishButton.prop('disabled', false).attr('disabled', false); submitFunction(); return; } @@ -47,11 +52,11 @@ }).bootstrapTooltip('show'); timeoutFunction = function(){ - finishButton.bootstrapTooltip('hide').prop('disabled', false); + finishButton.bootstrapTooltip('hide').prop('disabled', false).attr('disabled', false); }; } else { timeoutFunction = function(){ - finishButton.prop('disabled', false); + finishButton.prop('disabled', false).attr('disabled', false); }; }