ux: merge branch navbarv2, new navbar with dashboard search available on all pages, closes #6475

This commit is contained in:
Torkel Ödegaard
2017-06-02 14:00:42 +02:00
parent 1bdf82dca3
commit e9d5e037e8
73 changed files with 929 additions and 550 deletions

View File

@@ -8,11 +8,36 @@
<i class="fa fa-chevron-left"></i>
</a>
<a href="{{ctrl.titleUrl}}" class="navbar-page-btn" ng-show="ctrl.title">
<i class="{{ctrl.icon}}" ng-show="ctrl.icon"></i>
<img ng-src="{{ctrl.iconUrl}}" ng-show="ctrl.iconUrl"></i>
{{ctrl.title}}
<a class="navbar-page-btn" ng-click="ctrl.showSearch()">
<i class="fa fa-search"></i>
</a>
<div ng-transclude></div>
<div ng-if="::!ctrl.hasMenu">
<a href="{{::ctrl.section.url}}" class="navbar-page-btn">
<i class="{{::ctrl.section.icon}}" ng-show="::ctrl.section.icon"></i>
<img ng-src="{{::ctrl.section.iconUrl}}" ng-show="::ctrl.section.iconUrl"></i>
{{::ctrl.section.title}}
</a>
</div>
<div class="dropdown navbar-section-wrapper" ng-if="::ctrl.hasMenu">
<a href="{{::ctrl.section.url}}" class="navbar-page-btn" data-toggle="dropdown">
<i class="{{::ctrl.section.icon}}" ng-show="::ctrl.section.icon"></i>
<img ng-src="{{::ctrl.section.iconUrl}}" ng-show="::ctrl.section.iconUrl"></i>
{{::ctrl.section.title}}
<i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-menu--navbar">
<li ng-repeat="navItem in ::ctrl.model.menu" ng-class="{active: navItem.active}">
<a class="pointer" ng-href="{{::navItem.url}}" ng-click="ctrl.navItemClicked(navItem, $event)">
<i class="{{::navItem.icon}}" ng-show="::navItem.icon"></i>
{{::navItem.title}}
</a>
</li>
</ul>
</div>
<div ng-transclude></div>
</div>
<dashboard-search></dashboard-search>

View File

@@ -4,10 +4,28 @@ import config from 'app/core/config';
import _ from 'lodash';
import $ from 'jquery';
import coreModule from '../../core_module';
import {NavModel, NavModelItem} from '../../nav_model_srv';
export class NavbarCtrl {
model: NavModel;
section: NavModelItem;
hasMenu: boolean;
/** @ngInject */
constructor(private $scope, private contextSrv) {
constructor(private $scope, private $rootScope, private contextSrv) {
this.section = this.model.section;
this.hasMenu = this.model.menu.length > 0;
}
showSearch() {
this.$rootScope.appEvent('show-dash-search');
}
navItemClicked(navItem, evt) {
if (navItem.clickHandler) {
navItem.clickHandler();
evt.preventDefault();
}
}
}
@@ -20,12 +38,9 @@ export function navbarDirective() {
transclude: true,
controllerAs: 'ctrl',
scope: {
title: "@",
titleUrl: "@",
iconUrl: "@",
model: "=",
},
link: function(scope, elem, attrs, ctrl) {
ctrl.icon = attrs.icon;
link: function(scope, elem) {
elem.addClass('navbar');
}
};