mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 16:33:22 +00:00
重构添加比赛的页面
This commit is contained in:
parent
84e776a8b4
commit
f5953d64a5
@ -1,5 +1,5 @@
|
|||||||
require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "datetimePicker",
|
require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "datetimePicker",
|
||||||
"validator"],
|
"validator", "editorComponent"],
|
||||||
function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) {
|
function ($, avalon, editor, uploader, bsAlert, csrfTokenHeader) {
|
||||||
|
|
||||||
$("#add-contest-form").validator().on('submit', function (e) {
|
$("#add-contest-form").validator().on('submit', function (e) {
|
||||||
@ -7,11 +7,9 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var ajaxData = {
|
var ajaxData = {
|
||||||
title: vm.title,
|
title: vm.title,
|
||||||
description: vm.description,
|
description: avalon.vmodels.contestDescriptionEditor.content,
|
||||||
mode: vm.mode,
|
|
||||||
contest_type: 0,
|
contest_type: 0,
|
||||||
real_time_rank: vm.realTimeRank,
|
real_time_rank: vm.realTimeRank,
|
||||||
show_user_submission: vm.showSubmission,
|
|
||||||
start_time: vm.startTime,
|
start_time: vm.startTime,
|
||||||
end_time: vm.endTime,
|
end_time: vm.endTime,
|
||||||
visible: false
|
visible: false
|
||||||
@ -38,12 +36,11 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
|
|||||||
bsAlert("你没有选择参赛用户!");
|
bsAlert("你没有选择参赛用户!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (vm.editDescription == "") {
|
if (ajaxData.description.trim() == "") {
|
||||||
bsAlert("比赛描述不能为空!");
|
bsAlert("比赛描述不能为空!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$.ajax({ // Add contest
|
$.ajax({
|
||||||
beforeSend: csrfTokenHeader,
|
|
||||||
url: "/api/admin/contest/",
|
url: "/api/admin/contest/",
|
||||||
dataType: "json",
|
dataType: "json",
|
||||||
contentType: "application/json;charset=UTF-8",
|
contentType: "application/json;charset=UTF-8",
|
||||||
@ -52,17 +49,7 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
|
|||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (!data.code) {
|
if (!data.code) {
|
||||||
bsAlert("添加成功!将转到比赛列表页以便为比赛添加问题(注意比赛当前状态为:隐藏)");
|
bsAlert("添加成功!将转到比赛列表页以便为比赛添加问题(注意比赛当前状态为:隐藏)");
|
||||||
vm.title = "";
|
|
||||||
vm.description = "";
|
|
||||||
vm.startTime = "";
|
|
||||||
vm.endTime = "";
|
|
||||||
vm.password = "";
|
|
||||||
vm.mode = "0";
|
|
||||||
vm.showSubmission = true;
|
|
||||||
location.hash = "#contest/contest_list";
|
location.hash = "#contest/contest_list";
|
||||||
vm.isGlobal = true;
|
|
||||||
vm.allGroups = [];
|
|
||||||
vm.showGlobalViewRadio = true;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
bsAlert(data.data);
|
bsAlert(data.data);
|
||||||
@ -73,23 +60,25 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
editor("#editor");
|
//editor("#editor");
|
||||||
if (avalon.vmodels.add_contest)
|
if (avalon.vmodels.add_contest)
|
||||||
var vm = avalon.vmodels.add_contest;
|
var vm = avalon.vmodels.add_contest;
|
||||||
else
|
else
|
||||||
var vm = avalon.define({
|
var vm = avalon.define({
|
||||||
$id: "add_contest",
|
$id: "add_contest",
|
||||||
title: "",
|
title: "",
|
||||||
description: "",
|
|
||||||
startTime: "",
|
startTime: "",
|
||||||
endTime: "",
|
endTime: "",
|
||||||
password: "",
|
password: "",
|
||||||
mode: "0",
|
|
||||||
showSubmission: true,
|
|
||||||
isGlobal: true,
|
isGlobal: true,
|
||||||
allGroups: [],
|
allGroups: [],
|
||||||
showGlobalViewRadio: true,
|
showGlobalViewRadio: true,
|
||||||
realTimeRank: true
|
realTimeRank: true,
|
||||||
|
|
||||||
|
contestDescriptionEditor: {
|
||||||
|
editorId: "contest-description-editor",
|
||||||
|
placeholder: "比赛介绍内容"
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@ -102,7 +91,6 @@ require(["jquery", "avalon", "editor", "uploader", "bsAlert", "csrfToken", "date
|
|||||||
if (data.data.admin_type == 1) {
|
if (data.data.admin_type == 1) {
|
||||||
vm.isGlobal = false;
|
vm.isGlobal = false;
|
||||||
vm.showGlobalViewRadio = false;
|
vm.showGlobalViewRadio = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -17,8 +17,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<textarea id="editor" placeholder="这里输入内容" autofocus ms-duplex="description"></textarea>
|
<ms:editor $id="contestDescriptionEditor" config="contestDescriptionEditor"></ms:editor>
|
||||||
<p class="error-info" ms-visible="description==''">请填写比赛描述</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
@ -39,7 +38,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>可见范围</label>
|
<label>比赛类型</label>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span ms-if="showGlobalViewRadio">
|
<span ms-if="showGlobalViewRadio">
|
||||||
@ -70,30 +69,12 @@
|
|||||||
<input type="checkbox" value="group_id" ms-duplex-checked="el.isSelected"> {{ el.name }}
|
<input type="checkbox" value="group_id" ms-duplex-checked="el.isSelected"> {{ el.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3">
|
|
||||||
<label>排名方式</label>
|
<div class="col-md-12">
|
||||||
<div class="form-group">
|
|
||||||
<label><input type="radio" name="mode" ms-duplex-string="mode" value="0">
|
|
||||||
<small>ACM</small>
|
|
||||||
</label>
|
|
||||||
<label><input type="radio" name="mode" ms-duplex-string="mode" value="1">
|
|
||||||
<small>分数</small>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-3">
|
|
||||||
<label>公开提交记录</label>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="text"><input type="checkbox" ms-duplex-checked="showSubmission">
|
|
||||||
<small>公开</small>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-3">
|
|
||||||
<label>实时排名</label>
|
<label>实时排名</label>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="text"><input type="checkbox" ms-duplex-checked="realTimeRank">
|
<label class="text"><input type="checkbox" ms-duplex-checked="realTimeRank">
|
||||||
<small>是</small>
|
<small>如果不勾选,排名会被缓存,不会更新,而且只显示自己的提交。用于 acm 封榜。</small>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -38,10 +38,10 @@
|
|||||||
<label>仅显示可见 <input ms-duplex-checked="showVisibleOnly" type="checkbox"/></label>
|
<label>仅显示可见 <input ms-duplex-checked="showVisibleOnly" type="checkbox"/></label>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-right">
|
<div class="text-right">
|
||||||
页数:{{ page }}/{{ totalPage }}
|
<ms:pager $id="contestListPager" config="pager"></ms:pager>
|
||||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
|
||||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
<div ms-visible="editingContestId">
|
<div ms-visible="editingContestId">
|
||||||
<form id="edit-contest-form">
|
<form id="edit-contest-form">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
@ -108,7 +108,7 @@
|
|||||||
<input type="text" class="form-control" name="password" placeholder="留空就是公开赛" ms-duplex="editPassword">
|
<input type="text" class="form-control" name="password" placeholder="留空就是公开赛" ms-duplex="editPassword">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-md-12" ms-visible="!isGlobal">
|
<div class="form-group col-md-12" ms-visible="!isGlobal">
|
||||||
<!-- radio 的value 没有用 但是没有的话,表单验证会出错-->
|
|
||||||
<div ms-repeat="allGroups" class="col-md-4">
|
<div ms-repeat="allGroups" class="col-md-4">
|
||||||
<input type="checkbox" value="group_id" ms-duplex-checked="el.isSelected"> {{ el.name }}
|
<input type="checkbox" value="group_id" ms-duplex-checked="el.isSelected"> {{ el.name }}
|
||||||
</div>
|
</div>
|
||||||
@ -186,6 +186,8 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script src="/static/js/app/admin/contest/contestList.js"></script>
|
<script src="/static/js/app/admin/contest/contestList.js"></script>
|
||||||
|
Loading…
Reference in New Issue
Block a user