From e0bb9eed2b6623d531b98ba487abd01d58f80ba9 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Sat, 7 Nov 2015 13:05:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E4=B8=BA=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E4=B8=8A=E4=BC=A0=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/js/app/admin/contest/editProblem.js | 3 +- static/src/js/app/admin/problem/addProblem.js | 30 +++-------------- .../src/js/app/admin/problem/editProblem.js | 32 +++---------------- static/src/js/config.js | 1 + template/src/admin/contest/edit_problem.html | 24 +------------- template/src/admin/problem/add_problem.html | 25 +-------------- template/src/admin/problem/edit_problem.html | 25 +-------------- 7 files changed, 15 insertions(+), 125 deletions(-) diff --git a/static/src/js/app/admin/contest/editProblem.js b/static/src/js/app/admin/contest/editProblem.js index 4fdb94f..05aff43 100644 --- a/static/src/js/app/admin/contest/editProblem.js +++ b/static/src/js/app/admin/contest/editProblem.js @@ -1,4 +1,5 @@ -require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagEditor", "validator", "editorComponent"], +require(["jquery", "avalon", "editor", "uploader", "bsAlert", + "csrfToken", "tagEditor", "validator", "editorComponent", "testCaseUploader"], function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { avalon.ready(function () { diff --git a/static/src/js/app/admin/problem/addProblem.js b/static/src/js/app/admin/problem/addProblem.js index e2f9e6f..73254af 100644 --- a/static/src/js/app/admin/problem/addProblem.js +++ b/static/src/js/app/admin/problem/addProblem.js @@ -1,11 +1,12 @@ -require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent"], +require(["jquery", "avalon", "editor", "uploader", "bsAlert", + "csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent", "testCaseUploader"], function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { avalon.ready(function () { $("#add-problem-form").validator() .on('submit', function (e) { if (!e.isDefaultPrevented()) { - if (vm.testCaseId == "") { + if (!avalon.vmodels.testCaseUploader.uploaded) { bsAlert("你还没有上传测试数据!"); return false; } @@ -39,7 +40,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE time_limit: vm.timeLimit, memory_limit: vm.memoryLimit, samples: [], - test_case_id: vm.testCaseId, + test_case_id: avalon.vmodels.testCaseUploader.testCaseId, hint: avalon.vmodels.problemHintEditor.content, source: vm.source, visible: vm.visible, @@ -139,29 +140,6 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE } }); - var testCaseUploader = uploader("#testCaseFile", "/api/admin/test_case_upload/", - function (file, response) { - if (response.code) { - vm.uploadProgress = 0; - bsAlert(response.data); - } - else { - vm.testCaseId = response.data.test_case_id; - vm.uploadSuccess = true; - vm.testCaseList = []; - for (var key in response.data.file_list) { - vm.testCaseList.push({ - input: response.data.file_list[key].input_name, - output: response.data.file_list[key].output_name - }) - } - bsAlert("测试数据添加成功!共添加" + vm.testCaseList.length + "组测试数据"); - } - }, - function (file, percentage) { - vm.uploadProgress = parseInt(percentage * 100); - }); - var tagAutoCompleteList = []; $.ajax({ diff --git a/static/src/js/app/admin/problem/editProblem.js b/static/src/js/app/admin/problem/editProblem.js index e6dda3b..b144864 100644 --- a/static/src/js/app/admin/problem/editProblem.js +++ b/static/src/js/app/admin/problem/editProblem.js @@ -1,4 +1,5 @@ -require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent"], +require(["jquery", "avalon", "editor", "uploader", "bsAlert", + "csrfToken", "tagEditor", "validator", "jqueryUI", "editorComponent", "testCaseUploader"], function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { avalon.ready(function () { @@ -6,7 +7,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE $("#edit-problem-form").validator() .on('submit', function (e) { if (!e.isDefaultPrevented()) { - if (vm.testCaseId == "") { + if (!avalon.vmodels.testCaseUploader.uploaded) { bsAlert("你还没有上传测试数据!"); return false; } @@ -40,7 +41,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE time_limit: vm.timeLimit, memory_limit: vm.memoryLimit, samples: [], - test_case_id: vm.testCaseId, + test_case_id: avalon.vmodels.testCaseUploader.testCaseId, hint: avalon.vmodels.problemHintEditor.content, source: vm.source, visible: vm.visible, @@ -127,29 +128,6 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE avalon.vmodels.admin.template_url = "template/problem/problem_list.html"; } }); - var testCaseUploader = uploader("#testCaseFile", "/api/admin/test_case_upload/", - function (file, response) { - if (response.code) { - vm.uploadProgress = 0; - bsAlert(response.data); - } - else { - vm.testCaseId = response.data.test_case_id; - vm.uploadSuccess = true; - vm.testCaseList = []; - for(var key in response.data.file_list){ - vm.testCaseList.push({ - input: response.data.file_list[key].input_name, - output: response.data.file_list[key].output_name - }) - } - bsAlert("测试数据添加成功!共添加" + vm.testCaseList.length + "组测试数据"); - } - }, - function (file, percentage) { - vm.uploadProgress = parseInt(percentage * 100); - } - ); $.ajax({ url: "/api/admin/problem/?problem_id=" + avalon.vmodels.admin.problemId, @@ -178,7 +156,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE vm.difficulty = problem.difficulty; vm.inputDescription = problem.input_description; vm.outputDescription = problem.output_description; - vm.testCaseId = problem.test_case_id; + avalon.vmodels.testCaseUploader.setTestCase(problem.test_case_id); vm.source = problem.source; var problemTags = problem.tags; $.ajax({ diff --git a/static/src/js/config.js b/static/src/js/config.js index f0b1047..603c4a2 100644 --- a/static/src/js/config.js +++ b/static/src/js/config.js @@ -27,6 +27,7 @@ var require = { // ------ admin web 组件 ---------- pager: "components/pager", editorComponent: "components/editorComponent", + testCaseUploader: "components/testCaseUploader", // ------ 下面写的都不要直接用,而是使用上面的封装版本 ------ diff --git a/template/src/admin/contest/edit_problem.html b/template/src/admin/contest/edit_problem.html index f5ef148..14bbd6b 100644 --- a/template/src/admin/contest/edit_problem.html +++ b/template/src/admin/contest/edit_problem.html @@ -96,29 +96,7 @@ -
| 编号 | -输入文件名 | -输出文件名 | -
| {{ $index + 1 }} | -{{ el.input }} | -{{ el.output }} | -
上传进度%
-| 编号 | -输入文件名 | -输出文件名 | -
| {{$index + 1}} | -{{ el.input }} | -{{ el.output }} | -
上传进度%
-| 编号 | -输入文件名 | -输出文件名 | -
| {{ $index + 1 }} | -{{ el.input }} | -{{ el.output }} | -