mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
ui: 比赛广播消息时显示发送者uid
This commit is contained in:
1 parent
923d10fb84
commit
549c68cfa4
7 files changed
+35
-27
No files matched your search
+3
-3
@@ -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',
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)));
|
||||
});
|
||||
@@ -32,9 +32,10 @@ const messagePage = new AutoloadPage('messagePage', () => {
|
||||
if (msg.mdoc.flag & FLAG_ALERT) {
|
||||
// Is alert
|
||||
new InfoDialog({
|
||||
cancelByClickingBack: false,
|
||||
$body: tpl`
|
||||
<div class="typo">
|
||||
<p>${i18n('Message from {0}:', msg.mdoc.from)}</p>
|
||||
${{ templateRaw: true, html: i18n('Message from {0}:', `<div data-user>${msg.mdoc.from}</div>`) }}
|
||||
<p>${i18n(msg.mdoc.content)}</p>
|
||||
</div>`,
|
||||
}).open();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@hydrooj/ui-default",
|
||||
"version": "4.11.19",
|
||||
"version": "4.11.20",
|
||||
"author": "undefined <i@undefined.moe>",
|
||||
"license": "AGPL-3.0",
|
||||
"main": "hydro.js",
|
||||
|
||||
Reference in new issue
Block a user