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

Commit

Permalink
Make sure sortable classes are removed correctly
Browse files Browse the repository at this point in the history
  • Loading branch information
homerjam committed Mar 29, 2016
1 parent ce6a554 commit b787159
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 11 deletions.
8 changes: 6 additions & 2 deletions src/common.css
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,11 @@ body > .ui-select-bootstrap.open {
position: relative;
}

.ui-select-multiple .ui-select-match-item.dropping-before:before {
.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close {
pointer-events: none;
}

.ui-select-multiple:hover .ui-select-match-item.dropping-before:before {
content: "";
position: absolute;
top: 0;
Expand All @@ -202,7 +206,7 @@ body > .ui-select-bootstrap.open {
border-left: 1px solid #428bca;
}

.ui-select-multiple .ui-select-match-item.dropping-after:after {
.ui-select-multiple:hover .ui-select-match-item.dropping-after:after {
content: "";
position: absolute;
top: 0;
Expand Down
1 change: 1 addition & 0 deletions src/uiSelectController.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ uis.controller('uiSelectCtrl',
ctrl.lockChoiceExpression = undefined; // Initialized inside uiSelectMatch directive link function
ctrl.clickTriggeredSelect = false;
ctrl.$filter = $filter;
ctrl.$element = $element;

// Use $injector to check for $animate and store a reference to it
ctrl.$animate = (function () {
Expand Down
25 changes: 16 additions & 9 deletions src/uiSelectSortDirective.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,31 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
});

element.on('dragend', function() {
element.removeClass(draggingClassName);
removeClass(draggingClassName);
});

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

var removeClass = function(className) {
angular.forEach($select.$element.querySelectorAll('.' + className), function(el){
angular.element(el).removeClass(className);
});
};

var dragOverHandler = function(event) {
event.preventDefault();

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

if (offset < (this[axis === 'vertical' ? 'offsetHeight' : 'offsetWidth'] / 2)) {
element.removeClass(droppingAfterClassName);
removeClass(droppingAfterClassName);
element.addClass(droppingBeforeClassName);

} else {
element.removeClass(droppingBeforeClassName);
removeClass(droppingBeforeClassName);
element.addClass(droppingAfterClassName);
}
};
Expand Down Expand Up @@ -102,9 +108,9 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
});
});

element.removeClass(droppingClassName);
element.removeClass(droppingBeforeClassName);
element.removeClass(droppingAfterClassName);
removeClass(droppingClassName);
removeClass(droppingBeforeClassName);
removeClass(droppingAfterClassName);

element.off('drop', dropHandler);
};
Expand All @@ -124,9 +130,10 @@ uis.directive('uiSelectSort', ['$timeout', 'uiSelectConfig', 'uiSelectMinErr', f
if (event.target != element) {
return;
}
element.removeClass(droppingClassName);
element.removeClass(droppingBeforeClassName);
element.removeClass(droppingAfterClassName);

removeClass(droppingClassName);
removeClass(droppingBeforeClassName);
removeClass(droppingAfterClassName);

element.off('dragover', dragOverHandler);
element.off('drop', dropHandler);
Expand Down

0 comments on commit b787159

Please # to comment.