You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.7 KiB
120 lines
4.7 KiB
<% this.title = '上传测试数据'; %> |
|
<% include header %> |
|
<div class="padding"> |
|
<div class="ui grid"> |
|
<div class="row"> |
|
<div class="seven wide column"> |
|
<% if (problem.testdata) { %> |
|
<p>数据包:<%= problem.testdata.filename %></p> |
|
<% |
|
try { |
|
let list = syzoj.utils.parseTestData(problem.testdata.getPath()); |
|
%> |
|
<table class="ui very basic table"> |
|
<thead> |
|
<tr> |
|
<th>输入文件</th> |
|
<th>输出文件</th> |
|
</tr> |
|
</thead> |
|
<tbody> |
|
<% for (let testcase of list) { %> |
|
<tr> |
|
<td><%= testcase.input %></td> |
|
<td><%= testcase.output %></td> |
|
</tr> |
|
<% } %> |
|
</tbody> |
|
</table> |
|
<% } catch (e) { %> |
|
<h3>数据包错误:<%= e %></h3> |
|
<% } %> |
|
<% } else { %> |
|
<h3>数据未上传</h3> |
|
<% } %> |
|
</div> |
|
<div class="nine wide column"> |
|
<form class="ui form" action="<%= syzoj.utils.makeUrl(['problem', problem.id, 'upload']) %>" method="post" enctype="multipart/form-data"> |
|
<div class="two fields"> |
|
<div class="field"> |
|
<label for="doc-ds-ipt-1">时间限制(单位: ms)</label> |
|
<input type="number" name="time_limit" value="<%= problem.time_limit %>"> |
|
</div> |
|
<div class="field"> |
|
<label for="doc-ds-ipt-1">内存限制(单位: MiB)</label> |
|
<input type="number" name="memory_limit" value="<%= problem.memory_limit %>"> |
|
</div> |
|
</div> |
|
<% if (!problem.file_io) { %> |
|
<div class="inline fields"> |
|
<label>IO 方式</label> |
|
<div class="field"> |
|
<div class="ui radio checkbox"> |
|
<input name="io_method" value="std-io" id="std-io" type="radio" onclick="goDisable()" checked> |
|
<label for="std-io">标准 IO</label> |
|
</div> |
|
</div> |
|
<div class="field"> |
|
<div class="ui radio checkbox"> |
|
<input name="io_method" value="file-io" id="file-io" type="radio" onclick="goEnable()"> |
|
<label for="file-io">文件 IO</label> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="two fields"> |
|
<div class="field"> |
|
<label for="file_io_input_name">输入文件名</label> |
|
<input type="text" id="file-io-input-name" name="file_io_input_name" value="<%= problem.file_io_input_name %>" disabled> |
|
</div> |
|
<div class="field"> |
|
<label for="file_io_output_name">输出文件名</label> |
|
<input type="text" id="file-io-output-name" name="file_io_output_name" value="<%= problem.file_io_output_name %>" disabled> |
|
</div> |
|
</div> |
|
<% } else { %> |
|
<div class="inline fields"> |
|
<label>IO 方式</label> |
|
<div class="field"> |
|
<div class="ui radio checkbox"> |
|
<input name="io_method" value="std-io" id="std-io" type="radio" onclick="goDisable()"> |
|
<label for="std-io">标准 IO</label> |
|
</div> |
|
</div> |
|
<div class="field"> |
|
<div class="ui radio checkbox"> |
|
<input name="io_method" value="file-io" id="file-io" type="radio" onclick="goEnable()" checked> |
|
<label for="file-io">文件 IO</label> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="two fields"> |
|
<div class="field"> |
|
<label for="file_io_input_name">输入文件名</label> |
|
<input type="text" id="file-io-input-name" name="file_io_input_name" value="<%= problem.file_io_input_name %>"> |
|
</div> |
|
<div class="field"> |
|
<label for="file_io_output_name">输出文件名</label> |
|
<input type="text" id="file-io-output-name" name="file_io_output_name" value="<%= problem.file_io_output_name %>"> |
|
</div> |
|
</div> |
|
<% } %> |
|
<div class="field"> |
|
<label for="testdata">测试数据</label> |
|
<input type="file" id="testdata" name="testdata"> |
|
</div> |
|
<button type="submit" class="ui button">提交</button> |
|
</form> |
|
</div> |
|
</div> |
|
<div> |
|
<script> |
|
function goEnable() { |
|
document.getElementById('file-io-input-name').disabled = false; |
|
document.getElementById('file-io-output-name').disabled = false; |
|
} |
|
function goDisable() { |
|
document.getElementById('file-io-input-name').disabled = true; |
|
document.getElementById('file-io-output-name').disabled = true; |
|
} |
|
</script> |
|
<% include footer %>
|
|
|