kibana-123
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
52 lines (42 loc) • 1.32 kB
JavaScript
import './app_switcher';
import './global_nav_link';
import globalNavTemplate from './global_nav.html';
import './global_nav.less';
import uiModules from 'ui/modules';
const module = uiModules.get('kibana');
module.directive('globalNav', globalNavState => {
return {
restrict: 'E',
replace: true,
scope: {
chrome: '=',
isVisible: '=',
logoBrand: '=',
smallLogoBrand: '=',
appTitle: '=',
},
template: globalNavTemplate,
link: scope => {
// App switcher functionality.
function updateGlobalNav() {
const isOpen = globalNavState.isOpen();
scope.isGlobalNavOpen = isOpen;
scope.globalNavToggleButton = {
classes: isOpen ? 'global-nav-link--close' : undefined,
title: isOpen ? 'Collapse' : 'Expand',
tooltipContent: isOpen ? 'Collapse side bar' : 'Expand side bar',
};
// Notify visualizations, e.g. the dashboard, that they should re-render.
scope.$root.$broadcast('globalNav:update');
}
updateGlobalNav();
scope.$root.$on('globalNavState:change', () => {
updateGlobalNav();
});
scope.toggleGlobalNav = event => {
event.preventDefault();
globalNavState.setOpen(!globalNavState.isOpen());
};
}
};
});