From 9823be9ab7d6fd7cd666ac33f34c5356a738b1f4 Mon Sep 17 00:00:00 2001 From: Adam Gordon Date: Thu, 20 Aug 2015 10:12:42 -0600 Subject: [PATCH 1/2] feat(accordion): allow custom panel class * add support for custom panel class fixes #3968 --- src/accordion/accordion.js | 1 + src/accordion/docs/readme.md | 2 ++ src/accordion/test/accordion.spec.js | 22 +++++++++++++++++++++- template/accordion/accordion-group.html | 2 +- 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/accordion/accordion.js b/src/accordion/accordion.js index 1366fc1473..0d24ba4979 100644 --- a/src/accordion/accordion.js +++ b/src/accordion/accordion.js @@ -80,6 +80,7 @@ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse']) accordionCtrl.addGroup(scope); scope.openClass = attrs.openClass || 'panel-open'; + scope.panelClass = attrs.panelClass; scope.$watch('isOpen', function(value) { element.toggleClass(scope.openClass, value); if (value) { diff --git a/src/accordion/docs/readme.md b/src/accordion/docs/readme.md index 7a186cb020..f68b0c4594 100644 --- a/src/accordion/docs/readme.md +++ b/src/accordion/docs/readme.md @@ -13,5 +13,7 @@ The body of each accordion group is transcluded in to the body of the collapsibl ### Accordion Group Settings ### + * `panel-class` (Defaults: `default`) : + Add ability to use Bootstrap's contextual panel classes (primary, success, info, etc...) or your own. This must be a string. * `template-url` (Defaults: `template/accordion/accordion-group.html`) : Add ability to override the template url used. Note that this must be a string diff --git a/src/accordion/test/accordion.spec.js b/src/accordion/test/accordion.spec.js index 12236aa806..f850ddcb61 100644 --- a/src/accordion/test/accordion.spec.js +++ b/src/accordion/test/accordion.spec.js @@ -515,7 +515,6 @@ describe('accordion', function() { }); }); - describe('accordion-heading attribute, with repeating accordion-groups', function() { it('should clone the accordion-heading for each group', function() { element = $compile('
{{x}}
')(scope); @@ -528,5 +527,26 @@ describe('accordion', function() { }); }); + describe('accordion group panel class - #3968', function() { + it('should use the default value when panel class is falsy', function() { + element = $compile('Content')(scope); + scope.$digest(); + groups = element.find('.panel'); + expect(groups.eq(0)).toHaveClass('panel-default'); + + element = $compile('Content')(scope); + scope.$digest(); + groups = element.find('.panel'); + expect(groups.eq(0)).toHaveClass('panel-default'); + }); + + it('should use the specified value when not falsy', function() { + element = $compile('Content')(scope); + scope.$digest(); + groups = element.find('.panel'); + expect(groups.eq(0)).toHaveClass('panel-success'); + expect(groups.eq(0)).not.toHaveClass('panel-default'); + }); + }); }); }); diff --git a/template/accordion/accordion-group.html b/template/accordion/accordion-group.html index 8ad810abe8..aa52d5c0ee 100644 --- a/template/accordion/accordion-group.html +++ b/template/accordion/accordion-group.html @@ -1,4 +1,4 @@ -
+

{{heading}} From 1c292763fe4bf8221d7af24e8d8677ac068aaa13 Mon Sep 17 00:00:00 2001 From: Adam Gordon Date: Fri, 21 Aug 2015 09:48:55 -0600 Subject: [PATCH 2/2] feat(accordion): allow custom panel class * add support for custom panel class fixes #3968 --- src/accordion/docs/readme.md | 4 ++-- src/accordion/test/accordion.spec.js | 4 ++-- template/accordion/accordion-group.html | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/accordion/docs/readme.md b/src/accordion/docs/readme.md index f68b0c4594..7d850b95f2 100644 --- a/src/accordion/docs/readme.md +++ b/src/accordion/docs/readme.md @@ -13,7 +13,7 @@ The body of each accordion group is transcluded in to the body of the collapsibl ### Accordion Group Settings ### - * `panel-class` (Defaults: `default`) : - Add ability to use Bootstrap's contextual panel classes (primary, success, info, etc...) or your own. This must be a string. + * `panel-class` (Defaults: `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. * `template-url` (Defaults: `template/accordion/accordion-group.html`) : Add ability to override the template url used. Note that this must be a string diff --git a/src/accordion/test/accordion.spec.js b/src/accordion/test/accordion.spec.js index f850ddcb61..c0b11e1d13 100644 --- a/src/accordion/test/accordion.spec.js +++ b/src/accordion/test/accordion.spec.js @@ -541,10 +541,10 @@ describe('accordion', function() { }); it('should use the specified value when not falsy', function() { - element = $compile('Content')(scope); + element = $compile('Content')(scope); scope.$digest(); groups = element.find('.panel'); - expect(groups.eq(0)).toHaveClass('panel-success'); + expect(groups.eq(0)).toHaveClass('custom-class'); expect(groups.eq(0)).not.toHaveClass('panel-default'); }); }); diff --git a/template/accordion/accordion-group.html b/template/accordion/accordion-group.html index aa52d5c0ee..aec5413578 100644 --- a/template/accordion/accordion-group.html +++ b/template/accordion/accordion-group.html @@ -1,4 +1,4 @@ -