topnav.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. define([
  2. 'angular',
  3. 'kbn'
  4. ],
  5. function (angular) {
  6. 'use strict';
  7. angular
  8. .module('grafana.directives')
  9. .directive('topnav', function() {
  10. return {
  11. restrict: 'E',
  12. transclude: true,
  13. scope: {
  14. title: "@",
  15. section: "@",
  16. titleAction: "&",
  17. toggle: "&",
  18. showMenuBtn: "=",
  19. },
  20. template:
  21. '<div class="navbar navbar-static-top"><div class="navbar-inner"><div class="container-fluid">' +
  22. '<div class="top-nav">' +
  23. '<a class="top-nav-menu-btn pointer" ng-if="showMenuBtn" ng-click="toggle()">' +
  24. '<img class="logo-icon" src="img/fav32.png"></img> ' +
  25. '<i class="fa fa-angle-right"></i>' +
  26. '</a>' +
  27. '<span class="top-nav-breadcrumb">' +
  28. '<i class="top-nav-icon" ng-class="icon"></i>' +
  29. '</span>' +
  30. '<span class="top-nav-section" ng-show="section">' +
  31. '{{section}}' +
  32. '<i class="fa fa-angle-right"></i>' +
  33. '</span>' +
  34. '<a ng-click="titleAction()" class="top-nav-title">' +
  35. '{{title}}' +
  36. '<span class="small" ng-show="titleAction">' +
  37. '<i class="fa fa-angle-down"></i>' +
  38. '</span>' +
  39. '</a>' +
  40. '</div><div ng-transclude></div></div></div></div>',
  41. link: function(scope, elem, attrs) {
  42. scope.icon = attrs.icon;
  43. }
  44. };
  45. });
  46. });