Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
angular-gobox / src / services / drop_off_order.js
Size: Mime:
(function() {
    'use strict';

    angular.module('angularGobox').service('DropOffOrder', DropOffOrder);

    function DropOffOrder($rootScope) {
        var service = this;

        service.toggle = toggle;
        service.contains = contains;
        service.count = count;
        service.prepare = prepare;
        service.reset = reset;

        service.reset();

        // public

        function toggle(box) {
            if (contains(box)) {
                _.remove(service.order.customerboxes, function(otherBox) {
                    return box.id === otherBox.id;
                });
            } else {
                service.order.customerboxes.push(box);
            }
            return box;
        }

        function contains(given) {
            return !!_.find(service.order.customerboxes, function(box) {
                return given && box && given.id == box.id;
            });
        }

        function count() {
            return service.order.customerboxes.length;
        }

        function prepare() {
            var data = angular.extend({}, service.order.address);
            data.customerboxes = _.collect(service.order.customerboxes, 'id');
            data.preferred_date = service.order.preferred_date;
            data.trip_type = service.order.trip_type;
            return data;
        }

        function reset() {
            service.order = {
                trip_type: 1,
                customerboxes: [],
                preferred_date: undefined,
                address: {}
            };
        }

    }

})();