%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/news/public/scripts/services/
Upload File :
Create Path :
Current File : /var/www/html/news/public/scripts/services/queryBuilder.js

'use strict';

angular.module('services').service('queryBuilder', function ($location) {

    var vm = this;

    vm.pagination, vm.filters = [];

    function setPaginationData(data) {
        vm.pagination = data;
    }

    function getPaginationData() {
        return vm.pagination;
    }

    function addContainsFilter(field, filters) {
        filters[field] = {
            operator: 'like'
        };
        return filters;
    }

    function addEqualsFilter(field, filters) {
        filters[field] = {
            operator: 'eq'
        };
        return filters;
    }

    function addNotEqualsFilter(field, filters) {
        filters[field] = {
            operator: 'ne'
        };
        return filters;
    }

    function addLessThanFilter(field, filters) {
        filters[field] = {
            operator: 'l'
        };
        return filters;
    }

    function addGreaterThanFilter(field, filters) {
        filters[field] = {
            operator: 'g'
        };
        return filters;
    }

    function addGreaterOrEqualsThanFilter(field, filters) {
        filters[field] = {
            operator: 'ge'
        };
        return filters;
    }

    function addLessOrEqualsThanFilter(field, filters) {
        filters[field] = {
            operator: 'le'
        };
        return filters;
    }

    function createQueryString(filters) {
        var ret = [], queryString = $location.search();
        angular.forEach(queryString, function (value, key) {
            if (key !== 'page') {
                if (angular.isDefined(filters[key])) {
                    filters[key].value = value;
                }
            }
        });
        angular.forEach(filters, function (value, key) {
            if (angular.isDefined(value.value) && value.value !== null && value.value !== undefined) {
                ret.push(key + ':' + value.operator + ':' + value.value);
            }
        });
        return ret.join(';');
    }

    function cleanFilters(filters) {
        angular.forEach(filters, function (value) {
            if (value.value) {
                value.value = null;
            }
        });
        $location.search();
        return filters;
    }

    function updateUrl(filters) {
        angular.forEach(filters, function (value, key) {
            if (value.value) {
                $location.search(key, value.value);
            } else {
                $location.search(key, null);
            }
        });
    }

    return {
        setPaginationData: setPaginationData,
        getPaginationData: getPaginationData,
        addContainsFilter: addContainsFilter,
        addEqualsFilter: addEqualsFilter,
        addNotEqualsFilter: addNotEqualsFilter,
        addLessThanFilter: addLessThanFilter,
        addGreaterThanFilter: addGreaterThanFilter,
        addGreaterOrEqualsThanFilter: addGreaterOrEqualsThanFilter,
        addLessOrEqualsThanFilter: addLessOrEqualsThanFilter,
        createQueryString: createQueryString,
        cleanFilters: cleanFilters,
        updateUrl: updateUrl
    };

});

Zerion Mini Shell 1.0