diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index a38286534..38fc5069a 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "4.2.10", + "version": "4.2.11", "bin": "bin/hydrooj.js", "main": "src/plugin-api", "module": "src/plugin-api", diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index 81fffa2d7..2ec3cef2b 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -695,7 +695,7 @@ export interface Lib extends Record { problemSearch: ProblemSearch; } -export type UIInjectableFields = 'ProblemAdd' | 'Nav' | 'UserDropdown' | 'DomainManage' | 'ControlPanel'; +export type UIInjectableFields = 'ProblemAdd' | 'Notification' | 'Nav' | 'UserDropdown' | 'DomainManage' | 'ControlPanel'; export interface UI { template: Record, nodes: Record, diff --git a/packages/hydrooj/src/loader.ts b/packages/hydrooj/src/loader.ts index a549c97ac..8a7e23c1d 100644 --- a/packages/hydrooj/src/loader.ts +++ b/packages/hydrooj/src/loader.ts @@ -16,6 +16,8 @@ import { Logger } from './logger'; import { Context } from './context'; // eslint-disable-next-line import/no-duplicates import { unwrapExports } from './utils'; +import { PRIV } from './model/builtin'; +import { inject } from './lib/ui'; const argv = cac().parse(); const logger = new Logger('loader'); @@ -95,6 +97,7 @@ export function addon(addonPath: string, prepend = false) { } catch (e) { logger.error(`Addon not found: ${addonPath}`); logger.error(e); + inject('Notification', 'Addon not found: {0}', { args: [addonPath] }, PRIV.PRIV_VIEW_SYSTEM_NOTIFICATION); } } diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index a762e3fee..e7b3eba05 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.42.8", + "version": "4.42.9", "author": "undefined ", "license": "AGPL-3.0", "main": "index.ts", diff --git a/packages/ui-default/templates/layout/basic.html b/packages/ui-default/templates/layout/basic.html index 379177872..4304b0c4a 100644 --- a/packages/ui-default/templates/layout/basic.html +++ b/packages/ui-default/templates/layout/basic.html @@ -6,6 +6,9 @@
{% if UserContext %}{% include "partials/header_mobile.html" %}{% endif %}
+ {% for item in ui.getNodes('Notification') %}{% if item.checker(handler) %} +
{{ _(item.name).format(item.args.args or []) }}
+ {% endif %}{% endfor %} {% block content %}{% endblock %}
{% include "partials/footer.html" %}