angular-sortable-view icon indicating copy to clipboard operation
angular-sortable-view copied to clipboard

Drag and drop is picking wrong item to move when the items are externally reordered.

Open vishwajeetv opened this issue 8 years ago • 1 comments

When the model of the sv-part is externally sorted, (as part of the table, https://github.com/daniel-nagy/md-data-table sorted using table's sort feature), this library is picking a wrong element to move.

The $item in sv-on-sort="dragged($item, $partFrom, $partTo, $indexFrom, $indexTo)" is isn't the item that is being moved.

vishwajeetv avatar Nov 13 '17 14:11 vishwajeetv

https://stackoverflow.com/questions/47266941/angular-sortable-views-drag-and-drop-is-picking-wrong-item-to-move-when-the-ite

The $item in sv-on-sort="dragged($item, $partFrom, $partTo, $indexFrom, $indexTo)" is isn't the item that is being moved.

Template

<table md-table md-row-select multiple  ng-model="selectedContextContent" md-progress="promise">
    <thead md-head  md-order="tableOrder"  >
    <tr md-row>
        <th ng-show="column.order" md-order-by="{{column.order}}" ng-repeat="column in contentColumns" md-column><span>{{column.title}}</span></th>
    </tr>
    </thead>
    <tbody md-body sv-root sv-part="contentData" sv-on-sort="dragged($item, $partFrom, $partTo, $indexFrom, $indexTo)">
        <tr md-row ng-repeat="content in ContentData | orderBy: tableOrder"
        sv-element="{containment:html,revert:0}">
    </tr>
    </tbody>
</table>

Controller Code

$scope.dragged = function ($item,$partFrom,$partTo,$indexFrom,$indexTo) {

        console.log($item);
        var partToArray = angular.copy($partTo);
        var orderArray = [];

        angular.forEach(partToArray, function (content) {
            orderArray.push(content.displayOrder);
        });

        orderArray.sort(function(a, b){return b-a});

        var sortedArray = [];

        for(var i=0; i<partToArray.length; i++)
        {
            partToArray[i].displayOrder = orderArray[i];
        }

        $scope.contentData = partToArray;
    };

vishwajeetv avatar Nov 13 '17 14:11 vishwajeetv