Skip to content
This repository was archived by the owner on May 29, 2019. It is now read-only.

Commit e8808d3

Browse files
committed
fix(buttons): double toggle on spacebar
Fixes #4474 Closes #4630
1 parent 02425b8 commit e8808d3

File tree

2 files changed

+2
-49
lines changed

2 files changed

+2
-49
lines changed

src/buttons/buttons.js

+2-14
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ angular.module('ui.bootstrap.buttons', [])
4444
};
4545
})
4646

47-
.directive('uibBtnCheckbox', ['$document', function($document) {
47+
.directive('uibBtnCheckbox', function() {
4848
return {
4949
require: ['uibBtnCheckbox', 'ngModel'],
5050
controller: 'UibButtonsController',
@@ -82,21 +82,9 @@ angular.module('ui.bootstrap.buttons', [])
8282
ngModelCtrl.$render();
8383
});
8484
});
85-
86-
//accessibility
87-
element.on('keypress', function(e) {
88-
if (attrs.disabled || e.which !== 32 || $document[0].activeElement !== element[0]) {
89-
return;
90-
}
91-
92-
scope.$apply(function() {
93-
ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue());
94-
ngModelCtrl.$render();
95-
});
96-
});
9785
}
9886
};
99-
}]);
87+
});
10088

10189
/* Deprecated buttons below */
10290

src/buttons/test/buttons.spec.js

-35
Original file line numberDiff line numberDiff line change
@@ -74,27 +74,6 @@ describe('buttons', function() {
7474
expect(btn).not.toHaveClass('active');
7575
});
7676

77-
it('should toggle custom model values on spacebar if focused', function() {
78-
$scope.model = 0;
79-
var btn = compileButton('<button ng-model="model" uib-btn-checkbox btn-checkbox-true="1" btn-checkbox-false="0">click</button>', $scope);
80-
$('body').append(btn);
81-
var e = $.Event('keypress');
82-
e.which = 32;
83-
84-
btn[0].focus();
85-
btn.trigger(e);
86-
$scope.$digest();
87-
expect($scope.model).toEqual(1);
88-
expect(btn).toHaveClass('active');
89-
90-
btn.trigger(e);
91-
$scope.$digest();
92-
expect($scope.model).toEqual(0);
93-
expect(btn).not.toHaveClass('active');
94-
95-
btn.remove();
96-
});
97-
9877
it('should monitor true / false value changes - issue 666', function() {
9978

10079
$scope.model = 1;
@@ -116,7 +95,6 @@ describe('buttons', function() {
11695
$scope.model = 1;
11796
$scope.falseVal = 0;
11897
var btn = compileButton('<button disabled ng-model="model" uib-btn-checkbox btn-checkbox-true="falseVal">click</button>', $scope);
119-
$('body').append(btn);
12098

12199
expect(btn).not.toHaveClass('active');
122100
expect($scope.model).toEqual(1);
@@ -128,19 +106,6 @@ describe('buttons', function() {
128106
$scope.$digest();
129107

130108
expect(btn).not.toHaveClass('active');
131-
132-
btn[0].focus();
133-
var e = $.Event('keypress');
134-
e.which = 32;
135-
btn.trigger(e);
136-
137-
expect(btn).not.toHaveClass('active');
138-
139-
$scope.$digest();
140-
141-
expect(btn).not.toHaveClass('active');
142-
143-
btn.remove();
144109
});
145110

146111
describe('setting buttonConfig', function() {

0 commit comments

Comments
 (0)