# HG changeset patch # User Jittat Fakcharoenphol # Date 2010-01-28 15:06:29 # Node ID f00dec11b37519c1e435e2ceb6a1823f6d318d74 # Parent 4f0fc6ead86af7f1d61a28f92f54afe443426659 fixed timeout bug for wrong submission (thanks to @dtinth), and js bugs occurring in IE diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -279,7 +279,7 @@ if assignment == nil timeout = nil else - if assignment.expired? + if (assignment.expired?) or (assignment.submitted) timeout = 0 else timeout = assignment.created_at + TEST_ASSIGNMENT_EXPIRATION_DURATION - Time.new.gmtime diff --git a/public/javascripts/codejom_timeout.js b/public/javascripts/codejom_timeout.js --- a/public/javascripts/codejom_timeout.js +++ b/public/javascripts/codejom_timeout.js @@ -8,6 +8,8 @@ updateProblemMessages: function() { CodejomTimeout.timeouts.each(function(data) { + if(data==null) + return; if(data.timeout==null) { $("problem-submission-form-" + data.problem).hide(); } else if(data.timeout==0) { @@ -26,6 +28,8 @@ var timeElapsed = ((new Date()).getTime() - CodejomTimeout.timeStarted)/1000; // update timeout info CodejomTimeout.timeouts.each(function(data) { + if(data==null) + return; if(data.timeout > timeElapsed) { data.timeout -= timeElapsed; } else if(data.timeout > 0) { @@ -46,7 +50,7 @@ updateTimeoutAfterDownloadClick: function(problem) { CodejomTimeout.timeouts - .filter(function(data) { return data.problem==problem; }) + .filter(function(data) { return (data!=null) && (data.problem==problem); }) .each(function(data) { if(data.timeout==0 || data.timeout==null) { // TODO: use value from rails app.