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