From e089a550ccc5e5e71af0c67f9d7992f40cdb75bb Mon Sep 17 00:00:00 2001 From: esp Date: Tue, 11 Aug 2015 19:43:23 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=89=8D=E7=AB=AF]=E9=87=8D=E6=96=B0=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=B7=BB=E5=8A=A0=E6=AF=94=E8=B5=9B=E4=B8=AD=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B=E7=9A=84=E4=B8=8A=E4=BC=A0=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=86bug=EF=BC=8C?= =?UTF-8?q?=E8=BF=98=E6=B2=A1=E6=9C=89=E5=86=99ajax=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=AF=94=E8=B5=9B=E4=BF=A1=E6=81=AF=E7=9A=84=E9=83=A8=E5=88=86?= =?UTF-8?q?=EF=BC=8C=E5=9B=A0=E4=B8=BA=E6=B2=A1=E6=9C=89API[CI=20SKIP]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/src/js/app/admin/contest/contest.js | 59 +++++++++++-------- .../src/js/app/admin/problem/add_problem.js | 4 +- static/src/js/utils/uploader.js | 4 +- template/admin/contest/add_contest.html | 6 +- 4 files changed, 44 insertions(+), 29 deletions(-) diff --git a/static/src/js/app/admin/contest/contest.js b/static/src/js/app/admin/contest/contest.js index f85a2f16..736ce58c 100644 --- a/static/src/js/app/admin/contest/contest.js +++ b/static/src/js/app/admin/contest/contest.js @@ -1,6 +1,6 @@ -require(["jquery", "avalon", "editor", "uploader", "datetimepicker", - "validation","tagEditor"], - function ($, avalon, editor, uploader) { +require(["jquery", "avalon", "editor", "uploader", "bs_alert", "datetimepicker", + "validation",], + function ($, avalon, editor, uploader, bs_alert) { avalon.vmodels.add_contest = null; $("#add-contest-form") .formValidation({ @@ -72,10 +72,10 @@ require(["jquery", "avalon", "editor", "uploader", "datetimepicker", "cpu[]": { validators: { notEmpty: { - message: "请输入cpu时间" + message: "请输入时间限制" }, integer: { - message: "请输入一个合法的数字" + message: "时间限制用整数表示" }, between: { inclusive: true, @@ -125,24 +125,8 @@ require(["jquery", "avalon", "editor", "uploader", "datetimepicker", text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } - + var upLoaderInited = false; editor("#editor"); - uploader("#uploader", "/api/admin/test_case_upload/", function (file, respond) { - if (respond.code) - bs_alert(respond.data); - else { - vm.problems[vm.problemNo].test_case_id = respond.data.test_case_id; - vm.problems[vm.problemNo].uploadSuccess = true; - vm.problems[vm.problemNo].testCaseList = []; - for (var i = 0; i < respond.data.file_list.input.length; i++) { - vm.problems[vm.problemNo].push({ - input: respond.data.file_list.input[i], - output: respond.data.file_list.output[i] - }); - } - } - }); - var vm = avalon.define({ $id: "add_contest", @@ -155,7 +139,7 @@ require(["jquery", "avalon", "editor", "uploader", "datetimepicker", model: "", openRank: false, problems: [], - problemNo: 0, + problemNo: "-1", add_problem: function () { var problem_id = make_id(); var problem = { @@ -202,6 +186,35 @@ require(["jquery", "avalon", "editor", "uploader", "datetimepicker", return "展开"; } }); + + uploader("#uploader", "/api/admin/test_case_upload/", function (file, respond) { + if (respond.code) + bs_alert(respond.data); + else { + var index = parseInt(vm.problemNo)-1; + vm.problems[index].test_case_id = respond.data.test_case_id; + vm.problems[index].uploadSuccess = true; + vm.problems[index].testCaseList = []; + for (var i = 0; i < respond.data.file_list.input.length; i++) { + vm.problems[index].testCaseList.push({ + input: respond.data.file_list.input[i], + output: respond.data.file_list.output[i] + }); + } + bs_alert("测试数据添加成功!共添加"+vm.problems[index].testCaseList.length +"组测试数据"); + } + }, + function(){ + console.log(vm.problemNo); + if (vm.problemNo == "-1") + { + bs_alert("你还未指定一道题目!"); + return false; + } + } + ); + isUploaderInited = true; + avalon.scan(); $("#contest_start_time").datetimepicker({ diff --git a/static/src/js/app/admin/problem/add_problem.js b/static/src/js/app/admin/problem/add_problem.js index 8de48cd6..d2eda564 100644 --- a/static/src/js/app/admin/problem/add_problem.js +++ b/static/src/js/app/admin/problem/add_problem.js @@ -134,7 +134,9 @@ require(["jquery", "avalon", "editor", "uploader", "bs_alert", "csrf", "tagEdito input: respond.data.file_list.input[i], output: respond.data.file_list.output[i] }); + } + bs_alert("测试数据添加成功!共添加"+vm.testCaseList.length +"组测试数据"); } }); var hinteditor = editor("#hint"); @@ -147,7 +149,7 @@ require(["jquery", "avalon", "editor", "uploader", "bs_alert", "csrf", "tagEdito memory: 256, samples: [], hint: "", - visible: false, + visible: true, difficulty: 0, tags: [], tag: "", diff --git a/static/src/js/utils/uploader.js b/static/src/js/utils/uploader.js index 83c2b1f4..ddf073fa 100644 --- a/static/src/js/utils/uploader.js +++ b/static/src/js/utils/uploader.js @@ -1,5 +1,5 @@ define("uploader", ["webuploader", "csrf"], function(webuploader,csrf){ - function uploader(selector, server, onSuccess) { + function uploader(selector, server, onSuccess, beforeUpload) { var Webuploader= webuploader.create({ auto: true, // swf文件路径 @@ -15,7 +15,7 @@ define("uploader", ["webuploader", "csrf"], function(webuploader,csrf){ }); Webuploader.on("uploadBeforeSend",csrf); Webuploader.on("uploadSuccess", onSuccess); - + Webuploader.on("beforeFileQueued", beforeUpload); return Webuploader; } diff --git a/template/admin/contest/add_contest.html b/template/admin/contest/add_contest.html index d05f888d..cd9936ca 100644 --- a/template/admin/contest/add_contest.html +++ b/template/admin/contest/add_contest.html @@ -77,8 +77,8 @@ 添加
- -
+ +
选择文件
@@ -165,7 +165,7 @@ 输入文件名 输出文件名 - + {{$index}} {{el.input}} {{el.output}}