<?php
requirePHPLib('form');
requirePHPLib('judger');
requirePHPLib('data');

UOJProblem::init(UOJRequest::get('id')) || UOJResponse::page404();
UOJProblem::cur()->userCanManage(Auth::user()) || UOJResponse::page403();

$problem_configure = new UOJProblemConfigure(UOJProblem::cur());
$problem_configure->runAtServer();
$problem_conf_str = '';

foreach ($problem_configure->problem_conf->conf as $key => $val) {
	if ($key == 'use_builtin_judger' && $val == 'off') {
		continue;
	}

	if ($key == 'use_builtin_checker' && $val == 'ownchk') {
		continue;
	}

	$problem_conf_str .= "{$key} {$val}\n";
}
?>

<?php echoUOJPageHeader('数据配置 - ' . HTML::stripTags(UOJProblem::cur()->getTitle(['with' => 'id']))) ?>

<h1>
	<?= UOJProblem::cur()->getTitle(['with' => 'id']) ?> 数据配置
</h1>

<div class="row mt-3">
	<div class="col-12 col-md-4">
		<div class="card">
			<div class="card-header fw-bold">problem.conf 预览</div>

			<div class="card-body p-0" id="problem-conf-preview">
				<pre class="bg-light mb-0 p-3"><code><?= $problem_conf_str ?></code></pre>
			</div>

			<div class="card-footer bg-transparent small text-muted">
				此处显示的 <code>problem.conf</code> 为根据右侧填写的配置信息生成的内容预览,并非题目当前实际配置文件。
			</div>
		</div>
		<div class="card mt-3">
			<div class="card-header fw-bold">功能说明</div>

			<div class="card-body">
				<p>此处可以对 <b>传统题</b> 进行快速配置,在填写完成之后点击页面底部的「提交」按钮即可替换现有配置文件并进行数据同步。</p>
				<p>目前暂不支持对交互题、提交答案题、通信题进行配置,对于此类题目请手动编写配置文件。</p>
				<p>如需要配置子任务依赖,也可以基于此处生成的配置文件进行修改后再手动上传。</p>
				<p>关于数据配置的更多帮助,请查阅 <a href="https://s2oj.github.io/#/manage/tutorial/problem_data" target="_blank">帮助文档</a>。</p>
			</div>
		</div>
	</div>
	<div class="col-12 col-md-8 mt-3 mt-md-0">
		<?php $problem_configure->printHTML() ?>
	</div>
</div>

<?php echoUOJPageFooter() ?>