core: 修复training nav支持定义插入位置

This commit is contained in:
undefined committed 2020-09-19 22:53:58 +08:00
1 parent 47ceddea9e
commit 46630065aa
6 files changed
+17 -8

No files matched your search

+3 -1
View File
@@ -8,4 +8,6 @@ message.markAsRead
+hack
评测队列优先级系统
讨论浏览数量显示
解离mail模块
解离mail模块
@param @get @post @arg
extend problem settings
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hydrooj",
"version": "2.13.14",
"version": "2.13.15",
"bin": "bin/hydrooj.js",
"main": "dist/loader.js",
"typings": "dist/loader.d.ts",
+1 -1
View File
@@ -176,7 +176,7 @@ class DomainRoleHandler extends ManageHandler {
const rdict: Dictionary<any> = {};
for (const r of roles) rdict[r._id] = r.perm;
if (rdict[role]) throw new RoleAlreadyExistError(role);
await domain.addRole(domainId, role, rdict.default.perm);
await domain.addRole(domainId, role, rdict.default);
this.back();
}
+2 -1
View File
@@ -167,7 +167,7 @@ export class ProblemDetailHandler extends ProblemHandler {
udoc: User;
@param('pid', Types.String, null, parsePid)
@param('pid', Types.String, true, null, parsePid)
async _prepare(domainId: string, pid: number | string) {
this.response.template = 'problem_detail.html';
this.pdoc = await problem.get(domainId, pid, this.user._id);
@@ -418,6 +418,7 @@ export class ProblemEditHandler extends ProblemManageHandler {
@param('content', Types.String, isContent)
async post(domainId: string, title: string, content: string) {
const $update: Partial<Pdoc> = { title, content };
console.log(this.request.body);
if (this.request.body.pid) $update.pid = checkPid(this.request.body.pid);
const pdoc = await problem.get(domainId, this.request.params.pid);
await problem.edit(domainId, pdoc.docId, $update);
+1 -1
View File
@@ -100,7 +100,7 @@ class TrainingDetailHandler extends Handler {
async get(domainId: string, tid: ObjectID) {
const tdoc = await training.get(domainId, tid);
await bus.serial('training/get', tdoc, this);
const pids = training.getPids(tdoc);
const pids = training.getPids(tdoc.dag);
const [owner, pdict] = await Promise.all([
user.getById(domainId, tdoc.owner),
problem.getList(domainId, pids, this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)),
+9 -3
View File
@@ -37,9 +37,15 @@ export const Nav = (
name: string, args: Dictionary<any> = {}, prefix: string,
...permPrivChecker: Array<number | bigint | Function>
) => {
global.Hydro.ui.nodes.nav.push({
name, args: args || {}, prefix, checker: buildChecker(...permPrivChecker),
});
if (name.startsWith('@@')) {
global.Hydro.ui.nodes.nav.splice(+name.split('@@')[1], 0, {
name: name.split('@@')[2], args: args || {}, prefix, checker: buildChecker(...permPrivChecker),
});
} else {
global.Hydro.ui.nodes.nav.push({
name, args: args || {}, prefix, checker: buildChecker(...permPrivChecker),
});
}
};
export const ProblemAdd = (