create_menu
- create_menu: function(menu, forms_container, options)
使用范围: client
编程语言: javascript
父类: Task
描述说明
create_menu 方法将基于项目的 task 树
创建一个菜单。
如果设置了 project parameters 的在选项卡中显示表单窗体的属性,将初始化创建后被用于显示表单窗体的选项卡。
该方法将迭代 task 树 的实体项,并将可见属性设置为 true 且用户有权限查看的实体项添加到菜单中。
该方法用于将点击事件分配给菜单项,当用户点击时, 对于报表将执行 print 方法, 而对其他项目将执行 view 方法。
可以把下列参数传递给该方法:
menu- 来自 index.html 文件中的菜单元素的 JQuery 对象forms_container一个 JQuery 对象,其元素包含由 view 常见的表单窗体。options- 可以有下列属性的对象:custom_menu- 使用这个选项来创建一个自定义菜单,请见下文view_first- 如果为 `` true`` ,则创建菜单后将显示菜单中第一个实体项的视图表单窗体,默认值为false。create_single_group- 如果为 true,并且任务树中只有一个组有实体项,则将创建该组的菜单项,该菜单项具有组实体项的下拉菜单,否则将创建每个实体项的菜单项。默认值为false`` 。splash_screen- 一个 html ,当关闭全部选项卡是,它将显示在 forms_container 中。
自定义菜单选项
要创建你自己的自定义菜单,你必须设置 custom_menu 选项。
这个选项是一个含有多个菜单对象的列表,其中每个菜单对象可以是:
Jam.py 实体项或 or 实体项组
array: 数组的第一个元素是菜单项的名称,第二个是菜单对象的列表
有一个属性的对象: 属性的 “键” 是菜单项的名称,而 “值” 是菜单对象的列表
有一个属性的对象: 属性的 “键” 是菜单项的名称,而 “值” 是一个点击菜单项将要执行的函数。
要添加一个分隔线,可以将一个空字符串( '' )添加到菜单对象的列表中。
示例
修改后 “on_page_loloaded” 如下所示:
task.create_menu($("#menu"), $("#content"), {
custom_menu: menu,
splash_screen: '<h1 class="text-center">Jam.py Demo Application</h1>',
view_first: true
});
在同一个 “on_page_looaded” 中使用自定义菜单的示例:
let menu = [
['First', [task.invoices, task.customers]],
{'Second': [task.catalogs, '', task.reports]},
{Third: [task.tracks, {Params: function() {alert('params clicked')}}]},
{Fourth: [task.task.analytics, {'Artists list': [task.artists]}]},
task.reports,
{Params: function() {alert('params clicked')}},
];
task.create_menu($("#menu"), $("#content"), {
custom_menu: menu,
splash_screen: '<h1 class="text-center">Jam.py Demo Application</h1>',
view_first: true
});
对于演示应用程序,上面的代码会有如下结果: