Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Mover list directive and filtered array
Message
 
 
To
All
General information
Forum:
Javascript
Category:
Other
Title:
Mover list directive and filtered array
Miscellaneous
Thread ID:
01644708
Message ID:
01644708
Views:
43
Hi everybody,

I have the following directive (html):
@using Siriusware.Resources;
<div class="form-horizontal">
    <div class="col-xs-5 pull-left">
        <div class="form-group">
            <label class="control-label">{{unassignedItemsTitle}}</label>
            <div>
                <select class="select-list" multiple
                        ng-model="unassigned"
                        name="unAssignedList"
                        data-no-dirty-check
                        ng-options="unassignedItem.descrip for unassignedItem in unassignedItems | orderBy:'descrip' | filter: filterCriteria"></select>
            </div>
        </div>
    </div>

    <div class="col-xs-2 pull-left" style="text-align: center; padding: 25px;">
        <button ng-click="moveRight(unassigned)" class="btn btn-block"><i class="fa fa-angle-right icon-1x"></i></button>
        <button ng-click="moveRightAll()" class="btn btn-block"><i class="fa fa-angle-double-right icon-1x"></i></button>
        <button ng-click="moveLeft(assigned)" class="btn btn-block"><i class="fa fa-angle-left icon-1x"></i></button>
        <button ng-click="moveLeftAll()" class="btn btn-block"><i class="fa fa-angle-double-left icon-1x"></i></button>
    </div>

    <div class="col-xs-5 pull-left">
        <div class="form-group">
            <div>
                <label class="control-label">{{assignedItemsTitle}}   </label>
                <span class="pull-right" ng-show="sortable && assigned != null && assignedItems.length > 1 ">
                    <a class="badge" ng-click="moveUp(assigned)" data-toggle="tooltip" title="@Labels.moveUp"
                       sm:blankanchor><i class="fa fa-angle-up icon-1x"></i></a>
                    <a class="badge" ng-click="moveDown(assigned)" data-toggle="tooltip" title="@Labels.moveDown"
                       sm:blankanchor><i class="fa fa-angle-down icon-1x"></i></a>
                </span>
            </div>
            <div>
                <select class="select-list"
                        ng-change="onChanged(assigned)" 
                        multiple
                        data-no-dirty-check
                        ng-model="assigned"
                        name="assignedList"
                        ng-options="assignedItem.descrip for assignedItem in assignedItems| orderBy: 'SortOrder' | filter: filterCriteria">
                </select>
            </div>
        </div>
    </div>
</div>
So, as you can see, I can specify the filter-criteria and the items will be properly filtered. Ok, so far so good.

Now, I have the following code for the MoveRightAll (and similar for MoveLeftAll):
$scope.moveRightAll = function() {
                    var unassignedItems = $scope.unassignedItems.slice(0);
                    var smItems = $scope.unassignedItems.slice(0);

                    angular.forEach(smItems, function (value, key) {
                        $scope.assignedItems.push(value);
                        removeItem(unassignedItems, value);
                    });
                    $scope.unassignedItems = unassignedItems;
                    if (!$scope.keepPristine)
                        $scope.form.$setDirty();
                    
                    $scope.assigned = null;
                };
So, the problem here that this code doesn't respect the filter. Say, I filtered items by department and category and then clicked on move all button, all 642 items are getting moved instead of just a few from that category.

So, I just want to get the filtered list at the top if I have something in the $scope.filterCritera.

Thanks in advance.
If it's not broken, fix it until it is.


My Blog
Next
Reply
Map
View

Click here to load this message in the networking platform