diff --git a/src/progressbar/test/progressbar.spec.js b/src/progressbar/test/progressbar.spec.js index 70e20f0f03..9add0e8927 100644 --- a/src/progressbar/test/progressbar.spec.js +++ b/src/progressbar/test/progressbar.spec.js @@ -15,7 +15,7 @@ describe('progressbar directive with no binding', function () { it('contains one child element with "bar" css class', function() { expect(element.children().length).toBe(1); - expect(element.children().eq(0).hasClass('bar')).toBe(true); + expect(element.children().eq(0).hasClass('progress-bar')).toBe(true); }); it('has a "bar" element with expected width', function() { @@ -41,7 +41,7 @@ describe('progressbar directive with data-binding', function () { it('contains one child element with "bar" css class', function() { expect(element.children().length).toBe(1); - expect(element.children().eq(0).hasClass('bar')).toBe(true); + expect(element.children().eq(0).hasClass('progress-bar')).toBe(true); }); it('has a "bar" element with expected width', function() { @@ -53,7 +53,7 @@ describe('progressbar directive with data-binding', function () { $rootScope.$digest(); expect(element.children().length).toBe(1); expect(element.children().eq(0).css('width')).toBe('55%'); - expect(element.children().eq(0).hasClass('bar')).toBe(true); + expect(element.children().eq(0).hasClass('progress-bar')).toBe(true); $rootScope.percent += 11; $rootScope.$digest(); @@ -76,8 +76,8 @@ describe('progressbar directive with data-binding', function () { var barElement = element.children().eq(0); expect(barElement.css('width')).toBe('45%'); - expect(barElement.hasClass('bar')).toBe(true); - expect(barElement.hasClass('bar-warning')).toBe(true); + expect(barElement.hasClass('progress-bar')).toBe(true); + expect(barElement.hasClass('progress-bar-warning')).toBe(true); }); }); @@ -100,9 +100,9 @@ describe('stacked progressbar directive', function () { it('contains tree child elements with "bar" css class each', function() { expect(element.children().length).toBe(3); - expect(element.children().eq(0).hasClass('bar')).toBe(true); - expect(element.children().eq(1).hasClass('bar')).toBe(true); - expect(element.children().eq(2).hasClass('bar')).toBe(true); + expect(element.children().eq(0).hasClass('progress-bar')).toBe(true); + expect(element.children().eq(1).hasClass('progress-bar')).toBe(true); + expect(element.children().eq(2).hasClass('progress-bar')).toBe(true); }); it('has a elements with expected width', function() { @@ -144,18 +144,18 @@ describe('stacked progressbar directive', function () { barElement = element.children().eq(0); expect(barElement.css('width')).toBe('12%'); - expect(barElement.hasClass('bar')).toBe(true); - expect(barElement.hasClass('bar-danger')).toBe(false); + expect(barElement.hasClass('progress-bar')).toBe(true); + expect(barElement.hasClass('progress-bar-danger')).toBe(false); barElement = element.children().eq(1); expect(barElement.css('width')).toBe('29%'); - expect(barElement.hasClass('bar')).toBe(true); - expect(barElement.hasClass('bar-danger')).toBe(true); + expect(barElement.hasClass('progress-bar')).toBe(true); + expect(barElement.hasClass('progress-bar-danger')).toBe(true); barElement = element.children().eq(2); expect(barElement.css('width')).toBe('33%'); - expect(barElement.hasClass('bar')).toBe(true); - expect(barElement.hasClass('bar-danger')).toBe(false); + expect(barElement.hasClass('progress-bar')).toBe(true); + expect(barElement.hasClass('progress-bar-danger')).toBe(false); }); it('can handle mixed objects with custom classes', function() { @@ -174,23 +174,23 @@ describe('stacked progressbar directive', function () { barElement = element.children().eq(0); expect(barElement.css('width')).toBe('15%'); - expect(barElement.hasClass('bar-info')).toBe(true); + expect(barElement.hasClass('progress-bar-info')).toBe(true); barElement = element.children().eq(1); expect(barElement.css('width')).toBe('11%'); - expect(barElement.hasClass('bar-info')).toBe(false); + expect(barElement.hasClass('progress-bar-info')).toBe(false); barElement = element.children().eq(2); expect(barElement.css('width')).toBe('9%'); - expect(barElement.hasClass('bar-danger')).toBe(true); + expect(barElement.hasClass('progress-bar-danger')).toBe(true); barElement = element.children().eq(3); expect(barElement.css('width')).toBe('22%'); - expect(barElement.hasClass('bar-warning')).toBe(true); + expect(barElement.hasClass('progress-bar-warning')).toBe(true); barElement = element.children().eq(4); expect(barElement.css('width')).toBe('5%'); - expect(barElement.hasClass('bar-warning')).toBe(false); + expect(barElement.hasClass('progress-bar-warning')).toBe(false); }); }); @@ -259,7 +259,7 @@ describe('stacked progressbar directive with auto-types', function () { it('contains tree child elements with "bar" css class each', function() { expect(element.children().length).toBe(5); for (var i = 0; i < 5; i++) { - expect(element.children().eq(i).hasClass('bar')).toBe(true); + expect(element.children().eq(i).hasClass('progress-bar')).toBe(true); } }); @@ -275,7 +275,7 @@ describe('stacked progressbar directive with auto-types', function () { var stackedTypes = config.stackedTypes; for (var i = 0; i < stackedTypes.length; i++) { - expect(element.children().eq(i).hasClass('bar-' + stackedTypes[i])).toBe(true); + expect(element.children().eq(i).hasClass('progress-bar-' + stackedTypes[i])).toBe(true); } }); @@ -290,8 +290,8 @@ describe('stacked progressbar directive with auto-types', function () { var bar = element.children().eq(1); expect(bar.css('width')).toBe('18%'); - expect(bar.hasClass('bar-' + stackedTypes[1])).toBe(false); - expect(bar.hasClass('bar-something')).toBe(true); + expect(bar.hasClass('progress-bar-' + stackedTypes[1])).toBe(false); + expect(bar.hasClass('progress-bar-something')).toBe(true); }); @@ -306,8 +306,8 @@ describe('stacked progressbar directive with auto-types', function () { var bar = element.children().eq(1); expect(bar.css('width')).toBe('18%'); - expect(bar.hasClass('bar-' + stackedTypes[1])).toBe(false); - expect(bar.hasClass('bar-something')).toBe(true); + expect(bar.hasClass('progress-bar-' + stackedTypes[1])).toBe(false); + expect(bar.hasClass('progress-bar-something')).toBe(true); }); it('can bypass default configuration for stacked classes from attribute', function() { @@ -316,11 +316,11 @@ describe('stacked progressbar directive with auto-types', function () { var stackedTypes = config.stackedTypes; - expect(element.children().eq(0).hasClass('bar-danger')).toBe(true); - expect(element.children().eq(0).hasClass('bar-' + stackedTypes[0])).toBe(false); + expect(element.children().eq(0).hasClass('progress-bar-danger')).toBe(true); + expect(element.children().eq(0).hasClass('progress-bar-' + stackedTypes[0])).toBe(false); - expect(element.children().eq(1).hasClass('bar-warning')).toBe(true); - expect(element.children().eq(2).hasClass('bar-success')).toBe(true); + expect(element.children().eq(1).hasClass('progress-bar-warning')).toBe(true); + expect(element.children().eq(2).hasClass('progress-bar-success')).toBe(true); }); }); \ No newline at end of file diff --git a/src/tabs/docs/demo.html b/src/tabs/docs/demo.html index 9723cc293d..f6e8e3cc9d 100644 --- a/src/tabs/docs/demo.html +++ b/src/tabs/docs/demo.html @@ -10,6 +10,16 @@ Static content {{tab.content}} + + + {{nestedTab.content}} + + + {{deepNestedTab.content}} + + + + diff --git a/src/tabs/docs/demo.js b/src/tabs/docs/demo.js index da92adab20..0771be30bf 100644 --- a/src/tabs/docs/demo.js +++ b/src/tabs/docs/demo.js @@ -1,14 +1,21 @@ var TabsDemoCtrl = function ($scope) { - $scope.tabs = [ - { title:"Dynamic Title 1", content:"Dynamic content 1" }, - { title:"Dynamic Title 2", content:"Dynamic content 2", disabled: true } - ]; + $scope.tabs = [ + { title: "Dynamic Title 1", content: "Dynamic content 1" }, + { title: "Dynamic Title 2", content: "Dynamic content 2", disabled: true }, + { title: "Dynamic Title 3", content: "Dynamic content 3", nestedTabs: [ + { title: "Nested Dynamic Title 1", content: "Nested Dynamic content 1" }, + { title: "Nested Dynamic Title 2", content: "Nested Dynamic content 2", nestedTabs: [ + { title: "Deep Nested Dynamic Title 1", content: "Deep Nested Dynamic content 1" }, + { title: "Deep Nested Dynamic Title 2", content: "Deep Nested Dynamic content 2" } + ]} + ]} + ]; - $scope.alertMe = function() { - setTimeout(function() { - alert("You've selected the alert tab!"); - }); - }; + $scope.alertMe = function () { + setTimeout(function () { + alert("You've selected the alert tab!"); + }); + }; - $scope.navType = 'pills'; + $scope.navType = 'pills'; }; diff --git a/src/tabs/tabs.js b/src/tabs/tabs.js index aaf3f40d57..e36c4d9744 100644 --- a/src/tabs/tabs.js +++ b/src/tabs/tabs.js @@ -17,8 +17,8 @@ angular.module('ui.bootstrap.tabs', []) .controller('TabsetController', ['$scope', '$element', function TabsetCtrl($scope, $element) { - - var ctrl = this, + $scope.ctrl = this; + var ctrl = $scope.ctrl, tabs = ctrl.tabs = $scope.tabs = []; ctrl.select = function(tab) { @@ -299,21 +299,31 @@ function($parse, $http, $templateCache, $compile) { } }]) -.directive('tabsetTitles', ['$http', function($http) { +.directive('tabsetTitles', ['$http','$timeout', function($http,$timeout) { return { restrict: 'A', require: '^tabset', templateUrl: 'template/tabs/tabset-titles.html', replace: true, link: function(scope, elm, attrs, tabsetCtrl) { - if (!scope.$eval(attrs.tabsetTitles)) { - elm.remove(); - } else { - //now that tabs location has been decided, transclude the tab titles in - tabsetCtrl.$transcludeFn(tabsetCtrl.$scope.$parent, function(node) { - elm.append(node); - }); - } + function appendNode() { + tabsetCtrl.$transcludeFn(tabsetCtrl.$scope.$parent, function (node) { + elm.append(node); + }); + } + + if (!scope.$eval(attrs.tabsetTitles)) { + elm.remove(); + } else { + //now that tabs location has been decided, transclude the tab titles in + if(tabsetCtrl.$scope && tabsetCtrl.$scope.$parent){ + appendNode(); + } else { + $timeout(function () { + appendNode(); + }); + } + } } }; }]) diff --git a/template/progressbar/bar.html b/template/progressbar/bar.html index 09a5a6b010..fabe24ce43 100644 --- a/template/progressbar/bar.html +++ b/template/progressbar/bar.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/template/tabs/tabset.html b/template/tabs/tabset.html index 5e9798b2c8..d39e4cc0d0 100644 --- a/template/tabs/tabset.html +++ b/template/tabs/tabset.html @@ -1,6 +1,6 @@
-
+
-
+