fix duplicate and array-based search tags

This commit is contained in:
John Mitchell
2017-01-25 15:24:34 -05:00
parent ebf5c85238
commit 2f6a797415

View File

@@ -72,6 +72,7 @@ export default ['$q', 'Rest', 'ProcessErrors', '$rootScope', 'Wait', 'DjangoSear
key = key.replace(/__search_DEFAULT/g, "__search"); key = key.replace(/__search_DEFAULT/g, "__search");
if (Array.isArray(value)){ if (Array.isArray(value)){
value = _.uniq(_.flattenDeep(value));
let concated = ''; let concated = '';
angular.forEach(value, function(item){ angular.forEach(value, function(item){
if(item && typeof item === 'string') { if(item && typeof item === 'string') {
@@ -179,6 +180,7 @@ export default ['$q', 'Rest', 'ProcessErrors', '$rootScope', 'Wait', 'DjangoSear
}; };
if (Array.isArray(value)){ if (Array.isArray(value)){
value = _.uniq(_.flattenDeep(value));
return _.map(value, (item) => { return _.map(value, (item) => {
return decodeParamString(item); return decodeParamString(item);
}); });
@@ -204,6 +206,7 @@ export default ['$q', 'Rest', 'ProcessErrors', '$rootScope', 'Wait', 'DjangoSear
// {key: [value1, value2, ...]} => ['key:value1', 'key:value2'] // {key: [value1, value2, ...]} => ['key:value1', 'key:value2']
function encodeUrlString(value, key){ function encodeUrlString(value, key){
if (Array.isArray(value)){ if (Array.isArray(value)){
value = _.uniq(_.flattenDeep(value));
return _.map(value, (item) => { return _.map(value, (item) => {
return `${key}:${item}`; return `${key}:${item}`;
}); });
@@ -225,6 +228,7 @@ export default ['$q', 'Rest', 'ProcessErrors', '$rootScope', 'Wait', 'DjangoSear
params[key] = value; params[key] = value;
} }
else if (Array.isArray(params[key])){ else if (Array.isArray(params[key])){
params[key] = _.uniq(_.flattenDeep(params[key]));
params[key].push(value); params[key].push(value);
} }
else { else {