[kibana源码]增加菜单项
来源:互联网 发布:php 商品分类 编辑:程序博客网 时间:2024/04/29 15:31
问题描述:
由于kibana与另外一个系统需要添加超链关系,因此需要在kibana系统设置菜单前面增加一个菜单项。
源码讲解:
kibana的系统菜单都是在kibana.js(src\plugins\kibana\public\kibana.js)中进行可配置的。
.setTabs([ { id: 'discover', title: '检索' }, { id: 'visualize', title: '可视化自助分析', activeIndicatorColor: function () { return (String(this.lastUrl).indexOf('/visualize/step/') === 0) ? 'white' : '#656a76'; } }, { id: 'dashboard', title: '监控仪表盘' }, { id:'index.html', title:'xxxx', baseUrl:'http://www.thinkgreed.com/fsz-admin/' }, { id: 'settings', title: '系统设置' }])
因此只需要按照同样的格式增加项目即可。在我添加的title为xxxx的菜单中,指定了baseUrl,因为要进行跨域访问,如果不指定则会添加系统默认的baseUrl
到此处还没有结束,因为系统会通过baseUrl和id来组装url,同时也会增加一长串的参数,如:
http://www.thinkgreed.com/app/kibana#/visualize?_g=(refreshInterval%3A(display%3AOff%2Cpause%3A!f%2Cvalue%3A0)%2Ctime%3A(from%3Anow-15m%2Cmode%3Aquick%2Cto%3Anow))
因为添加的菜单只是要完成跳转到另外一个页面的目的,因为不想增加过多的参数。
如果需要完成这样的目的,就需要阅读Tab.js(src/ui/public/chrome/Tab.js)
href() { if (this.active) { return this.resetWhenActive ? this.rootUrl : null; } if ('index.html' == this.id){ return this.rootUrl } return this.lastUrl || this.rootUrl; }
在chrom.html中可以看到,超链的获取主要是tab.href()来得到,因此需要看href()的逻辑。通过上下人可以看到this.lastUrl就是增加了很多参数的url而this.rootUrl则是简单的url,因此只需要增加简单的判断逻辑:
if ('index.html' == this.id){ return this.rootUrl }
就可以达到增加个id为index.html的菜单,点击后跳转到其他页面(url:http://www.thinkgreed.com/fsz-admin/index.html)
ps:同时可以参照chrome.html 和 kbn_chrome.js 两个文件进行理解
- [kibana源码]增加菜单项
- Kibana(一):编译源码
- 鼠标右键增加菜单项
- Symbian:向视图上增加菜单项
- QT中利用QAction增加菜单项
- 增加文件右键菜单项,如Editplus
- 增加黑莓程序自定义菜单项
- VC中给菜单项增加响应函数
- QT中利用QAction增加菜单项
- NavigationView菜单项增加分割线
- QT中利用QAction增加菜单项
- 在Ubuntu应用程序菜单中自行增加程序菜单项
- 【后台】菜单管理界面菜单项增加自定义字段
- kibana
- kibana
- Kibana
- 【kibana源码解析】-src/optimize/babelOptions.js
- 【kibana源码解析】-src/cli/cli.js
- 涡轮发动机的推力有多大?
- android SIM卡状态监听TelephonyManager
- 年龄与疾病(第二种方法)
- 链表反转
- HDOJ 1435 Stable Match
- [kibana源码]增加菜单项
- tomcat修改访问时的应用名称
- 《hive编程指南》学习文档(一)
- 不要62
- 判决素数个数
- C++:数组动态创建与释放
- 蓝桥杯 幸运数
- 素数对
- UrlHttpUtils使用介绍