Systray系统盘注册表
系统盘是导航栏右侧的区域,包含各种小型组件,通常显示某种信息(如未读邮件数量)、通知和/或让用户与之互动。
系统托盘注册表包含这些系统托盘项的说明,这些说明是带有以下三个键的对象:
组件:表示项目的组件类。其根元素应为 <li> 标记,否则可能无法正确设置样式。
props(可选):应赋予组件的道具
isDisplayed(可选):接收 env 并返回布尔值的函数。如果为 true,则显示系统盘项。否则将被删除。
例子:
import { registry } from "@web/core/registry";
class MySystrayItem extends Component {
// some component ...
}
registry.category("systray").add("myAddon.myItem", {
Component: MySystrayItem,
});
const item = {
Component: MySystrayItem
};
registry.category("systray").add("myaddon.some_description", item, { sequence: 43 });
Usermenu用户菜单注册表
用户菜单注册表(类别:user_menuitems)包含打开用户菜单(右上角带有用户名的导航栏元素)时显示的所有菜单项。
用户菜单项由一个函数定义,该函数接收 env 并返回一个普通对象,其中包含以下信息:
- description:菜单项文本、
- href:(可选)如果给定(且为真),项目文本将被放入带有给定属性 href 的标签中、
- callback:选中项目时调用的回调、
- hide:(可选)表示是否隐藏项目(默认值:false)、
- sequence:(可选)决定项目在其他下拉菜单项目中的排名(默认值:100)。
用户菜单每次打开时都会调用定义项的所有功能。
例如:
import { registry } from "@web/core/registry";
registry.category("user_menuitems").add("my item", (env) => {
return {
description: env._t("Technical Settings"),
callback: () => { env.services.action_manager.doAction(3); },
hide: (Math.random() < 0.5),
};
});