Skip to content

Commit

Permalink
Merge pull request #29 from B-3PO/issues/#27
Browse files Browse the repository at this point in the history
fix disabled check
  • Loading branch information
B-3PO authored Dec 6, 2016
2 parents bcea0b2 + d0c50e5 commit d48dd3e
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 13 deletions.
2 changes: 2 additions & 0 deletions app/pages/home/home.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ function HomeController($scope, $mdExpansionPanel) {
$scope.collapseOne = function () {
$mdExpansionPanel('expansionPanelOne').collapse();
};

$scope.isDisabled = true;
}
32 changes: 32 additions & 0 deletions app/pages/home/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -150,3 +150,35 @@ <h4>Content</h4>
</md-expansion-panel-expanded>

</md-expansion-panel>



<md-expansion-panel ng-disabled="isDisabled">

<md-expansion-panel-collapsed>
<div class="md-title">Disabled Panel</div>
<span flex></span>
<md-expansion-panel-icon></md-expansion-panel-icon>
</md-expansion-panel-collapsed>

<md-expansion-panel-expanded>

<md-expansion-panel-header>
<div class="md-title">Disabled Panel</div>
<div class="md-summary">Expanded Summary</div>
<md-expansion-panel-icon></md-expansion-panel-icon>
</md-expansion-panel-header>

<md-expansion-panel-content>
<h4>Content</h4>
<p>Put content in here</p>
</md-expansion-panel-content>

<md-expansion-panel-footer>
<div flex></div>
<md-button class="md-warn" ng-click="$panel.collapse()">Collapse</md-button>
</md-expansion-panel-footer>

</md-expansion-panel-expanded>

</md-expansion-panel>
2 changes: 1 addition & 1 deletion karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(config) {
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: [ 'spec'],
reporters: [ 'progress'],


// web server port
Expand Down
9 changes: 8 additions & 1 deletion src/expansionPanels-theme.scss
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,14 @@ md-expansion-panel {

&[disabled] {
md-expansion-panel-collapsed {
color: #DDD;
.md-title,
.md-summary {
color: #DDD;
}
}

.md-expansion-panel-icon svg {
fill: #DDD;
}
}

Expand Down
27 changes: 25 additions & 2 deletions src/expansionPanels.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,28 @@ describe('material.components.expansionPanels', function () {
});


it('should set `tabindex` to `-1` if `ng-disabled` is true', function () {
var element = getDirective({ngDisabled: 'isDisabled'});
scope.isDisabled = true;
scope.$digest();
expect(element.attr('tabindex')).toEqual('-1');
});

it('should set `tabindex` to `0` if `ng-disabled` is false', function () {
var element = getDirective({ngDisabled: 'isDisabled'});
scope.isDisabled = false;
scope.$digest();
expect(element.attr('tabindex')).toEqual('0');
});

it('should set `tabindex` to `0` if `ng-disabled` is not set', function () {
var element = getDirective({ngDisabled: 'isDisabled'});
scope.isDisabled = undefined;
scope.$digest();
expect(element.attr('tabindex')).toEqual('0');
});


it('should thow errors on invalid markup', inject(function($compile, $rootScope) {
function buildBadPanelOne() {
$compile('<md-expansion-panel></md-expansion-panel>')($rootScope);
Expand Down Expand Up @@ -851,7 +873,7 @@ describe('material.components.expansionPanels', function () {
options = options || {};

return $mdUtil.supplant('{2}' +
'<md-expansion-panel {0}{6}>'+
'<md-expansion-panel {0}{6}{7}>'+
'><md-expansion-panel-collapsed>'+
'<div class="md-title">Title</div>'+
'<div class="md-summary">Summary</div>'+
Expand All @@ -878,7 +900,8 @@ describe('material.components.expansionPanels', function () {
options.content ? '</md-content>' : '',
options.headerNoStick ? ' md-no-sticky ' : '',
options.footerNoStick ? ' md-no-sticky ' : '',
options.componentId ? ' md-component-id="'+options.componentId+'" ' : ''
options.componentId ? ' md-component-id="'+options.componentId+'" ' : '',
options.ngDisabled ? ' ng-disabled="'+options.ngDisabled+'" ' : ''
]);
}

Expand Down
18 changes: 9 additions & 9 deletions src/js/expansionPanel.directive.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,15 +102,15 @@ function expansionPanelDirective() {
vm.onRemove = onRemove;
vm.init = init;

$attrs.$observe('disabled', function(disabled) {
isDisabled = (typeof disabled === 'string' && disabled !== 'false') ? true : false;

if (isDisabled === true) {
$element.attr('tabindex', '-1');
} else {
$element.attr('tabindex', '0');
}
});
if ($attrs.ngDisabled !== undefined) {
$scope.$watch($attrs.ngDisabled, function(value) {
isDisabled = value;
$element.attr('tabindex', isDisabled ? -1 : 0);
});
} else if ($attrs.disabled !== undefined) {
isDisabled = ($attrs.disabled !== undefined && $attrs.disabled !== 'false' && $attrs.disabled !== false);
$element.attr('tabindex', isDisabled ? -1 : 0);
}

$element
.on('focus', function (ev) {
Expand Down

0 comments on commit d48dd3e

Please sign in to comment.