$(function(){ //提交作业 var bt=baidu.template; bt.LEFT_DELIMITER=''; var tested = false; var valid_form = function() { var src = $('#program-src').val(); var title = $('#program-title').val(); if (!src) { var htmlvalue = "
请输入正确的代码!

确定
"; pop_up_box(htmlvalue,580,30,50); return false; } if (!title) { var htmlvalue = "
请输入标题!

确定
"; pop_up_box(htmlvalue,580,30,50); return false; } return true; }; var test_program = function(cb){ $('#test-program-btn').hide(); $('#commit-program-work-btn').hide(); var homework_id = $('#test-program-btn').attr('data-homework-id'); var student_work_id = $('#test-program-btn').attr('data-student-work-id'); var src = $('#program-src').val(); var title = $('#program-title').val(); var is_test = $('input[name=is_test]').val(); if(!valid_form()){ $('#test-program-btn').show(); $('#commit-program-work-btn').show(); return; } //先测试一次并返回测试集个数及结果再判断是否需要继续进行测试 var test_post = function(i, testid){ $.post( '/student_work/program_test_ex', {homework: homework_id, student_work_id: student_work_id, src: src, title: title, is_test: is_test,tIndex:i, testid: testid}, function(data,status){ if (data.status==-4 || data.status==-5 ){ //弹框 var root_path = getRootPath(); var forums_1_path = root_path + "/forums/1" var htmlvalue = "
由于目前大量用户正在测试,系统繁忙,请稍后再试。我们将尽快提升平台的处理能力,谢谢您的支持!

确定
"; pop_up_box(htmlvalue,580,30,50); $('#test-program-btn').show(); $('#commit-program-work-btn').show(); return; } else if (data.status==-3){ var htmlvalue = "
由于目前大量用户正在测试,系统繁忙,请稍后再试。我们将尽快提升平台的处理能力,谢谢您的支持!

确定
"; pop_up_box(htmlvalue,580,30,50); $('#test-program-btn').show(); $('#commit-program-work-btn').show(); return; } var tSeq = data.tseq; var tCount = data.tcount; console.log("tSeq="+tSeq); console.log("tCount="+tCount); tested = true; console.log(data); if(data.index <=0){ data.index = $('.ProResultTop').length+1; } var html=bt('t:result-list',data); $('.ProResult').prepend(html); if (data.status==0 && is_test != 'true') { if (typeof cb == 'function') {cb(data);return;} var htmlvalue = "
答题正确,是否立刻提交?

确定取消
"; pop_up_box(htmlvalue,580,30,50); $('#test-program-btn').show(); $('#commit-program-work-btn').show(); return; } //2 超时 -2 编译错误 测试结束 if (data.status == 2 || data.status == -2 || tSeq >= tCount ){ if (typeof cb == 'function') {cb(data);$('#test-program-btn').show();$('#commit-program-work-btn').show(); return;} $('#test-program-btn').show(); $('#commit-program-work-btn').show(); return; } test_post(i+1, data.testid); } ).fail(function(xhr, status){ if(status == 'timeout'){ var htmlvalue = "
您的答案超时了, 请检查代码是否存在死循环的错误!

确定
"; pop_up_box(htmlvalue,580,30,50); } else { var htmlvalue = "
由于目前大量用户正在测试,系统繁忙,请稍后再试。我们将尽快提升平台的处理能力,谢谢您的支持!

确定
"; pop_up_box(htmlvalue,580,30,50); } $('#test-program-btn').show(); $('#commit-program-work-btn').show(); return; }); }; test_post(1, 0); }; $('#test-program-btn').on('click', test_program); $('#commit-program-work-btn').on('click', function(){ if(!valid_form()){ return; } $('#commit-program-work-btn').hide(); if($('.ProResult .ProResultTop').length<=0){ var htmlvalue = "
测试后才能提交,是否立刻测试?

确定取消
"; pop_up_box(htmlvalue,580,30,50); $("#code-test-button").on('click',function(){ test_program(); hideModal(); }); return; } if (!tested) { test_program(function(data){ if (data.status!=0) { var htmlvalue = "
测试不通过,是否强制提交?

确定取消
"; pop_up_box(htmlvalue,580,30,50); $('#commit-program-work-btn').show(); return; }; $('#commit-program-work-btn').hide(); $('#test-program-btn').hide(); $(".HomeWorkCon form").submit(); }); return; } $('#commit-program-work-btn').hide(); $('#test-program-btn').hide(); $(".HomeWorkCon form").submit(); }); $('form.edit_student_work').on('keydown', '#program-src', function(){ tested = false; }); //发布作业 $('#program-src').focus(function(){ $(this).css('height', '100px'); }); var datepickerOptions={dateFormat:'yy-mm-dd',firstDay:0,showWeek:true,showOtherMonths:true,selectOtherMonths:true}; $('input.date-input').datepicker(datepickerOptions); $('a.pic_date').on('click', function(){ $(this).parent().prev().first().focus(); }) $("#NoticePopupBox").dialog({ modal: true, autoOpen: false, dialogClass: 'BluePopupBox', minWidth: 500 }); $('#NoticePopupBox').parent().resizable("disable"); $('#NoticePopupBox').parent().removeClass("ui-state-disabled"); $('#NoticePopupBox').parent().css("border","3px solid #269ac9").css("padding","10px"); $('a#switch_type').live('click', function(){ if($("input[name=homework_type]").val() == "3"){ $("#NoticePopupBox" ).dialog("close"); $("input[name=homework_type]").val(1); $('span.group_detail_info').text(''); $("#group_setting a").removeClass("fontBlue2"); $("#BluePopupBox").dialog("open"); $(".ui-dialog-titlebar").hide(); $("a.CloseBtn").on('click', function(){ $("#BluePopupBox" ).dialog("close"); }); var inputs = document.getElementsByName("program[input][]"); var outputs = document.getElementsByName("program[output][]"); if (inputs.length == outputs.length) { for (var i=0; i 0 && $("input[name=max_num]").length > 0) { $("#min_num").val($("input[name=min_num]").val()); $("#max_num").val($("input[name=max_num]").val()); } else { $("#min_num").val(2); $("#max_num").val(10); } }; var saveGroupAttr = function() { var valid = true; var base_on_project = 0; var min = $.trim($("#min_num").val()); var max = $.trim($("#max_num").val()); var regex = /^\d+$/; if(!regex.test(min) || parseInt(min) <= 0) { $("#min_num_notice").html("请输入正整数"); $("#max_num_notice").html(""); $("#min_max_num_notice").html(""); $("#min_num_notice").show(); $("#min_num").focus(); return false; } else { $("#min_num_notice").html(""); $("#min_num_notice").hide(); } if(!regex.test(max) || parseInt(max) <= 0) { $("#max_num_notice").html("请输入正整数"); $("#min_num_notice").html(""); $("#min_max_num_notice").html(""); $("#max_num_notice").show(); $("#max_num").focus(); return false; } else { $("#max_num_notice").html(""); $("#max_num_notice").hide(); } if(parseInt(min) > parseInt(max)) { $("#min_max_num_notice").html("最小人数不得大于最大人数"); $("#min_num_notice").html(""); $("#max_num_notice").html(""); $("#min_max_num_notice").show(); $("#max_num").focus(); return false; } else { $("#min_max_num_notice").html(""); $("#min_max_num_notice").hide(); } if ($("#base_on_project").is(":checked")) { base_on_project = 1; } if (valid) { $("input[name=homework_type]").val(3); $('span.group_detail_info').text('分组人数:'+min+'-'+max+' 人'); $("#group_setting a").addClass("fontBlue2"); //保存js值 var data = { base_on_project: base_on_project, min_num: min, max_num: max }; //构建到form中 $('.group-input').remove(); var html=bt('t:group-input-list',data); $("input[name=homework_type]").after(html); } return valid; }; $("#GroupPopupBox a.group_save_btn").live('click', function(){ if(saveGroupAttr()){ if($( "#GroupPopupBox" ).dialog( "isOpen" )){ $("#GroupPopupBox").dialog( "close" ); } } }); //代码编辑器 if (typeof CodeMirror != "undefined") { var program_name = "text/x-csrc"; var language = $('#data-language').attr('data-language'); if (language == 1) { program_name = 'text/x-csrc'; } else if(language==2){ program_name = 'text/x-c++src'; }else if(language==3){ program_name = 'text/x-cython'; } else if(language==4){ program_name = 'text/x-java'; } if ($('#program-src').val().length<=0) { var src = ''; if(language==4){ src = '\ //注意\n\ //1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集\n\ //2:该程序每次运行使用的内存不能超过1M,否则会返回错误\n\ //3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示\n\ import java.io.*;\n\ import java.util.*;\n\ \n\ //请一定不要修改类名\n\ class Main\n\ {\n\ public static void main (String args[])\n\ {\n\ //获取参数方式\n\ //Scanner in = new Scanner(System.in);\n\ //int a = in.nextInt();\n\ //int b = in.nextInt();\n\ \n\ //您的代码\n\ }\n\ }\n\ '; } else if(language==1){ src = '\ //注意\n\ //1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集\n\ //2:该程序每次运行使用的内存不能超过1M,否则会返回错误\n\ //3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示\n\ #include \n\ int main()\n\ {\n\ //获取参数方式 scanf\n\ //int x =0;\n\ //int y = 0;\n\ //scanf("%d", &x);\n\ \n\ //结果输出使用prinf\n\ //printf("%d",x);\n\ \n\ return 0;\n\ }\n\ '; } else if(language==2){ src = '\ //注意\n\ //1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集\n\ //2:该程序每次运行使用的内存不能超过1M,否则会返回错误\n\ //3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示\n\ #include \n\ using namespace std;\n\ \n\ int main()\n\ {\n\ //获取参数方式 cin\n\ //int x =0;\n\ //cin >> x;\n\ \n\ //结果输出使用 cout\n\ //cout<<"1";\n\ \n\ return 0;\n\ }\n\ '; } else if(language==3){ src = '\ #-*-coding:utf-8-*-\n\ #注意\n\ #1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集\n\ #2:该程序每次运行使用的内存不能超过1M,否则会返回错误\n\ #3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),空格用□表示\n\ import sys \n\ \n\ #获取参数方式,使用raw_input\n\ #input = raw_input()\n\ #a, b = input.split()\n\ \n\ #结果输出使用 print \n\ #print (str(int(a)+int(b)))\n\ '; } $('#program-src').val(src); }; var editor = CodeMirror.fromTextArea(document.getElementById("program-src"), { mode: {name: program_name, version: 2, singleLineStringErrors: false}, lineNumbers: true, indentUnit: 2, matchBrackets: true }); editor.on('change',function(cMirror){ // get value right from instance $('#program-src').val(cMirror.getValue()); }); } });