Show More
Commit Description:
updated graded_at fields for graded submissions
Commit Description:
updated graded_at fields for graded submissions
References:
File last commit:
Show/Diff file:
Action:
app/assets/javascripts/toicontest.js
| 77 lines
| 2.9 KiB
| application/javascript
| JavascriptLexer
|
|
r382 | var TOIContest = { | ||
NO_TIMEOUT: -1, | ||||
|
r383 | SUBMISSION_TIMEOUT: 300, | ||
|
r382 | |||
timeOuts: {}, | ||||
|
r383 | timeStarted: 0, | ||
|
r382 | |||
problemSelectClick: function() { | ||||
$$(".submission-submit-divs").each(function(item) { | ||||
item.hide(); | ||||
}); | ||||
var problem_id = $('submission_problem_id').value; | ||||
if ( problem_id < 0 ) { | ||||
return; | ||||
} | ||||
$("submission_submit_div_" + problem_id + "_id").show(); | ||||
}, | ||||
|
r383 | confirmDownload: function(pid) { | ||
result = confirm("คุณแน่ใจที่จะส่งข้อนี้หรือไม่?\nเมื่อคุณดาวน์โหลดข้อมูลชุดทดสอบแล้ว คุณจะต้องส่งข้อมูลส่งออกและโปรแกรมภายในเวลา 5 นาที"); | ||||
if ( result ) { | ||||
if ( TOIContest.timeOuts[ pid ] == TOIContest.NO_TIMEOUT ) { | ||||
TOIContest.refreshTimeOuts(); | ||||
TOIContest.timeOuts[ pid ] = TOIContest.SUBMISSION_TIMEOUT; | ||||
TOIContest.refreshTimeOutMessages(); | ||||
} | ||||
} | ||||
return result; | ||||
|
r382 | }, | ||
refreshTimeOutMessages: function() { | ||||
for ( var pid in TOIContest.timeOuts ) { | ||||
var timeOut = TOIContest.timeOuts[ pid ]; | ||||
if ( timeOut != TOIContest.NO_TIMEOUT ) { | ||||
if ( timeOut > 0 ) { | ||||
var minLeft = parseInt(timeOut / 60); | ||||
var secLeft = parseInt(timeOut % 60); | ||||
$('submission_time_left_' + pid + '_id').innerHTML = '| <b>เหลือเวลาอีก ' + minLeft + ':' + secLeft + ' นาที</b>'; | ||||
|
r383 | $('submission_form_'+ pid + '_id').show(); | ||
|
r382 | } else { | ||
$('submission_time_left_' + pid + '_id').innerHTML = '| <b>หมดเวลาส่ง</a>'; | ||||
$('submission_form_'+ pid + '_id').hide(); | ||||
} | ||||
|
r383 | } else { | ||
$('submission_form_'+ pid + '_id').hide(); | ||||
|
r382 | } | ||
} | ||||
|
r383 | }, | ||
refreshTimeOuts: function() { | ||||
if ( TOIContest.timeStarted == 0 ) { | ||||
TOIContest.timeStarted = (new Date()).getTime(); | ||||
} | ||||
var timeElapsed = ((new Date()).getTime() - TOIContest.timeStarted)/1000; | ||||
for ( var pid in TOIContest.timeOuts ) { | ||||
var timeOut = TOIContest.timeOuts[ pid ]; | ||||
if ( timeOut > timeElapsed ) { | ||||
TOIContest.timeOuts[ pid ] -= timeElapsed; | ||||
} else if ( timeOut > 0 ) { | ||||
TOIContest.timeOuts[ pid ] = 0; | ||||
} | ||||
} | ||||
}, | ||||
registerRefreshEvent: function() { | ||||
TOIContest.timeStarted = (new Date()).getTime(); | ||||
setTimeout(function () { | ||||
TOIContest.refreshTimeOuts(); | ||||
TOIContest.refreshTimeOutMessages(); | ||||
TOIContest.registerRefreshEvent(); | ||||
}, 1000); | ||||
}, | ||||
|
r382 | }; | ||