diff --git a/static/src/js/app/admin/contest/contest.js b/static/src/js/app/admin/contest/contest.js index 3edfb6db..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,13 +125,13 @@ require(["jquery", "avalon", "editor", "uploader", "datetimepicker", text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } - - - var editor1 = editor("#editor"); - + var upLoaderInited = false; + editor("#editor"); + var vm = avalon.define({ $id: "add_contest", title: "", + problemCount: 0, description: "", startTime: "", endTime: "", @@ -139,45 +139,27 @@ require(["jquery", "avalon", "editor", "uploader", "datetimepicker", model: "", openRank: false, problems: [], + problemNo: "-1", add_problem: function () { var problem_id = make_id(); var problem = { id: problem_id, title: "", - cpu: "", - memory: "", + cpu: 1000, + memory: 256, description: "", samples: [], visible: true, test_case_id: "", testCaseList: [], hint: "", - isVisible: false, difficulty: 0, - tags: [], - tag: "" + uploadSuccess: false }; vm.problems.push(problem); var id = vm.problems.length - 1; editor("#problem-" + problem_id + "-description"); var hinteditor = editor("#problem-" + problem_id +"-hint"); - $("#problem-" + problem_id +"-tags").tagEditor(); - uploader("#problem-" + problem_id + "-uploader", "/api/admin/test_case_upload/", function (file, respond) { - console.log(respond); - if (respond.code) - bs_alert(respond.data); - else { - vm.problems[id].test_case_id = respond.data.test_case_id; - vm.problems[id].uploadSuccess = true; - vm.problems[id].testCaseList = []; - for (var i = 0; i < respond.data.file_list.input.length; i++) { - vm.problems[id].push({ - input: respond.data.file_list.input[i], - output: respond.data.file_list.output[i] - }); - } - } - }); $("#add-contest-form").formValidation('addField', $('[name="problem_name[]"]')); $("#add-contest-form").formValidation('addField', $('[name="cpu[]"]')); $("#add-contest-form").formValidation('addField', $('[name="memory[]"]')); @@ -204,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/group/group_detail.js b/static/src/js/app/admin/group/group_detail.js index 93a5d431..0c6561eb 100644 --- a/static/src/js/app/admin/group/group_detail.js +++ b/static/src/js/app/admin/group/group_detail.js @@ -14,11 +14,7 @@ require(["jquery", "avalon", "csrf", "bs_alert", "validation"], function ($, ava name: "", description: "", join_group_setting: {0: false, 1: false, 2: false}, - checked_setting: 0, - - getSettingChecked: function (setting) { - return setting == vm.join_group_setting; - }, + checked_setting: "0", updateGroupInfo: function () { $.ajax({ @@ -26,7 +22,7 @@ require(["jquery", "avalon", "csrf", "bs_alert", "validation"], function ($, ava url: "/api/admin/group/", method: "put", data: {group_id: avalon.vmodels.admin.group_id, name: vm.name, - description: vm.description, join_group_setting: vm.join_group_setting}, + description: vm.description, join_group_setting: vm.checked_setting}, dataType: "json", success: function (data) { if (!data.code) { @@ -107,7 +103,7 @@ require(["jquery", "avalon", "csrf", "bs_alert", "validation"], function ($, ava if (!data.code) { vm.name = data.data.name; vm.description = data.data.description; - vm.join_group_setting[data.data.join_group_setting] = true; + vm.checked_setting = data.data.join_group_setting.toString(); } else { bs_alert(data.data); 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/announcement/announcement.html b/template/admin/announcement/announcement.html index e113ff76..583bd451 100644 --- a/template/admin/announcement/announcement.html +++ b/template/admin/announcement/announcement.html @@ -27,8 +27,8 @@
页数:{{page}}/{{page_count}}   - 上一页 - 下一页 + +
diff --git a/template/admin/contest/add_contest.html b/template/admin/contest/add_contest.html index 4a2e37e5..cd9936ca 100644 --- a/template/admin/contest/add_contest.html +++ b/template/admin/contest/add_contest.html @@ -37,9 +37,7 @@
- +