1
|
|
2
|
import { Filter, Value} from '../../searchPages/searchUtils/searchHelperClasses.class';
|
3
|
import { SearchFields, FieldDetails} from '../../utils/properties/searchFields';
|
4
|
|
5
|
|
6
|
export class RefineResultsUtils {
|
7
|
|
8
|
|
9
|
public static parse (data, fields:string[], entityType:string, usedBy: string="search"):Filter[] {
|
10
|
// var data = this.json.refineReuslts;
|
11
|
|
12
|
var searchFields:SearchFields = new SearchFields();
|
13
|
var filters:Filter[] = [];
|
14
|
if(data && fields){
|
15
|
for(let j=0; j<fields.length; j++) {
|
16
|
|
17
|
var filter:Filter = new Filter();
|
18
|
filter.title = searchFields.getFieldName(fields[j],entityType);
|
19
|
filter.filterId = fields[j];
|
20
|
filter.originalFilterId = fields[j];
|
21
|
filter.filterType = searchFields.getFieldFilterType(fields[j], entityType, usedBy);
|
22
|
filter.filterOperator = searchFields.getFieldOperator(fields[j]);
|
23
|
//console.info("filter.title: "+filter.title+" filter.filterType: "+filter.filterType);
|
24
|
|
25
|
let field = data[fields[j]];
|
26
|
if(field){
|
27
|
for(let i=0; i<field.length; i++) {
|
28
|
var value:Value = new Value();
|
29
|
value.name = field[i].name;
|
30
|
value.name =this.removePartAfterCharacters(value,"||");
|
31
|
value.number = field[i].count;
|
32
|
value.id = field[i].id;
|
33
|
if(RefineResultsUtils.includeValue(value)){
|
34
|
filter.values.push(value);
|
35
|
}
|
36
|
|
37
|
|
38
|
}
|
39
|
|
40
|
filters.push(filter);
|
41
|
}
|
42
|
}
|
43
|
}
|
44
|
return filters;
|
45
|
}
|
46
|
private static includeValue (field):boolean {
|
47
|
if( field.name == "unidentified" || field.name == "Undetermined" ){
|
48
|
return false;
|
49
|
|
50
|
}
|
51
|
return true;
|
52
|
}
|
53
|
private static removePartAfterCharacters(field, characters):string {
|
54
|
if( field.name.indexOf(characters) !=-1){
|
55
|
return field.name.split(characters)[0];
|
56
|
|
57
|
}
|
58
|
return field.name;
|
59
|
}
|
60
|
public static inParenthesisThePartAfterCharacters(field, characters):string {
|
61
|
if( field.name.indexOf(characters) !=-1){
|
62
|
return field.name.split(characters)[0]+" ("+field.name.split(characters)[1]+")";
|
63
|
|
64
|
}
|
65
|
return field.name;
|
66
|
}
|
67
|
public static keepPartAfterCharacters(name, characters):string {
|
68
|
if( name.indexOf(characters) !=-1){
|
69
|
return name.split(characters)[1];
|
70
|
}
|
71
|
return name;
|
72
|
}
|
73
|
}
|