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

Commit 879dd00

Browse files
committed
make sure sortable classes are removed properly
1 parent 948d383 commit 879dd00

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

src/uiSelectController.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ uis.controller('uiSelectCtrl',
3838
ctrl.lockChoiceExpression = undefined; // Initialized inside uiSelectMatch directive link function
3939
ctrl.clickTriggeredSelect = false;
4040
ctrl.$filter = $filter;
41+
ctrl.$element = $element;
4142

4243
ctrl.searchInput = $element.querySelectorAll('input.ui-select-search');
4344
if (ctrl.searchInput.length !== 1) {

src/uiSelectSortDirective.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
44
require: '^uiSelect',
55
link: function(scope, element, attrs, $select) {
66
if (scope[attrs.uiSelectSort] === null) {
7-
throw uiSelectMinErr('sort', "Expected a list to sort");
7+
throw uiSelectMinErr('sort', 'Expected a list to sort');
88
}
99

1010
var options = angular.extend({
@@ -35,25 +35,31 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
3535
});
3636

3737
element.on('dragend', function() {
38-
element.removeClass(draggingClassName);
38+
removeClass(draggingClassName);
3939
});
4040

4141
var move = function(from, to) {
4242
/*jshint validthis: true */
4343
this.splice(to, 0, this.splice(from, 1)[0]);
4444
};
4545

46+
var removeClass = function(className) {
47+
angular.forEach($select.$element.querySelectorAll('.' + className), function(el){
48+
angular.element(el).removeClass(className);
49+
});
50+
};
51+
4652
var dragOverHandler = function(e) {
4753
e.preventDefault();
4854

4955
var offset = axis === 'vertical' ? e.offsetY || e.layerY || (e.originalEvent ? e.originalEvent.offsetY : 0) : e.offsetX || e.layerX || (e.originalEvent ? e.originalEvent.offsetX : 0);
5056

5157
if (offset < (this[axis === 'vertical' ? 'offsetHeight' : 'offsetWidth'] / 2)) {
52-
element.removeClass(droppingAfterClassName);
58+
removeClass(droppingAfterClassName);
5359
element.addClass(droppingBeforeClassName);
5460

5561
} else {
56-
element.removeClass(droppingBeforeClassName);
62+
removeClass(droppingBeforeClassName);
5763
element.addClass(droppingAfterClassName);
5864
}
5965
};
@@ -102,9 +108,9 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
102108
});
103109
});
104110

105-
element.removeClass(droppingClassName);
106-
element.removeClass(droppingBeforeClassName);
107-
element.removeClass(droppingAfterClassName);
111+
removeClass(droppingClassName);
112+
removeClass(droppingBeforeClassName);
113+
removeClass(droppingAfterClassName);
108114

109115
element.off('drop', dropHandler);
110116
};
@@ -124,9 +130,10 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
124130
if (e.target != element) {
125131
return;
126132
}
127-
element.removeClass(droppingClassName);
128-
element.removeClass(droppingBeforeClassName);
129-
element.removeClass(droppingAfterClassName);
133+
134+
removeClass(droppingClassName);
135+
removeClass(droppingBeforeClassName);
136+
removeClass(droppingAfterClassName);
130137

131138
element.off('dragover', dragOverHandler);
132139
element.off('drop', dropHandler);

0 commit comments

Comments
 (0)