From ae3f6eb3994316817dbc58d2984a59290400c33a Mon Sep 17 00:00:00 2001 From: Israel Abramov Date: Tue, 21 Nov 2017 11:34:28 +0200 Subject: [PATCH 1/2] feat(navBar): add disabled attribute --- src/components/navBar/navBar.js | 5 +++++ src/components/navBar/navBar.scss | 5 +++++ src/components/navBar/navBar.spec.js | 33 ++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/src/components/navBar/navBar.js b/src/components/navBar/navBar.js index 1d976fc2563..c084e8da777 100644 --- a/src/components/navBar/navBar.js +++ b/src/components/navBar/navBar.js @@ -429,6 +429,7 @@ function MdNavItem($mdAria, $$rAF) { '' + @@ -469,6 +470,10 @@ function MdNavItem($mdAria, $$rAF) { scope.$apply(); }); + attrs.$observe('disabled', function (value) { + mdNavItem.disabled = !!value; + }); + $mdAria.expectWithText(element, 'aria-label'); }); } diff --git a/src/components/navBar/navBar.scss b/src/components/navBar/navBar.scss index 33e5cba48c1..94bf5b0b0f1 100644 --- a/src/components/navBar/navBar.scss +++ b/src/components/navBar/navBar.scss @@ -38,6 +38,11 @@ $md-nav-bar-height: 48px; &:hover { background-color: inherit; } + + &[disabled] { + cursor: not-allowed; + opacity: 0.5; + } } md-nav-ink-bar { diff --git a/src/components/navBar/navBar.spec.js b/src/components/navBar/navBar.spec.js index b48c5e2de80..5767df2e405 100644 --- a/src/components/navBar/navBar.spec.js +++ b/src/components/navBar/navBar.spec.js @@ -176,6 +176,39 @@ describe('mdNavBar', function() { .toBe('{"reload":true,"notify":true}'); }); + it('should set the disabled attribute', function() { + create('' + + ' ' + + ' tab1' + + ' ' + + ' ' + + ' tab2' + + ' ' + + ''); + + var tabCtrl = getTabCtrl('tab2'); + expect(tabCtrl.disabled).toBe(true); + }); + + it('should observe the disabled attribute', function() { + $scope.tabDisabled = false; + create('' + + ' ' + + ' tab1' + + ' ' + + ' ' + + ' tab2' + + ' ' + + ''); + var tabCtrl = getTabCtrl('tab2'); + expect(tabCtrl.disabled).toBe(false); + $scope.tabDisabled = true; + $scope.$apply(); + expect(tabCtrl.disabled).toBe(true); + }); + + + it('does not update tabs if tab controller is undefined', function() { $scope.selectedTabRoute = 'tab1'; From 045b9dba728d7b6a9927f77c7f312121c7a76618 Mon Sep 17 00:00:00 2001 From: Israel Abramov Date: Tue, 21 Nov 2017 12:15:33 +0200 Subject: [PATCH 2/2] feat(navBar): add disabled attribute Update demo to showcase ng-disabled and disabled usage, fixed test and wrong boolean evaluation --- src/components/navBar/demoBasicUsage/index.html | 11 +++++++++-- src/components/navBar/navBar.js | 2 +- src/components/navBar/navBar.spec.js | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/components/navBar/demoBasicUsage/index.html b/src/components/navBar/demoBasicUsage/index.html index d30fb0dc1c8..23d6cca9361 100644 --- a/src/components/navBar/demoBasicUsage/index.html +++ b/src/components/navBar/demoBasicUsage/index.html @@ -7,12 +7,15 @@ Page One - + Page Two Page Three + + Page Four +