%PDF- %PDF-
Direktori : /var/www/html/news/public/scripts/services/ |
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 }; });