navbar.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import coreModule from '../../core_module';
  2. import appEvents from 'app/core/app_events';
  3. import { NavModel } from '@grafana/ui';
  4. export class NavbarCtrl {
  5. model: NavModel;
  6. /** @ngInject */
  7. constructor() {}
  8. showSearch() {
  9. appEvents.emit('show-dash-search');
  10. }
  11. navItemClicked(navItem, evt) {
  12. if (navItem.clickHandler) {
  13. navItem.clickHandler();
  14. evt.preventDefault();
  15. }
  16. }
  17. }
  18. export function navbarDirective() {
  19. return {
  20. restrict: 'E',
  21. templateUrl: 'public/app/core/components/navbar/navbar.html',
  22. controller: NavbarCtrl,
  23. bindToController: true,
  24. controllerAs: 'ctrl',
  25. scope: {
  26. model: '=',
  27. },
  28. link: (scope, elem) => {},
  29. };
  30. }
  31. export function pageH1() {
  32. return {
  33. restrict: 'E',
  34. template: `
  35. <h1 class="page-header__title">
  36. <i class="page-header__icon {{::model.header.icon}}" ng-if="::model.header.icon"></i>
  37. <img class="page-header__img" ng-src="{{::model.header.img}}" ng-if="::model.header.img"></i>
  38. {{model.header.text}}
  39. </h1>
  40. `,
  41. scope: {
  42. model: '=',
  43. },
  44. };
  45. }
  46. coreModule.directive('pageH1', pageH1);
  47. coreModule.directive('navbar', navbarDirective);