diff --git a/install/install.js b/install/install.js index 8fa9203f8..0bc90507e 100644 --- a/install/install.js +++ b/install/install.js @@ -166,8 +166,8 @@ apt-get -qq update && apt-get -q install -y mongodb-org`, { retry: true }], { init: '正在安装沙箱 / Installing sandbox', operations: [ - [`curl -fSL ${_SANDBOX_[retry % _SANDBOX_.length]} -o /usr/bin/sandbox`, { retry: true }], - 'chmod +x /usr/bin/sandbox', + [`curl -fSL ${_SANDBOX_[retry % _SANDBOX_.length]} -o /usr/bin/hydro-sandbox`, { retry: true }], + 'chmod +x /usr/bin/hydro-sandbox', ], }, { @@ -195,7 +195,7 @@ apt-get -qq update && apt-get -q install -y mongodb-org`, { retry: true }], `pm2 start "MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY} MINIO_SECRET_KEY=${MINIO_SECRET_KEY} minio server /data/file" --name minio`, 'pm2 start "mongod --auth --bind_ip 0.0.0.0" --name mongodb', () => sleep(1000), - 'pm2 start sandbox', + 'pm2 start hydro-sandbox', 'pm2 start hydrooj', 'pm2 startup', 'pm2 save', diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 90a21aeec..4ff8823e3 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.28.34", + "version": "2.28.35", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/handler/problem.ts b/packages/hydrooj/src/handler/problem.ts index 29491a40b..40c2b5634 100644 --- a/packages/hydrooj/src/handler/problem.ts +++ b/packages/hydrooj/src/handler/problem.ts @@ -87,7 +87,9 @@ export class ProblemMainHandler extends ProblemHandler { sort = result; } else query.$text = { $search: q }; } - if (!this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) query.hidden = false; + if (!this.user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) { + query.$or = [{ hidden: false }, { owner: this.user._id }, { maintainer: this.user._id }]; + } await bus.serial('problem/list', query, this); // eslint-disable-next-line prefer-const let [pdocs, ppcount, pcount] = await paginate( diff --git a/packages/ui-default/components/dialog/DomDialog.js b/packages/ui-default/components/dialog/DomDialog.js index a401f143e..0487516ee 100644 --- a/packages/ui-default/components/dialog/DomDialog.js +++ b/packages/ui-default/components/dialog/DomDialog.js @@ -13,7 +13,7 @@ export default class DomDialog extends DOMAttachedObject { this.options = { cancelByClickingBack: false, cancelByEsc: false, - onDispatch: () => {}, + onDispatch: () => { }, ...options, }; this._defer = null; @@ -37,17 +37,17 @@ export default class DomDialog extends DOMAttachedObject { opacity: 0, }); $wrap.width(); - $wrap.transition({ - opacity: 1, - }, { - duration: 100, - easing: 'easeOutCubic', - }); + $wrap.transition( + { opacity: 1 }, + { + duration: 100, + easing: 'easeOutCubic', + } + ); const $dgContent = this.$dom.find('.dialog__content'); - $dgContent.css({ - scale: 0.8, - }); + $dgContent.css({ scale: 0.8 }); + $dgContent.trigger('vjContentNew'); await $dgContent .transition({ scale: 1, diff --git a/packages/ui-default/components/media/media.page.js b/packages/ui-default/components/media/media.page.js index c36877807..cf3f58d57 100644 --- a/packages/ui-default/components/media/media.page.js +++ b/packages/ui-default/components/media/media.page.js @@ -2,14 +2,19 @@ import { AutoloadPage } from 'vj/misc/Page'; import request from 'vj/utils/request'; export default new AutoloadPage('media', async () => { - const items = []; - const resolvers = []; - const users = $('div[data-user]'); - users.get().forEach((ele) => { - items.push({ type: 'user', id: $(ele).text() }); - resolvers.push((html) => $(ele).replaceWith($(html))); - }); - if (!items.length) return; - const res = await request.post('/media', { items }); - for (let i = 0; i < res.length; i++) resolvers[i](res[i]); + async function parseMedia($dom = $(document.body)) { + const items = []; + const resolvers = []; + const users = $dom.find('div[data-user]'); + users.get().forEach((ele) => { + items.push({ type: 'user', id: $(ele).text() }); + resolvers.push((html) => $(ele).replaceWith($(html))); + }); + if (!items.length) return; + const res = await request.post('/media', { items }); + for (let i = 0; i < res.length; i++) resolvers[i](res[i]); + } + + await parseMedia(); + $(document).on('vjContentNew', (e) => parseMedia($(e.target))); }); diff --git a/packages/ui-default/components/message/index.page.js b/packages/ui-default/components/message/index.page.js index fef3b3747..ecb878da7 100644 --- a/packages/ui-default/components/message/index.page.js +++ b/packages/ui-default/components/message/index.page.js @@ -32,9 +32,10 @@ const messagePage = new AutoloadPage('messagePage', () => { if (msg.mdoc.flag & FLAG_ALERT) { // Is alert new InfoDialog({ + cancelByClickingBack: false, $body: tpl`
-

${i18n('Message from {0}:', msg.mdoc.from)}

+ ${{ templateRaw: true, html: i18n('Message from {0}:', `
${msg.mdoc.from}
`) }}

${i18n(msg.mdoc.content)}

`, }).open(); diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 800beaf6d..23265d2e8 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.11.19", + "version": "4.11.20", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js",