Skip to content

Commit 3b5c482

Browse files
committed
Merge pull request angular-ui#177 from angular-ui/feat-toogledropdown
feat(choices): toggle dropdown when clicking caret icon
2 parents 67389c9 + e80e7b3 commit 3b5c482

File tree

5 files changed

+30
-3
lines changed

5 files changed

+30
-3
lines changed

src/bootstrap/match.tpl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
ng-click="$select.activate()">
66
<span ng-show="$select.searchEnabled && $select.isEmpty()" class="text-muted">{{$select.placeholder}}</span>
77
<span ng-hide="$select.isEmpty()" ng-transclude></span>
8-
<span class="caret"></span>
8+
<span class="caret ui-select-toggle" ng-click="$select.toggle($event)"></span>
99
</button>

src/select.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,13 @@
330330
}
331331
};
332332

333+
// Toggle dropdown
334+
ctrl.toggle = function(e) {
335+
if (ctrl.open) ctrl.close(); else ctrl.activate();
336+
e.preventDefault();
337+
e.stopPropagation();
338+
};
339+
333340
// Remove item from multiple select
334341
ctrl.removeChoice = function(index){
335342
ctrl.selected.splice(index, 1);

src/select2/match.tpl.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
ng-click="$select.activate()">
99
<span ng-show="$select.searchEnabled && $select.isEmpty()" class="select2-chosen">{{$select.placeholder}}</span>
1010
<span ng-hide="$select.isEmpty()" class="select2-chosen" ng-transclude></span>
11-
<span class="select2-arrow"><b></b></span>
11+
<span class="select2-arrow ui-select-toggle" ng-click="$select.toggle($event)"><b></b></span>
1212
</a>

src/selectize/select.tpl.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
ng-click="$select.activate()">
55
<div class="ui-select-match"></div>
66
<input type="text" autocomplete="off" tabindex="-1"
7-
class="ui-select-search"
7+
class="ui-select-search ui-select-toggle"
8+
ng-click="$select.toggle($event)"
89
placeholder="{{$select.placeholder}}"
910
ng-model="$select.search"
1011
ng-hide="!$select.searchEnabled || ($select.selected && !$select.open)"

test/select.spec.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ describe('ui-select tests', function() {
6565
if (attrs !== undefined) {
6666
if (attrs.disabled !== undefined) { attrsHtml += ' ng-disabled="' + attrs.disabled + '"'; }
6767
if (attrs.required !== undefined) { attrsHtml += ' ng-required="' + attrs.required + '"'; }
68+
if (attrs.theme !== undefined) { attrsHtml += ' theme="' + attrs.theme + '"'; }
6869
}
6970

7071
return compileTemplate(
@@ -188,6 +189,24 @@ describe('ui-select tests', function() {
188189
expect(isDropdownOpened(el)).toEqual(false);
189190
});
190191

192+
193+
it('should open/close dropdown when clicking caret icon', function() {
194+
195+
var el = createUiSelect({theme : 'select2'});
196+
var searchInput = el.find('.ui-select-search');
197+
var $select = el.scope().$select;
198+
199+
expect($select.open).toEqual(false);
200+
201+
el.find(".ui-select-toggle").click();
202+
expect($select.open).toEqual(true);
203+
204+
205+
el.find(".ui-select-toggle").click();
206+
expect($select.open).toEqual(false);
207+
208+
});
209+
191210
it('should be disabled if the attribute says so', function() {
192211
var el1 = createUiSelect({disabled: true});
193212
expect(el1.scope().$select.disabled).toEqual(true);

0 commit comments

Comments
 (0)