core&ui: fix sidebar (#513)

Co-authored-by: panda <panda_dtdyy@outlook.com>
This commit is contained in:
undefinedandpanda authored and GitHub committed 2023-02-12 18:16:18 +08:00
1 parent 254f659f0a
commit c347d36e99
7 files changed
+13 -12

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "hydrooj", "name": "hydrooj",
"version": "4.7.4", "version": "4.7.5",
"bin": "bin/hydrooj.js", "bin": "bin/hydrooj.js",
"main": "src/plugin-api", "main": "src/plugin-api",
"module": "src/plugin-api", "module": "src/plugin-api",
+7 -7
View File
@@ -666,22 +666,22 @@ export class ProblemConfigHandler extends ProblemManageHandler {
export class ProblemFilesHandler extends ProblemDetailHandler { export class ProblemFilesHandler extends ProblemDetailHandler {
notUsage = true; notUsage = true;
@param('d', Types.CommaSeperatedArray, true)
@param('pjax', Types.Boolean) @param('pjax', Types.Boolean)
@param('sidebar', Types.Boolean) @param('sidebar', Types.Boolean)
async get(domainId: string, pjax = false, sidebar = false) { async get(domainId: string, d = ['testdata', 'additional_file'], pjax = false, sidebar = false) {
this.response.body.testdata = sortFiles(this.pdoc.data || []); this.response.body.testdata = d.includes('testdata') ? sortFiles(this.pdoc.data || []) : [];
this.response.body.reference = this.pdoc.reference; this.response.body.reference = this.pdoc.reference;
this.response.body.additional_file = sortFiles(this.pdoc.additional_file || []); this.response.body.additional_file = d.includes('additional_file') ? sortFiles(this.pdoc.additional_file || []) : [];
if (pjax) { if (pjax) {
const { testdata, additional_file } = this.response.body; const { testdata, additional_file } = this.response.body;
const owner = await user.getById(domainId, this.pdoc.owner); const owner = await user.getById(domainId, this.pdoc.owner);
const args = { const args = {
testdata, additional_file, pdoc: this.pdoc, owner_udoc: owner, sidebar, testdata, additional_file, pdoc: this.pdoc, owner_udoc: owner, sidebar,
}; };
const tasks = [ const tasks = [];
this.renderHTML('partials/problem_files.html', { ...args, filetype: 'testdata' }), if (d.includes('testdata')) tasks.push(this.renderHTML('partials/problem_files.html', { ...args, filetype: 'testdata' }));
this.renderHTML('partials/problem_files.html', { ...args, filetype: 'additional_file' }), if (d.includes('additional_file')) tasks.push(this.renderHTML('partials/problem_files.html', { ...args, filetype: 'additional_file' }));
];
if (!sidebar) tasks.push(this.renderHTML('partials/problem-sidebar-information.html', args)); if (!sidebar) tasks.push(this.renderHTML('partials/problem-sidebar-information.html', args));
this.response.body = { this.response.body = {
fragments: (await Promise.all(tasks)).map((i) => ({ html: i })), fragments: (await Promise.all(tasks)).map((i) => ({ html: i })),
+1
View File
@@ -6,6 +6,7 @@ export * from './components/dialog';
export * as bus from './bus'; export * as bus from './bus';
export { default as AnsiUp } from 'ansi_up'; export { default as AnsiUp } from 'ansi_up';
export { default as loadMonaco } from './components/monaco/loader'; export { default as loadMonaco } from './components/monaco/loader';
export { default as uploadFiles } from './components/upload';
export * as redux from 'react-redux'; export * as redux from 'react-redux';
export * from './components/zipDownloader'; export * from './components/zipDownloader';
export { default as $ } from 'jquery'; export { default as $ } from 'jquery';
+1 -1
View File
@@ -68,7 +68,7 @@ export default async function uploadFiles(endpoint = '', files: File[] | FileLis
Notification.success(i18n('File uploaded successfully.')); Notification.success(i18n('File uploaded successfully.'));
if (options.pjax) { if (options.pjax) {
let params = ''; let params = '';
if (options.type) params += `?testdata=${options.type === 'testdata'}&additional_file=${options.type === 'additional_file'}`; if (options.type) params += `?d=${options.type}`;
if (options.sidebar) params += `${params ? '&' : '?'}sidebar=true`; if (options.sidebar) params += `${params ? '&' : '?'}sidebar=true`;
await pjax.request({ push: false, url: `${endpoint}${params || ''}` }); await pjax.request({ push: false, url: `${endpoint}${params || ''}` });
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@hydrooj/ui-default", "name": "@hydrooj/ui-default",
"version": "4.47.3", "version": "4.47.4",
"author": "undefined <i@undefined.moe>", "author": "undefined <i@undefined.moe>",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"main": "index.ts", "main": "index.ts",
@@ -57,7 +57,7 @@ const page = new NamedPage('problem_config', () => {
type: 'CONFIG_DELETE_TESTDATA', type: 'CONFIG_DELETE_TESTDATA',
value: file, value: file,
}); });
await pjax.request({ url: './files?testdata=false&sidebar=true', push: false }); await pjax.request({ url: './files?d=testdata&sidebar=true', push: false });
} catch (error) { } catch (error) {
Notification.error(error.message); Notification.error(error.message);
} }
@@ -214,7 +214,7 @@ export default new NamedPage(['problem_create', 'problem_edit'], (pagename) => {
type: 'additional_file', type: 'additional_file',
}); });
Notification.success(i18n('File have been deleted.')); Notification.success(i18n('File have been deleted.'));
await pjax.request({ url: './files?testdata=false&sidebar=true', push: false }); await pjax.request({ url: './files?d=additional_file&sidebar=true', push: false });
} catch (error) { } catch (error) {
Notification.error(error.message); Notification.error(error.message);
} }