From 2ed22c3bce56d2a0eeb186ceea439d4e7f7bab19 Mon Sep 17 00:00:00 2001 From: esp Date: Mon, 24 Aug 2015 18:39:11 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=89=8D=E7=AB=AF]=E4=BF=AE=E5=A4=8D=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E7=AE=A1=E7=90=86(=E5=90=8E=E5=8F=B0)=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84avalon=E9=87=8D=E5=A4=8D=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98[CI=20SKIP]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/js/app/admin/problem/add_problem.js | 91 ++++++++++++------- .../src/js/app/admin/problem/edit_problem.js | 21 ++++- static/src/js/app/admin/problem/problem.js | 4 +- 3 files changed, 76 insertions(+), 40 deletions(-) diff --git a/static/src/js/app/admin/problem/add_problem.js b/static/src/js/app/admin/problem/add_problem.js index 7331a8a..d34cd9a 100644 --- a/static/src/js/app/admin/problem/add_problem.js +++ b/static/src/js/app/admin/problem/add_problem.js @@ -1,7 +1,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagEditor", "validator", "jqueryUI"], function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { avalon.ready(function () { - avalon.vmodels.addProblem = null; + $("#add-problem-form").validator() .on('submit', function (e) { if (!e.isDefaultPrevented()){ @@ -63,6 +63,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE success: function (data) { if (!data.code) { bsAlert("题目添加成功!"); + location.hash = "problem/problem_list"; } else { bsAlert(data.data); @@ -92,41 +93,61 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE var hintEditor = editor("#hint"); var problemDescription = editor("#problemDescription"); - - var vm = avalon.define({ - $id: "addProblem", - title: "", - description: "", - timeLimit: 1000, - memoryLimit: 256, - samples: [{input: "", output: "", "visible": true}], - hint: "", - visible: true, - difficulty: 0, - tags: [], - inputDescription: "", - outputDescription: "", - testCaseId: "", - testCaseList: [], - uploadSuccess: false, - source: "", - addSample: function () { - vm.samples.push({input: "", output: "", "visible": true}); - }, - delSample: function (sample) { - if (confirm("你确定要删除么?")) { - vm.samples.remove(sample); + if (avalon.vmodels.addProblem) { + var vm = avalon.vmodels.addProblem; + vm.title = ""; + vm.description = ""; + vm.timeLimit = 1000; + vm.memoryLimit = 256; + vm.samples = [{input: "", output: "", "visible": true}]; + vm.hint = ""; + vm.visible = true; + vm.difficulty = 0; + vm.tags = []; + vm.inputDescription = ""; + vm.outputDescription = ""; + vm.testCaseId = ""; + vm.testCaseList = []; + vm.uploadSuccess = false; + vm.source = ""; + hintEditor.setValue(""); + problemDescription.setValue(""); + } + else + var vm = avalon.define({ + $id: "addProblem", + title: "", + description: "", + timeLimit: 1000, + memoryLimit: 256, + samples: [{input: "", output: "", "visible": true}], + hint: "", + visible: true, + difficulty: 0, + tags: [], + inputDescription: "", + outputDescription: "", + testCaseId: "", + testCaseList: [], + uploadSuccess: false, + source: "", + addSample: function () { + vm.samples.push({input: "", output: "", "visible": true}); + }, + delSample: function (sample) { + if (confirm("你确定要删除么?")) { + vm.samples.remove(sample); + } + }, + toggleSample: function (sample) { + sample.visible = !sample.visible; + }, + getBtnContent: function (item) { + if (item.visible) + return "折叠"; + return "展开"; } - }, - toggleSample: function (sample) { - sample.visible = !sample.visible; - }, - getBtnContent: function (item) { - if (item.visible) - return "折叠"; - return "展开"; - } - }); + }); var tagAutoCompleteList = []; diff --git a/static/src/js/app/admin/problem/edit_problem.js b/static/src/js/app/admin/problem/edit_problem.js index 26ab794..8805519 100644 --- a/static/src/js/app/admin/problem/edit_problem.js +++ b/static/src/js/app/admin/problem/edit_problem.js @@ -2,7 +2,6 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) { avalon.ready(function () { - avalon.vmodels.editProblem = null; $("#edit-problem-form").validator() .on('submit', function (e) { @@ -65,6 +64,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE success: function (data) { if (!data.code) { bsAlert("题目编辑成功!"); + vm.showProblemListPage(); } else { bsAlert(data.data); @@ -75,7 +75,24 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "tagE return false; } }); - + if (avalon.vmodels.editProblem) { + var vm = avalon.vmodels.editProblem; + title: "", + description= ""; + timeLimit= -1; + memoryLimit= -1; + samples= []; + hint= ""; + visible= true; + difficulty= 0; + inputDescription= ""; + outputDescription= ""; + testCaseIdd= ""; + uploadSuccess= false; + source= ""; + testCaseList= []; + } + else var vm = avalon.define({ $id: "editProblem", title: "", diff --git a/static/src/js/app/admin/problem/problem.js b/static/src/js/app/admin/problem/problem.js index cb1a0f0..2632ebf 100644 --- a/static/src/js/app/admin/problem/problem.js +++ b/static/src/js/app/admin/problem/problem.js @@ -41,10 +41,8 @@ require(["jquery", "avalon", "csrfToken", "bsAlert"], function ($, avalon, csrfT vm.$fire("up!showProblemSubmissionPage", problemId); } }); - - getPageData(1); } - + getPageData(1); function getPageData(page) { var url = "/api/admin/problem/?paging=true&page=" + page + "&page_size=10"; if (vm.keyword != "")