修改 js 的命名风格
This commit is contained in:
@@ -101,9 +101,6 @@
|
||||
<li class="list-group-item" id="li-user-user_list">
|
||||
<a href="#user/user_list">用户列表</a>
|
||||
</li>
|
||||
<li class="list-group-item" id="li-user-user_group">
|
||||
<a href="#user/user_group">用户分组</a>
|
||||
</li>
|
||||
<li class="list-group-header">小组管理</li>
|
||||
<li class="list-group-item" id="li-group-group">
|
||||
<a href="#group/group">小组列表</a>
|
||||
@@ -124,8 +121,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="/static/js/config.js"></script>
|
||||
<script src="/static/js/require.js"></script>
|
||||
<script>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div ms-controller="announcement" class="col-md-9">
|
||||
<h1>Announcement</h1>
|
||||
<h1>公告管理</h1>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>编号</th>
|
||||
@@ -8,36 +8,38 @@
|
||||
<th>更新时间</th>
|
||||
<th>创建者</th>
|
||||
<th>状态</th>
|
||||
<th>操作</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr ms-repeat="announcement">
|
||||
<td>{{el.id}}</td>
|
||||
<td>{{el.title}}</td>
|
||||
<td>{{el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{el.last_update_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{el.created_by.username}}</td>
|
||||
<td>{{getState(el)}}</td>
|
||||
<tr ms-repeat="announcementList">
|
||||
<td>{{ el.id }}</td>
|
||||
<td>{{ el.title }}</td>
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.last_update_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.created_by.username }}</td>
|
||||
<td>{{ getState(el)}}</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-info" ms-click="enEdit(el)">编辑</button>
|
||||
<button class="btn-sm btn-info" ms-click="editAnnouncement(el)">编辑</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="form-group">
|
||||
<label>仅显示可见 <input ms-duplex-checked="visableOnly" type="checkbox"/></label>
|
||||
<label>仅显示可见 <input ms-duplex-checked="showVisibleOnly" type="checkbox"/></label>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
页数:{{page}}/{{page_count}}
|
||||
<button ms-attr-class="getBtnClass(0)" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass(1)" ms-click="getNext">下一页</button>
|
||||
<div class="right">
|
||||
页数:{{ page }}/{{ totalPage }}
|
||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
||||
</div>
|
||||
|
||||
<div ms-visible="isEditing">
|
||||
<div ms-visible="editingAnnouncementId">
|
||||
<h3>编辑公告</h3>
|
||||
<div class="form-group"><label for="title">标题</label>
|
||||
|
||||
<div class="form-group">
|
||||
<label>标题</label>
|
||||
<input name="title" type="text" class="form-control" id="newTitle" placeholder="公告标题" value=""></div>
|
||||
<div class="form-group">
|
||||
<label>内容</label>
|
||||
<textarea id="editAnnouncementEditor"></textarea>
|
||||
<textarea id="edit-announcement-editor"></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>可见 <input ms-duplex-checked="announcementVisible" type="checkbox"/></label>
|
||||
@@ -45,17 +47,17 @@
|
||||
<div class="form-group">
|
||||
<button ms-click="submitChange()" class="btn btn-primary">提交</button>
|
||||
|
||||
<button ms-click="disEdit()" class="btn btn-danger">取消</button>
|
||||
<button ms-click="cancelEdit()" class="btn btn-danger">取消</button>
|
||||
</div>
|
||||
</div>
|
||||
<h3>添加公告</h3>
|
||||
|
||||
<form id="announcement-form">
|
||||
<div class="form-group"><label for="title">标题</label>
|
||||
<div class="form-group"><label>标题</label>
|
||||
<input name="title" type="text" class="form-control" id="title" placeholder="公告标题"></div>
|
||||
<div class="form-group">
|
||||
<label>内容</label>
|
||||
<textarea id="editor" placeholder="公告内容"></textarea>
|
||||
<textarea id="create-announcement-editor" placeholder="公告内容"></textarea>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
|
||||
@@ -75,13 +75,18 @@
|
||||
<div class="col-md-12">
|
||||
<label>添加题目</label>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="add_problem()">添加</a>
|
||||
<div class="col-md-12">
|
||||
<label>上传测试用例</label>
|
||||
<label>选择题号</label><select ms-duplex="problemNo"><option value="-1">未指定</option><option ms-repeat="problems" ms-attr-value="$index+1">{{$index+1}}</option></select>
|
||||
<div id="uploader">
|
||||
<div>选择文件</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<label>上传测试用例</label>
|
||||
<label>选择题号</label><select ms-duplex="problemNo">
|
||||
<option value="-1">未指定</option>
|
||||
<option ms-repeat="problems" ms-attr-value="$index+1">{{$index+1}}</option>
|
||||
</select>
|
||||
|
||||
<div id="uploader">
|
||||
<div>选择文件</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="problem" ms-repeat-problem="problems">
|
||||
@@ -89,7 +94,7 @@
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title">题目{{$index + 1}} </span>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="toggle(problem)">
|
||||
{{getBtnContent(problem)}}
|
||||
{{ getBtnContent(problem)}}
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm" ms-click="del_problem(problem)">
|
||||
删除
|
||||
@@ -97,17 +102,19 @@
|
||||
</div>
|
||||
<div class="panel-body" ms-visible="problem.visible">
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目标题</label>
|
||||
<input type="text" name="problem_name[]" class="form-control" ms-duplex="problem.title">
|
||||
<label>题目标题</label>
|
||||
<input type="text" name="problem_name[]" class="form-control" ms-duplex="problem.title">
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目描述</label>
|
||||
<textarea ms-attr-id="problem-{{ problem.id }}-description" placeholder="这里输入内容"
|
||||
ms-duplex="problem.description"></textarea>
|
||||
<small ms-visible="problem.description==''" style="color:red">请填写题目描述</small>
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目描述</label>
|
||||
<textarea ms-attr-id="problem-{{ problem.id }}-description" placeholder="这里输入内容" ms-duplex="problem.description"></textarea>
|
||||
<small ms-visible="problem.description==''" style="color:red">请填写题目描述</small>
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>提示</label>
|
||||
<textarea ms-attr-id="problem-{{ problem.id }}-hint" placeholder="这里输入内容" ms-duplex="problem.hint"></textarea>
|
||||
<textarea ms-attr-id="problem-{{ problem.id }}-hint" placeholder="这里输入内容"
|
||||
ms-duplex="problem.hint"></textarea>
|
||||
</div>
|
||||
<div class="col-md-3 form-group">
|
||||
<label>cpu</label>
|
||||
@@ -119,19 +126,24 @@
|
||||
</div>
|
||||
<div class="col-md-3 form-group">
|
||||
<label>难度</label>
|
||||
<input type="number" name="difficulty[]" class="form-control" ms-duplex="problem.difficulty">
|
||||
<input type="number" name="difficulty[]" class="form-control"
|
||||
ms-duplex="problem.difficulty">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label>样例</label>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="add_sample(problem)">添加</a>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
||||
ms-click="add_sample(problem)">添加</a>
|
||||
|
||||
<div class="sample">
|
||||
<div class="panel panel-default sample-panel" ms-repeat-sample="problem.samples">
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title">样例{{$index + 1}}</span>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="toggle(sample)">
|
||||
{{getBtnContent(sample)}}
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
||||
ms-click="toggle(sample)">
|
||||
{{ getBtnContent(sample)}}
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm" ms-click="del_sample(problem, sample)">
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm"
|
||||
ms-click="del_sample(problem, sample)">
|
||||
删除
|
||||
</a>
|
||||
</div>
|
||||
@@ -167,8 +179,8 @@
|
||||
</tr>
|
||||
<tr ms-repeat="problem.testCaseList">
|
||||
<td>{{$index}}</td>
|
||||
<td>{{el.input}}</td>
|
||||
<td>{{el.output}}</td>
|
||||
<td>{{ el.input }}</td>
|
||||
<td>{{ el.output }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
<div ms-controller="group" class="col-md-9">
|
||||
<h1>小组管理</h1>
|
||||
<div class="text-right">
|
||||
|
||||
<div class="right">
|
||||
<form class="form-inline" onsubmit="return false;">
|
||||
<div class="form-group-sm">
|
||||
<label>搜索</label>
|
||||
<input class="form-control" placeholder="请输入关键词" ms-duplex="keyword">
|
||||
<input type="submit" value="搜索" class="btn btn-primary" ms-click="getPage(1)">
|
||||
<input type="submit" value="搜索" class="btn btn-primary" ms-click="search()">
|
||||
</div>
|
||||
</form>
|
||||
<br>
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
@@ -20,10 +20,10 @@
|
||||
<th>设置</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr ms-repeat="group_list">
|
||||
<td>{{el.id}}</td>
|
||||
<td>{{el.name}}</td>
|
||||
<td>{{el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<tr ms-repeat="groupList">
|
||||
<td>{{ el.id }}</td>
|
||||
<td>{{ el.name }}</td>
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.members_number }}</td>
|
||||
<td>{{ getGroupSettingString(el.join_group_setting) }}</td>
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="text-right">
|
||||
页数:{{page}}/{{page_count}}
|
||||
<button ms-attr-class="getBtnClass(0)" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass(1)" ms-click="getNext">下一页</button>
|
||||
<div class="right">
|
||||
页数:{{ page }}/{{ totalPage }}
|
||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div ms-controller="group_detail" class="col-md-9">
|
||||
<div ms-controller="groupDetail" class="col-md-9">
|
||||
<h1>小组成员管理</h1>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
@@ -8,7 +8,7 @@
|
||||
<th>加入时间</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr ms-repeat="member_list">
|
||||
<tr ms-repeat="memberList">
|
||||
<td>{{ el.user.id }}</td>
|
||||
<td>{{ el.user.username }}</td>
|
||||
<td>{{ el.user.real_name }}</td>
|
||||
@@ -21,9 +21,9 @@
|
||||
</table>
|
||||
|
||||
<div class="text-right">
|
||||
页数:{{ page }}/{{ page_count }}
|
||||
<button ms-attr-class="getBtnClass(0)" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass(1)" ms-click="getNext">下一页</button>
|
||||
页数:{{ page }}/{{ totalPage }}
|
||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
||||
</div>
|
||||
<h1>修改小组信息</h1>
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
<div class="form-group">
|
||||
|
||||
<label>加入小组设置</label>
|
||||
<input type="radio" name="join_group_setting" value="0" ms-duplex-string="checked_setting">允许任何人加入
|
||||
<input type="radio" name="join_group_setting" value="1" ms-duplex-string="checked_setting">提交请求后管理员审核
|
||||
<input type="radio" name="join_group_setting" value="2" ms-duplex-string="checked_setting">不允许任何人加入
|
||||
<input type="radio" name="join_group_setting" value="0" ms-duplex-string="checkedSetting">允许任何人加入
|
||||
<input type="radio" name="join_group_setting" value="1" ms-duplex-string="checkedSetting">提交请求后管理员审核
|
||||
<input type="radio" name="join_group_setting" value="2" ms-duplex-string="checkedSetting">不允许任何人加入
|
||||
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">提交</button>
|
||||
@@ -52,4 +52,4 @@
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<script src="/static/js/app/admin/group/group_detail.js"></script>
|
||||
<script src="/static/js/app/admin/group/groupDetail.js"></script>
|
||||
@@ -1,31 +1,31 @@
|
||||
<div ms-controller="request_list" class="col-md-9">
|
||||
<div ms-controller="requestList" class="col-md-9">
|
||||
<h1>加入小组请求管理</h1>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>创建时间</th>
|
||||
<th>用户</th>
|
||||
<th>小组</th>
|
||||
<th>用户</th>
|
||||
<th>附加消息</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
<tr ms-repeat="request_list">
|
||||
<td>{{el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<tr ms-repeat="requestList">
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.group.name }}</td>
|
||||
<td>{{ el.user.username }}</td>
|
||||
<td>{{ el.message }}</td>
|
||||
|
||||
<td>
|
||||
<button class="btn-sm btn-success" ms-click="processRequest(el.id, true)">同意</button>
|
||||
<button class="btn-sm btn-danger" ms-click="processRequest(el.id, false)">拒绝</button>
|
||||
<button class="btn-sm btn-success" ms-click="processRequest(el, true)">同意</button>
|
||||
<button class="btn-sm btn-danger" ms-click="processRequest(el, false)">拒绝</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<div class="text-right">
|
||||
页数:{{page}}/{{page_count}}
|
||||
<button ms-attr-class="getBtnClass(0)" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass(1)" ms-click="getNext">下一页</button>
|
||||
页数:{{ page }}/{{ totalPage }}
|
||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script src="/static/js/app/admin/group/join_group_request_list.js"></script>
|
||||
<script src="/static/js/app/admin/group/joinGroupRequestList.js"></script>
|
||||
@@ -1,4 +1,4 @@
|
||||
<div ms-controller="add_problem" class="col-md-9">
|
||||
<div ms-controller="addProblem" class="col-md-9">
|
||||
<form id="add-problem-form">
|
||||
|
||||
<div class="form-group col-md-12">
|
||||
@@ -41,27 +41,27 @@
|
||||
<div class="col-md-12 form-group">
|
||||
<label>输入描述</label><br>
|
||||
<textarea class="form-control" rows="5" name="input_description"
|
||||
ms-duplex="input_description"></textarea>
|
||||
ms-duplex="inputDescription"></textarea>
|
||||
</div>
|
||||
<div class="col-md-12 form-group">
|
||||
<label>输出描述</label><br>
|
||||
<textarea class="form-control" rows="5" name="output_description"
|
||||
ms-duplex="output_description"></textarea>
|
||||
ms-duplex="outputDescription"></textarea>
|
||||
</div>
|
||||
<div class="col-md-12"><br>
|
||||
<label>样例</label>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="add_sample()">添加</a>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="addSample()">添加</a>
|
||||
|
||||
<div class="sample">
|
||||
<div class="panel panel-default sample-panel" ms-repeat-sample="samples">
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title">样例{{$index + 1}}</span>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
||||
ms-click="toggle_sample(sample)">
|
||||
ms-click="toggleSample(sample)">
|
||||
{{ getBtnContent(sample)}}
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm"
|
||||
ms-click="del_sample(sample)">
|
||||
ms-click="delSample(sample)">
|
||||
删除
|
||||
</a>
|
||||
</div>
|
||||
|
||||
123
template/admin/problem/edit_problem.html
Normal file
123
template/admin/problem/edit_problem.html
Normal file
@@ -0,0 +1,123 @@
|
||||
<div ms-controller="editProblem" class="col-md-9">
|
||||
<form id="edit-problem-form">
|
||||
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目标题</label>
|
||||
<input type="text" name="title" autofocus class="form-control" ms-duplex="title">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12">
|
||||
<label>题目描述</label>
|
||||
<textarea id="problemDescription" placeholder="这里输入内容(此内容不能为空)" ms-duplex="description"></textarea>
|
||||
<small ms-visible="description==''" style="color:red">请填写题目描述</small>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>时间限制(ms)</label>
|
||||
<input type="number" name="cpu" class="form-control" ms-duplex="timeLimit">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>内存限制(MB)</label>
|
||||
<input type="number" name="memory" class="form-control" ms-duplex="memoryLimit">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="form-group"><label>难度</label>
|
||||
<input type="number" name="difficulty" class="form-control" ms-duplex="difficulty">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 form-group">
|
||||
<label>前台是否可见</label><br>
|
||||
<label><input type="checkbox" ms-duplex-checked="visible">
|
||||
<small> 可见</small>
|
||||
</label>
|
||||
</div>
|
||||
<div id="tag" class="col-md-12">
|
||||
<label>标签</label><br>
|
||||
<input type="text" id="tags">
|
||||
</div>
|
||||
<div class="col-md-12 form-group">
|
||||
<label>输入描述</label><br>
|
||||
<textarea class="form-control" rows="5" name="input_description"
|
||||
ms-duplex="inputDescription"></textarea>
|
||||
</div>
|
||||
<div class="col-md-12 form-group">
|
||||
<label>输出描述</label><br>
|
||||
<textarea class="form-control" rows="5" name="output_escription"
|
||||
ms-duplex="outputDescription"></textarea>
|
||||
</div>
|
||||
<div class="col-md-12"><br>
|
||||
<label>样例</label>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm" ms-click="addSample()">添加</a>
|
||||
|
||||
<div class="sample">
|
||||
<div class="panel panel-default sample-panel" ms-repeat-sample="samples">
|
||||
<div class="panel-heading">
|
||||
<span class="panel-title">样例{{$index + 1}}</span>
|
||||
<a href="javascript:void(0)" class="btn btn-primary btn-sm"
|
||||
ms-click="toggleSample(sample)">
|
||||
{{ getBtnContent(sample)}}
|
||||
</a>
|
||||
<a href="javascript:void(0)" class="btn btn-danger btn-sm"
|
||||
ms-click="delSample(sample)">
|
||||
删除
|
||||
</a>
|
||||
</div>
|
||||
<div class="panel-body row" ms-visible="sample.visible">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>样例输入</label>
|
||||
<textarea class="form-control" rows="5" ms-duplex="sample.input"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group">
|
||||
<label>样例输出</label>
|
||||
<textarea class="form-control" rows="5" ms-duplex="sample.output"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12"><br>
|
||||
<label>测试数据(当前已上传,继续上传将覆盖原有测试用例)</label><br>
|
||||
<small class="text-info">请将所有测试用例打包在一个文件中上传,所有文件要在压缩包的根目录,且输入输出文件名要以从1开始连续数字标识要对应例如:<br>
|
||||
1.in 1.out 2.in 2.out
|
||||
</small>
|
||||
<table class="table table-striped" ms-visible="uploadSuccess">
|
||||
<tr>
|
||||
<td>编号</td>
|
||||
<td>输入文件名</td>
|
||||
<td>输出文件名</td>
|
||||
</tr>
|
||||
<tr ms-repeat="testCaseList">
|
||||
<td>{{ $index + 1 }}</td>
|
||||
<td>{{ el.input }}</td>
|
||||
<td>{{ el.output }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<div id="testCaseFile">选择文件</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>提示</label>
|
||||
<textarea id="hint" placeholder="这里输入内容" ms-duplex="hint"></textarea>
|
||||
</div>
|
||||
<div class="form-group col-md-12">
|
||||
<label>来源</label>
|
||||
<input type="text" name="source" class="form-control" ms-duplex="source">
|
||||
</div>
|
||||
|
||||
<div class="col-md-12">
|
||||
<input type="submit" class="btn btn-success btn-lg" value="发布题目" id="submitBtn">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app/admin/problem/edit_problem.js"></script>
|
||||
40
template/admin/problem/problem_list.html
Normal file
40
template/admin/problem/problem_list.html
Normal file
@@ -0,0 +1,40 @@
|
||||
<div ms-controller="problemList" class="col-md-9">
|
||||
<h1>题目列表</h1>
|
||||
|
||||
<div class="right">
|
||||
<form class="form-inline" onsubmit="return false;">
|
||||
<div class="form-group-sm">
|
||||
<label>搜索</label>
|
||||
<input name="keyWord" class="form-control" placeholder="请输入关键词" ms-duplex="keyword">
|
||||
<input type="submit" value="搜索" class="btn btn-primary" ms-click="getPage(1)">
|
||||
</div>
|
||||
</form>
|
||||
<br>
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>题目</th>
|
||||
<th>创建时间</th>
|
||||
<th>作者</th>
|
||||
<td>通过次数/提交总数</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr ms-repeat="problemList">
|
||||
<td>{{ el.id }}</td>
|
||||
<td>{{ el.title }}</td>
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.created_by.username }}</td>
|
||||
<td>{{ el.total_accepted_number }}/{{ el.total_submit_number }}</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-info" ms-click="showEditProblemPage(el.id)">编辑</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/js/app/admin/problem/problem.js"></script>
|
||||
@@ -1,11 +1,12 @@
|
||||
<div ms-controller="user_list" class="col-md-9">
|
||||
<h1>User</h1>
|
||||
<div class="text-right">
|
||||
<div ms-controller="userList" class="col-md-9">
|
||||
<h1>用户管理</h1>
|
||||
|
||||
<div class="right">
|
||||
<form class="form-inline" onsubmit="return false;">
|
||||
<div class="form-group-sm">
|
||||
<label>搜索</label>
|
||||
<input name="keyWord" class="form-control" placeholder="请输入关键词" ms-duplex="key_word">
|
||||
<input type="submit" value="搜索" class="btn btn-primary" ms-click="getPage(1)">
|
||||
<input name="keyWord" class="form-control" placeholder="请输入关键词" ms-duplex="keyWord">
|
||||
<input type="submit" value="搜索" class="btn btn-primary" ms-click="search()">
|
||||
</div>
|
||||
</form>
|
||||
<br>
|
||||
@@ -21,16 +22,16 @@
|
||||
<th>用户类型</th>
|
||||
<th>修改</th>
|
||||
</tr>
|
||||
<tr ms-repeat="user_list">
|
||||
<td>{{el.id}}</td>
|
||||
<td>{{el.username}}</td>
|
||||
<td>{{el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{el.last_login|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{el.real_name}}</td>
|
||||
<td>{{el.email}}</td>
|
||||
<td>{{user_type[el.admin_type]}}</td>
|
||||
<tr ms-repeat="userList">
|
||||
<td>{{ el.id }}</td>
|
||||
<td>{{ el.username }}</td>
|
||||
<td>{{ el.create_time|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.last_login|date("yyyy-MM-dd HH:mm:ss")}}</td>
|
||||
<td>{{ el.real_name }}</td>
|
||||
<td>{{ el.email }}</td>
|
||||
<td>{{ userType[el.admin_type]}}</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-info" ms-click="enEdit(el)">编辑</button>
|
||||
<button class="btn-sm btn-info" ms-click="editUser(el)">编辑</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -38,12 +39,13 @@
|
||||
<label>仅显示管理员 <input ms-duplex-checked="showAdminOnly" type="checkbox"/></label>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
页数:{{page}}/{{page_count}}
|
||||
<button ms-attr-class="getBtnClass(0)" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass(1)" ms-click="getNext">下一页</button>
|
||||
页数:{{ page }}/{{ totalPage }}
|
||||
<button ms-attr-class="getBtnClass('pre')" ms-click="getPrevious">上一页</button>
|
||||
<button ms-attr-class="getBtnClass('next')" ms-click="getNext">下一页</button>
|
||||
</div>
|
||||
<div ms-visible="isEditing">
|
||||
<div ms-visible="editingUserId">
|
||||
<h3>修改用户信息</h3>
|
||||
|
||||
<form id="edit_user-form">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-4"><label>ID</label>
|
||||
@@ -53,7 +55,7 @@
|
||||
<input name="username" type="text" class="form-control" ms-duplex="username">
|
||||
</div>
|
||||
<div class="form-group col-md-4"><label>真实姓名</label>
|
||||
<input name="real_name" type="text" class="form-control" ms-duplex="real_name">
|
||||
<input name="real_name" type="text" class="form-control" ms-duplex="realName">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@@ -65,8 +67,8 @@
|
||||
<input name="email" type="email" class="form-control" ms-duplex="email">
|
||||
</div>
|
||||
<div class="form-group col-md-4"><label>用户类型</label>
|
||||
<select name="admin_type" class="form-control" ms-duplex="admin_type">
|
||||
<option ms-repeat="user_type" ms-attr-value="$index">{{el}}</option>
|
||||
<select name="admin_type" class="form-control" ms-duplex="adminType">
|
||||
<option ms-repeat="userType" ms-attr-value="$index">{{ el }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -76,4 +78,4 @@
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/js/app/admin/user/user_list.js"></script>
|
||||
<script src="/static/js/app/admin/user/userList.js"></script>
|
||||
@@ -1,34 +1,36 @@
|
||||
{% extends "oj_base.html" %}
|
||||
{% block body %}
|
||||
<div class="container main">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<h2 class="text-center">修改密码</h2>
|
||||
<div class="container main">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<h2 class="text-center">修改密码</h2>
|
||||
|
||||
<form id="change_password-form">
|
||||
<div class="form-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" class="form-control input-lg" id="username" name="username" placeholder="用户名"
|
||||
autofocus>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">旧密码</label>
|
||||
<input type="password" class="form-control input-lg" id="password" name="password" placeholder="密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new_password">新密码</label>
|
||||
<input type="password" class="form-control input-lg" id="new_password" name="new_password" placeholder="新密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="confirm_password">确认密码</label>
|
||||
<input type="password" class="form-control input-lg" id="confirm_password" name="confirm_password" placeholder="确认密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
<form id="change_password-form">
|
||||
<div class="form-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" class="form-control input-lg" id="username" name="username" placeholder="用户名"
|
||||
autofocus>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">旧密码</label>
|
||||
<input type="password" class="form-control input-lg" id="password" name="password" placeholder="密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new_password">新密码</label>
|
||||
<input type="password" class="form-control input-lg" id="new_password" name="new_password"
|
||||
placeholder="新密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="confirm_password">确认密码</label>
|
||||
<input type="password" class="form-control input-lg" id="confirm_password" name="confirm_password"
|
||||
placeholder="确认密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js_block %}
|
||||
<script src="/static/js/app/oj/account/change_password.js"></script>
|
||||
<script src="/static/js/app/oj/account/change_password.js"></script>
|
||||
{% endblock %}
|
||||
@@ -1,26 +1,26 @@
|
||||
{% extends "oj_base.html" %}
|
||||
{% block body %}
|
||||
<div class="container main">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<h2 class="text-center">用户登录</h2>
|
||||
<div class="container main">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<h2 class="text-center">用户登录</h2>
|
||||
|
||||
<form id="login-form">
|
||||
<div class="form-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" class="form-control input-lg" id="username" name="username" placeholder="用户名"
|
||||
autofocus>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">密码</label>
|
||||
<input type="password" class="form-control input-lg" id="password" name="password" placeholder="密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
<form id="login-form">
|
||||
<div class="form-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" class="form-control input-lg" id="username" name="username" placeholder="用户名"
|
||||
autofocus>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">密码</label>
|
||||
<input type="password" class="form-control input-lg" id="password" name="password" placeholder="密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js_block %}
|
||||
<script src="/static/js/app/oj/account/login.js"></script>
|
||||
<script src="/static/js/app/oj/account/login.js"></script>
|
||||
{% endblock %}
|
||||
@@ -1,38 +1,39 @@
|
||||
{% extends "oj_base.html" %}
|
||||
{% block body %}
|
||||
<div class="container main">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<h2 class="text-center">用户注册</h2>
|
||||
<div class="container main">
|
||||
<div class="col-md-6 col-md-offset-3">
|
||||
<h2 class="text-center">用户注册</h2>
|
||||
|
||||
<form id="register-form">
|
||||
<div class="form-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" class="form-control input-lg" id="username" name="username" placeholder="用户名"
|
||||
autofocus>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="real_name">真实姓名</label>
|
||||
<input type="text" class="form-control input-lg" id="real_name" name="real_name" placeholder="真实姓名">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">邮箱地址</label>
|
||||
<input type="email" class="form-control input-lg" id="email" name="email" placeholder="邮箱地址">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">密码</label>
|
||||
<input type="password" class="form-control input-lg" id="password" name="password" placeholder="密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="confirm_password">确认密码</label>
|
||||
<input type="password" class="form-control input-lg" id="confirm_password" name="confirm_password" placeholder="确认密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
<form id="register-form">
|
||||
<div class="form-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" class="form-control input-lg" id="username" name="username" placeholder="用户名"
|
||||
autofocus>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="real_name">真实姓名</label>
|
||||
<input type="text" class="form-control input-lg" id="real_name" name="real_name" placeholder="真实姓名">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="email">邮箱地址</label>
|
||||
<input type="email" class="form-control input-lg" id="email" name="email" placeholder="邮箱地址">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="password">密码</label>
|
||||
<input type="password" class="form-control input-lg" id="password" name="password" placeholder="密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="confirm_password">确认密码</label>
|
||||
<input type="password" class="form-control input-lg" id="confirm_password" name="confirm_password"
|
||||
placeholder="确认密码">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">提交</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js_block %}
|
||||
<script src="/static/js/app/oj/account/register.js"></script>
|
||||
<script src="/static/js/app/oj/account/register.js"></script>
|
||||
{% endblock %}
|
||||
@@ -1,22 +1,22 @@
|
||||
{% extends "oj_base.html" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="container main">
|
||||
<h1 class="text-center">{{ announcement.title }}</h1>
|
||||
<div class="container main">
|
||||
<h1 class="text-center">{{ announcement.title }}</h1>
|
||||
|
||||
<p class="text-muted text-center">
|
||||
作者:{{ announcement.created_by }}
|
||||
|
||||
创建时间:{{ announcement.create_time }}
|
||||
{% ifequal announcement.create_time announcement.last_update_time %}
|
||||
{% else %}
|
||||
|
||||
最后更新:{{ announcement.last_update_time }}
|
||||
{% endifequal %}
|
||||
</p>
|
||||
<p class="text-muted text-center">
|
||||
作者:{{ announcement.created_by }}
|
||||
|
||||
创建时间:{{ announcement.create_time }}
|
||||
{% ifequal announcement.create_time announcement.last_update_time %}
|
||||
{% else %}
|
||||
|
||||
最后更新:{{ announcement.last_update_time }}
|
||||
{% endifequal %}
|
||||
</p>
|
||||
|
||||
<div>
|
||||
<p>{{ announcement.content|safe }}</p>
|
||||
<div>
|
||||
<p>{{ announcement.content|safe }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,15 +1,15 @@
|
||||
{% extends "oj_base.html" %}
|
||||
{% block body %}
|
||||
<div class="container main">
|
||||
<ul class="nav nav-tabs nav-tabs-google">
|
||||
<li role="presentation" class="active">
|
||||
<a href="problem.html">题目</a></li>
|
||||
<li role="presentation"><a href="my_solutions_list.html">我的提交</a></li>
|
||||
<li role="presentation"><a href="#">排名</a></li>
|
||||
</ul>
|
||||
<h2 class="text-center">第一次比赛</h2>
|
||||
<div class="container main">
|
||||
<ul class="nav nav-tabs nav-tabs-google">
|
||||
<li role="presentation" class="active">
|
||||
<a href="problem.html">题目</a></li>
|
||||
<li role="presentation"><a href="my_solutions_list.html">我的提交</a></li>
|
||||
<li role="presentation"><a href="#">排名</a></li>
|
||||
</ul>
|
||||
<h2 class="text-center">第一次比赛</h2>
|
||||
|
||||
<p class="text-muted text-center"><b>开始时间:</b> 2015-6-8 19:00 <b>结束时间:</b> 2015-9-1 12:00</p>
|
||||
<p class="text-muted text-center"><b>开始时间:</b> 2015-6-8 19:00 <b>结束时间:</b> 2015-9-1 12:00</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,37 +1,39 @@
|
||||
{% extends "oj_base.html" %}
|
||||
{% block body %}
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
<div class="container">
|
||||
|
||||
<div class="jumbotron">
|
||||
<h1>青岛大学在线评测平台</h1>
|
||||
<div class="jumbotron">
|
||||
<h1>青岛大学在线评测平台</h1>
|
||||
|
||||
<p class="lead">走心的在线评测平台和算法交流社区,全新登场~</p>
|
||||
<p class="lead">走心的在线评测平台和算法交流社区,全新登场~</p>
|
||||
|
||||
<p><a class="btn btn-lg btn-primary" href="/problems/" role="button">开始刷题!</a></p>
|
||||
</div>
|
||||
|
||||
<!-- Example row of columns -->
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<h2>全新UI 全新设计</h2>
|
||||
|
||||
<p>精心设计的UI和交互让你。。。编不下去了 </p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h2>分布式评测</h2>
|
||||
|
||||
<p>技术领先的高性能分布式评测机制,根据提交数量自动伸缩判题机器实例。</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h2>高质量原创题目</h2>
|
||||
|
||||
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id
|
||||
ligula
|
||||
porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum
|
||||
nibh,
|
||||
ut fermentum massa.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p><a class="btn btn-lg btn-primary" href="/problems/" role="button">开始刷题!</a></p>
|
||||
</div>
|
||||
|
||||
<!-- Example row of columns -->
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<h2>全新UI 全新设计</h2>
|
||||
|
||||
<p>精心设计的UI和交互让你。。。编不下去了 </p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h2>分布式评测</h2>
|
||||
|
||||
<p>技术领先的高性能分布式评测机制,根据提交数量自动伸缩判题机器实例。</p>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h2>高质量原创题目</h2>
|
||||
|
||||
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula
|
||||
porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh,
|
||||
ut fermentum massa.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
<h2 class="text-center">{{ problem.title }}</h2>
|
||||
|
||||
<p class="text-muted text-center">发布时间 : {{ problem.create_time }}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{% extends 'oj_base.html' %}
|
||||
{% block css_block %}
|
||||
<style>
|
||||
.CodeMirror{
|
||||
height: auto;
|
||||
}
|
||||
.CodeMirror {
|
||||
height: auto;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
@@ -29,7 +29,7 @@
|
||||
{% ifequal submission.result 4 %}
|
||||
<p>{{ submission.info }}</p>
|
||||
{% endifequal %}
|
||||
<p>提交时间 : {{ submission.create_time }}</p>
|
||||
<p>提交时间 : {{ submission.create_time }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="code-field">
|
||||
@@ -40,7 +40,7 @@
|
||||
{% endblock %}
|
||||
{% block js_block %}
|
||||
<script>
|
||||
require(["jquery", "code_mirror"], function ($, code_mirror) {
|
||||
require(["jquery", "codeMirror"], function ($, codeMirror) {
|
||||
{% ifequal submission.language 1 %}
|
||||
var language = "text/x-csrc";
|
||||
{% else %}
|
||||
@@ -50,8 +50,8 @@
|
||||
var language = "text/x-java";
|
||||
{% endifequal %}
|
||||
{% endifequal %}
|
||||
var code_editor = code_mirror($("#code-editor")[0], language);
|
||||
code_editor.setOption("readOnly", true);
|
||||
var codeEditor = codeMirror($("#code-editor")[0], language);
|
||||
codeEditor.setOption("readOnly", true);
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="row">
|
||||
<div style="float: right;">
|
||||
<div class="search-box">
|
||||
<form class="form-inline" onsubmit="return false;">
|
||||
<div class="form-group-sm">
|
||||
<input name="keyWord" class="form-control" placeholder="请输入关键词" ms-duplex="key_word">
|
||||
@@ -28,7 +28,7 @@
|
||||
{% for item in problems %}
|
||||
<tr>
|
||||
<th scope="row"><a href="/problem/{{ item.id }}/">{{ item.id }}</a></th>
|
||||
<td><a href="/problem/1/">{{ item.title }}</a></td>
|
||||
<td><a href="/problem/{{ item.id }}/">{{ item.title }}</a></td>
|
||||
<td>{{ item.difficulty }}</td>
|
||||
<td>{{ item|accepted_radio }}</td>
|
||||
</tr>
|
||||
@@ -38,11 +38,13 @@
|
||||
<nav>
|
||||
<ul class="pager">
|
||||
{% if previous_page %}
|
||||
<li class="previous"><a href="/problems/{{ previous_page }}/"><span
|
||||
aria-hidden="true">←</span> 上一页</a></li>
|
||||
<li class="previous"><a
|
||||
href="/problems/{{ previous_page }}/{% if keyword %}?keyword={{ keyword }}{% endif %}{% if tag %}?tag={{ tag }}{% endif %}">
|
||||
<span aria-hidden="true">←</span> 上一页</a></li>
|
||||
{% endif %}
|
||||
{% if next_page %}
|
||||
<li class="next"><a href="/problems/{{ next_page }}/">下一页 <span
|
||||
<li class="next"><a
|
||||
href="/problems/{{ next_page }}/{% if keyword %}?keyword={{ keyword }}{% endif %}{% if tag %}?tag={{ tag }}{% endif %}">下一页 <span
|
||||
aria-hidden="true">→</span></a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
@@ -48,28 +48,28 @@
|
||||
<li><a href="/about/">关于</a></li>
|
||||
</ul>
|
||||
{% if request.user.is_authenticated %}
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
李扬
|
||||
<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">我的提交</a></li>
|
||||
<li><a href="#">我的资料</a></li>
|
||||
<li role="separator" class="divider"></li>
|
||||
<li><a href="#">退出</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
|
||||
aria-expanded="false">
|
||||
李扬
|
||||
<span class="caret"></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">我的提交</a></li>
|
||||
<li><a href="#">我的资料</a></li>
|
||||
<li role="separator" class="divider"></li>
|
||||
<li><a href="#">退出</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
{% else %}
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a href="/login/" class="dropdown-toggle">
|
||||
登录
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<li class="dropdown">
|
||||
<a href="/login/" class="dropdown-toggle">
|
||||
登录
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user