mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17: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',
|
init: '正在安装沙箱 / Installing sandbox',
|
||||||
operations: [
|
operations: [
|
||||||
[`curl -fSL ${_SANDBOX_[retry % _SANDBOX_.length]} -o /usr/bin/sandbox`, { retry: true }],
|
[`curl -fSL ${_SANDBOX_[retry % _SANDBOX_.length]} -o /usr/bin/hydro-sandbox`, { retry: true }],
|
||||||
'chmod +x /usr/bin/sandbox',
|
'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 "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',
|
'pm2 start "mongod --auth --bind_ip 0.0.0.0" --name mongodb',
|
||||||
() => sleep(1000),
|
() => sleep(1000),
|
||||||
'pm2 start sandbox',
|
'pm2 start hydro-sandbox',
|
||||||
'pm2 start hydrooj',
|
'pm2 start hydrooj',
|
||||||
'pm2 startup',
|
'pm2 startup',
|
||||||
'pm2 save',
|
'pm2 save',
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hydrooj",
|
"name": "hydrooj",
|
||||||
"version": "2.28.34",
|
"version": "2.28.35",
|
||||||
"bin": "bin/hydrooj.js",
|
"bin": "bin/hydrooj.js",
|
||||||
"main": "dist/loader.js",
|
"main": "dist/loader.js",
|
||||||
"typings": "dist/loader.d.ts",
|
"typings": "dist/loader.d.ts",
|
||||||
|
|||||||
@@ -87,7 +87,9 @@ export class ProblemMainHandler extends ProblemHandler {
|
|||||||
sort = result;
|
sort = result;
|
||||||
} else query.$text = { $search: q };
|
} 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);
|
await bus.serial('problem/list', query, this);
|
||||||
// eslint-disable-next-line prefer-const
|
// eslint-disable-next-line prefer-const
|
||||||
let [pdocs, ppcount, pcount] = await paginate(
|
let [pdocs, ppcount, pcount] = await paginate(
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export default class DomDialog extends DOMAttachedObject {
|
|||||||
this.options = {
|
this.options = {
|
||||||
cancelByClickingBack: false,
|
cancelByClickingBack: false,
|
||||||
cancelByEsc: false,
|
cancelByEsc: false,
|
||||||
onDispatch: () => {},
|
onDispatch: () => { },
|
||||||
...options,
|
...options,
|
||||||
};
|
};
|
||||||
this._defer = null;
|
this._defer = null;
|
||||||
@@ -37,17 +37,17 @@ export default class DomDialog extends DOMAttachedObject {
|
|||||||
opacity: 0,
|
opacity: 0,
|
||||||
});
|
});
|
||||||
$wrap.width();
|
$wrap.width();
|
||||||
$wrap.transition({
|
$wrap.transition(
|
||||||
opacity: 1,
|
{ opacity: 1 },
|
||||||
}, {
|
{
|
||||||
duration: 100,
|
duration: 100,
|
||||||
easing: 'easeOutCubic',
|
easing: 'easeOutCubic',
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
const $dgContent = this.$dom.find('.dialog__content');
|
const $dgContent = this.$dom.find('.dialog__content');
|
||||||
$dgContent.css({
|
$dgContent.css({ scale: 0.8 });
|
||||||
scale: 0.8,
|
$dgContent.trigger('vjContentNew');
|
||||||
});
|
|
||||||
await $dgContent
|
await $dgContent
|
||||||
.transition({
|
.transition({
|
||||||
scale: 1,
|
scale: 1,
|
||||||
|
|||||||
@@ -2,14 +2,19 @@ import { AutoloadPage } from 'vj/misc/Page';
|
|||||||
import request from 'vj/utils/request';
|
import request from 'vj/utils/request';
|
||||||
|
|
||||||
export default new AutoloadPage('media', async () => {
|
export default new AutoloadPage('media', async () => {
|
||||||
const items = [];
|
async function parseMedia($dom = $(document.body)) {
|
||||||
const resolvers = [];
|
const items = [];
|
||||||
const users = $('div[data-user]');
|
const resolvers = [];
|
||||||
users.get().forEach((ele) => {
|
const users = $dom.find('div[data-user]');
|
||||||
items.push({ type: 'user', id: $(ele).text() });
|
users.get().forEach((ele) => {
|
||||||
resolvers.push((html) => $(ele).replaceWith($(html)));
|
items.push({ type: 'user', id: $(ele).text() });
|
||||||
});
|
resolvers.push((html) => $(ele).replaceWith($(html)));
|
||||||
if (!items.length) return;
|
});
|
||||||
const res = await request.post('/media', { items });
|
if (!items.length) return;
|
||||||
for (let i = 0; i < res.length; i++) resolvers[i](res[i]);
|
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) {
|
if (msg.mdoc.flag & FLAG_ALERT) {
|
||||||
// Is alert
|
// Is alert
|
||||||
new InfoDialog({
|
new InfoDialog({
|
||||||
|
cancelByClickingBack: false,
|
||||||
$body: tpl`
|
$body: tpl`
|
||||||
<div class="typo">
|
<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>
|
<p>${i18n(msg.mdoc.content)}</p>
|
||||||
</div>`,
|
</div>`,
|
||||||
}).open();
|
}).open();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.11.19",
|
"version": "4.11.20",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "hydro.js",
|
"main": "hydro.js",
|
||||||
|
|||||||
Reference in new issue
Block a user