From 21292d3444a8285e4339fb43fcab5c594e422b1c Mon Sep 17 00:00:00 2001 From: Daniel Blanco Date: Mon, 7 Mar 2016 12:58:27 -0500 Subject: [PATCH 1/2] feat(accordion): panel-class is now reactive. --- src/accordion/accordion.js | 1 + src/accordion/docs/readme.md | 3 ++- src/accordion/test/accordion.spec.js | 19 ++++++++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/accordion/accordion.js b/src/accordion/accordion.js index f0b4748799..7d15d49f7f 100644 --- a/src/accordion/accordion.js +++ b/src/accordion/accordion.js @@ -64,6 +64,7 @@ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse']) }, scope: { heading: '@', // Interpolate the heading attribute onto this scope + panelClass: '@', // Ditto with panelClass isOpen: '=?', isDisabled: '=?' }, diff --git a/src/accordion/docs/readme.md b/src/accordion/docs/readme.md index e176d8fde2..2f013a3cc2 100644 --- a/src/accordion/docs/readme.md +++ b/src/accordion/docs/readme.md @@ -33,8 +33,9 @@ The body of each accordion group is transcluded into the body of the collapsible Whether accordion group is open or closed. * `panel-class` + _(Default: `panel-default`)_ - - Add ability to use Bootstrap's contextual panel classes (panel-primary, panel-success, panel-info, etc...) or your own. This must be a string. + Add ability to use Bootstrap's contextual panel classes (panel-primary, panel-success, panel-info, etc...) or your own. This must be a string. * `template-url` _(Default: `uib/template/accordion/accordion-group.html`)_ - diff --git a/src/accordion/test/accordion.spec.js b/src/accordion/test/accordion.spec.js index abbf83691e..9916f1e045 100644 --- a/src/accordion/test/accordion.spec.js +++ b/src/accordion/test/accordion.spec.js @@ -610,8 +610,8 @@ describe('uib-accordion', function() { }); }); - describe('uib-accordion group panel class - #3968', function() { - it('should use the default value when panel class is falsy', function() { + describe('uib-accordion group panel class', function() { + it('should use the default value when panel class is falsy - #3968', function() { element = $compile('Content')(scope); scope.$digest(); groups = element.find('.panel'); @@ -623,13 +623,26 @@ describe('uib-accordion', function() { expect(groups.eq(0)).toHaveClass('panel-default'); }); - it('should use the specified value when not falsy', function() { + it('should use the specified value when not falsy - #3968', function() { element = $compile('Content')(scope); scope.$digest(); groups = element.find('.panel'); expect(groups.eq(0)).toHaveClass('custom-class'); expect(groups.eq(0)).not.toHaveClass('panel-default'); }); + + it('should change class if panel-class is changed', function() { + element = $compile('Content')(scope); + scope.panelClass = 'custom-class'; + scope.$digest(); + groups = element.find('.panel'); + expect(groups.eq(0)).toHaveClass('custom-class'); + + scope.panelClass = 'different-class'; + scope.$digest(); + expect(groups.eq(0)).toHaveClass('different-class'); + expect(groups.eq(0)).not.toHaveClass('custom-class'); + }); }); }); }); From 9194d15f5254eb8d448e081c55f76089e9b8897a Mon Sep 17 00:00:00 2001 From: Daniel Blanco Date: Mon, 7 Mar 2016 16:46:31 -0500 Subject: [PATCH 2/2] feat(accordion): made panelClass binding optional --- src/accordion/accordion.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/accordion/accordion.js b/src/accordion/accordion.js index 7d15d49f7f..8674f535a1 100644 --- a/src/accordion/accordion.js +++ b/src/accordion/accordion.js @@ -64,7 +64,7 @@ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse']) }, scope: { heading: '@', // Interpolate the heading attribute onto this scope - panelClass: '@', // Ditto with panelClass + panelClass: '@?', // Ditto with panelClass isOpen: '=?', isDisabled: '=?' },